RMAN的数据文件拷贝功能很不错, 不过不易于脚本化, 因此我通过调用DBMS_BACKUP_RESTORE包来实现了自已的文件热拷贝功能, 这个工具命名为"HotCopy".
命令行参数:
HotCopy for Oracle, version 2.0.0
(C) Copyright Lou Fangxin 2006, all rights reserved.
Usage:
hotcopy [-a] -G -T tablespace -F file_id -D destfile
Notes:
-A Add a date tag as the copied data file name
-G Copy all database files
-T The tablespace name to be copied
-N File name pattern, '%' any string, '_' any char
-F A valid file number, FILE# column in V$DATAFILE
-D Destination file or directory name
拷贝一个数据文件的例子:
C:\TEMP>hotcopy -F 1 -d data -a
HotCopy for Oracle, version 2.0.0
(C) Copyright Lou Fangxin 2006, all rights reserved.
From: C:\ORACLE\PRODUCT\ORADATA\LFXDB\SYSTEM01.DBF
To : C:\TEMP\data\SYSTEM01.DBF.20061012
Copy Succeed.
拷贝一个表空间的所有数据文件的例子:
C:\TEMP>hotcopy -T users -d data
HotCopy for Oracle, version 2.0.0
(C) Copyright Lou Fangxin 2006, all rights reserved.
From: C:\ORACLE\PRODUCT\ORADATA\LFXDB\USERS01.DBF
To : C:\TEMP\data\USERS01.DBF
Copy Succeed.
根据数据文件名字来拷贝(如拷贝某个目录下的所有文件到其他目录):
C:\TEMP>hotcopy -n %SYSTEM01.DBF -d data
HotCopy for Oracle, version 2.0.0
(C) Copyright Lou Fangxin 2006, all rights reserved.
From: C:\ORACLE\PRODUCT\ORADATA\LFXDB\SYSTEM01.DBF
To : C:\TEMP\data\SYSTEM01.DBF
Copy Succeed.
拷贝整个数据库的所有文件的例子:
C:\TEMP>hotcopy -g -d data
HotCopy for Oracle, version 2.0.0
(C) Copyright Lou Fangxin 2006, all rights reserved.
From: C:\ORACLE\PRODUCT\ORADATA\LFXDB\SYSTEM01.DBF
To : C:\TEMP\data\SYSTEM01.DBF
Copy Succeed.
From: C:\ORACLE\PRODUCT\ORADATA\LFXDB\UNDOTBS01.DBF
To : C:\TEMP\data\UNDOTBS01.DBF
Copy Succeed.
From: C:\ORACLE\PRODUCT\ORADATA\LFXDB\SYSAUX01.DBF
To : C:\TEMP\data\SYSAUX01.DBF
Copy Succeed.
From: C:\ORACLE\PRODUCT\ORADATA\LFXDB\USERS01.DBF
To : C:\TEMP\data\USERS01.DBF
Copy Succeed.
目前功能还很有限, 以后慢慢增加, 正在设想要实现什么功能呢...
留言 (2)
要是有直接通过共享目录备份到远程的功能就好了^_^
Posted by NinGoo | Feb 7, 2007 9:23 AM
oracle实时备份--最优秀的国产软件--永思热备,实时备份;变化量备份,可按时间点回退;可接管主服务器,功能如此强大,操作又简单,哪里还用人工去管啊
Posted by 成都永思科技 | Mar 20, 2007 4:10 PM