Oracle Duplicate database
duplicate分为2种模式,1.直接从active状态的库直接复制;2.从目标库的备份文件来复制;现在两种方法都介绍下,直接上干货。
试验环境(2台机器):
target db:TESTA
aux db:TESTA(db_name可修改)
一、备份方式复制
步骤:1.检查是否为archivelog模式(mount状态下alter database archivelog)。
2.切换日志(alter system switch logfile;)。
3.RMAN备份数据库及归档日志,生成备份文件(这里要在rman中把控制文件自动备份功能开启,不然要就在备份雨中加上备份控制文件的子句)。
4.copy target db的pfile和备份文件到aux机器上(并修改pfile的中参数,如db_name或文件路径不一致时)。
5.aux库设置ORACLE_SID参数。
6.aux创建密码文件。
7.aux创建spfile并startup nomount。
8.rman duplicate database。
实施:
1.检查是否为archivelog模式
这里可以看到是archive mode的。
2.切换日志
3.备份
可以看到这里生成了4个文件。
4.复制target db的pfile和备份文件到aux db上
我这里aux的实例名和路径都是一样的,所以不用修改参数文件(如果不一样则修改pfile中的db_name或用
db_file_name_convert和log_file_name_convert参数进行修改)
5.aux库设置ORACLE_SID参数
6.在aux库创建密码文件(sys密码最好与target 库的保持一致)
7.aux创建spfile并startup nomount
8.rman duplicate database。
这是aux db已经复制完成,检查状态。
二、active模式复制
步骤同一种大致一样,
1.不同的部分为第三步的备份动作不需要,改成配置tnsnames.ora文件。 文件路径
$ORACLE_HOME/network/admin/tnsnames.ora
红色涂改部分为target db和aux db主机的IP。target和aux 报纸tnsnames.ora一样即可。
2.duplicate语句不同,改为
duplicate target database to TESTA from active database;
PS:一定要注意ORACLE_SID变量的值,数据文件所在的路径目录是否都存在等