Oracle DUPLICATE复制数据库

一、DUPLICATE复制数据库
1.使用duplicate命令可以在不影响目标数据库(Target/Primary Database)的情况下,依靠目标数据库的备份集创建一个Duplicate数据库(数据库副本)。
在创建时既可以选择完整复制目标数据库,也可以仅包含目标数据库中的部分表空间,目标数据库和Duplicate数据库甚至可以在同一台机器上。
2.Duplicate数据库是目标数据库在某个时间点的一个副本。可以把它当作很正式的测试数据库。比如:
a.测试备份和恢复的过程:从host1复制一份生产数据库到host2,然后使用host2上的副本数据库实现恢复,修复操作,Target Db不受影响。
b.导出数据:在目标数据库上的被有意无意的删除表,可以先使用备份创建一个删除表之前的数据库副本,然后将被删除的报导回目标数据库。
3. duplicate target database to newdbname;
4.除了创建副本数据库之外,duplicate命令还能用来创建物理standby数据库;而不是创建Data Guard环境,而是创建Data Guard的物理standby数据库而已,
duplicate数据库和物理standby数据库还是有区别的
a.物理standby是primary数据库的一份完整复制,还可以根据primary的archived logs定期或不定期地更新它,如果primary崩溃,DBA还可以将其切换为primary继续使用。
b.Duplicate并不是为了容灾和故障切换而设计的。
二、创建duplicate数据库的过程
1.从复制数据库文件至创建duplicate数据库,都是在辅助实例所在的服务器上完成的,因此务必保证辅助数据库实例所在的服务器能够访问到所需的备份文件和归档文件。
如果辅助实例与目标数据库不在同一台服务器上,DBA必须手工复制创建duplicate数据库所需的备份和归档文件,到辅助实例所在的服务器的适当目录下(默认情况下备份集在辅助实例所在服务器的路径,
应该与源数据库备份集的路径相同)。如果备份集保存在磁带上,那么必须在辅助实例所在服务器上配置磁带介质管理器,以便能访问到磁带上保存的备份集。
2.一般建议保持目标数据库和duplicate数据库两端路径相同,这样配置过程会更加简单,如果路径无法保持一致,就必须通过一些设置来确保辅助实例能够正常读取,创建duplicate数据库所需的文件,并将其创建至正确的路径下。复制数据库的命令很简单:RMAN>duplicate target database to orcldup;执行这条命令RMAN会自动执行以下步骤:
a.为duplicate数据库创建控制文件
b.restore命令修复数据文件到duplicate数据库,recover命令对duplicate数据库进行不完全恢复;大多数情况下,创建duplicate数据库期间,RMAN都需要进行不完全恢复,因为目标数据库的Online Redologs
并不能实时备份、传输并应用到duplicate数据库,RMAN最多也就能将目标数据库最近一次备份的数据恢复到duplicate数据库。
c.重启辅助实例
d.以OPEN RESETLOGS方式打开duplicate数据库,重建Online Redologs(提示:Duplicate.. for standby方式不会打开数据库)。
e.为duplicate数据库产生一个新的唯一的DBID(Duplicate ...for standby方式除外,它不会创建新的唯一的DBID)。
3.如果duplicate数据库与目标数据库在同一台服务器上,那么必须重新设置辅助实例的一些关键初始化参数,如DB_NAME,CONTROL_FILES,*_PATH,*_DEST等,为不同的实例初始化参数指定不同的参数值,同时Duplicate
数据库的数据文件。redologs等文件路径也需要重新定义,不然在创建过程中会出现错误,甚至影响正式的产品数据库。
duplicate数据库一旦创建成功,就与原目标数据库没有物理联系;duplicate也拥有一个全新唯一的DBID;duplicate命令不支持跨平台复制数据库。使用duplicate命令创建数据库,只是目标数据库某个时间点的复制,不可能将duplicate数据库与目标数据库完全保持一致,除非创建的是物理standby数据库。
4.duplicate创建流程
a.相同路劲结构的复制
(1)创建辅助实例
(2)RMAN连接并云顶DUPLICATE命令,结束。
如果没有配置自动分配通道的话,至少手工指定1条通道。
对于异机恢复,如果源数据库和目标数据苦的数据文件路径相同,必须指定NOFILENAMECHECK来避免Oracle的自动识别。
DUPLICATE TARGET DATABASE TO ORCLDUP
PFILE=F:\oracle\product\10.2.0\admin\orcldup\pfile\INIT.ORA
NOFILENAMECHECK;
最后,RMAN会自动以RESETLOGS方式打开duplicate数据库并重建Redologs,复制完成。
b.异机不同路径结构的复制
(1)初始化参数中重定义文件路径:首先还是要创建辅助实例,修改辅助实例的初始化参数中以*_DEST结尾的参数,以及其他包含路径的参数确认这些参数设置的路径正确有效。设置DB_FILE_NAME_CONVERT参数,让其自动转换数据文件路径。设置LOG_FILE_NAME_CONVERT参数,让其自动转换日志文件路径。
(2)RMAN连接目标数据库和辅助实例
(3)RMAN>duplicate target database to orcldup;
在duplicate命令中重定义文件路径,步骤如下:
创建辅助实例;RMAN连接目标数据库和辅助实例;运行duplicate命令。
RMAN>duplicate target database to orcldup
PFILE=F:\oracle\product\10.2.0\admin\orcldup\pfile\INIT.ORA
db_file_name_convert=('F:\oracle\product\10.2.0\oradata\orcl','F:\oracle\product\10.2.0\oradata\orcldup')
LOGFILE
  'F:\oracle\product\10.2.0\oradata\orcldup\REDO01.LOG' 20M,
  'F:\oracle\product\10.2.0\oradata\orcldup\REDO02.LOG' 20M,
  'F:\oracle\product\10.2.0\oradata\orcldup\REDO03.LOG' 20M;
#使用set newname命令重命名数据文件:创建辅助实例;RMAN连接目标数据库和辅助实例;SET NEWNAME 命令设置数据文件路径。DUPLICATE命令复制数据库。
RMAN>RUN{
#SET NEW FILENAMES FOR THE DATAFILES
SET NEWNAME FOR DATAFILE 1 TO 'F:\oracle\product\10.2.0\oradata\orcldup\SYSTEM01.DBF';
SET NEWNAME FOR DATAFILE 1 TO 'F:\oracle\product\10.2.0\oradata\orcldup\UNDOTBS01.DBF';
#ISSUE THE DUPLICATE COMMAND
duplicate target database to orcldup
#CREATE AT LEAST TWO ONLINE REDO LOG GROUPS
使用CONFIGURE AUXNAME 命令重命名数据文件
#configure the new desired  filenames
configure auxname for datafile 1 to 'F:\oracle\product\10.2.0\oradata\orcldup\SYSTEM01.DBF'
configure auxname for datafile 1 to 'F:\oracle\product\10.2.0\oradata\orcldup\undotbs01.DBF'
configure auxname命令是在run块外执行的,而且建议在duplicate命令执行玩之后,清楚configure auxname,这样就不会对未来的类似操作造成影响。
#clear specified auxiliary names for the datafiles
configure auxname for datafile 1 clear;
configure auxname for datafile 2 clear;
三、CATALOG模式本地完整复制目标数据库ORCL到副本数据库ORCLDUP
1.创建辅助实例
a.创建辅助实例的密钥文件
C:/>orapwd file=F:\oracle\product\10.2.0\db_1\database\PWDorcldup.ora password=lyn entires=30
b.创建OracleService
C:/>oradim -new -sid orcldup -startmode manual
c.配置初始化参数文件
F:\oracle\product\10.2.0\admin>mkdir orcldup
F:\oracle\product\10.2.0\admin\orcldup>mkdir adump bdump cdump pfile udump
NOTE:辅助实例的初始化参数中的BLOCK_SIZE必须与目标数据库相同,如果目标库的参数文件包括DB_BLOCK_SIZE参数,你必须指定辅助实例中该参数的值与目标库相同,如果目标DB中没

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值