首页 > Linux操作系统 > Linux操作系统 > 第17 章、复制目标数据库
第17 章、复制目标数据库
1. Duplicate target database to aux1; (简单duplicate 命令)
2. Run{ (复杂duplicate 命令)
Set until time ‘xxx ’;
Duplicate target database to aux1 pfile= ’xxx ’ nofilenamecheck
Device type sbt params “env=(nb_ora_serv=rmsrv) ”
Logfile ‘xxx.log ’ size 100m, ’xxx ’ size 100m, ’xxx ’ size 100m;
}
3. 复制进程分为6个不同阶段:
l RMAN 确定备份的状态和位置;
l RMAN 在辅助实例上分配辅助通道;
l RMAN 在辅助实例上还原数据文件;
l RMAN 构建新的辅助控制文件;
l 如果有必要,RMAN 从备份中还原归档日志,并进行必要的恢复操作;
l RMAN 重置辅助实例的DBID ,并且使用resetlog 打开辅助数据库。
4. 如果使用的存储介质为磁盘,那么不需要另外分配辅助通道,使用默认的磁盘通道;如果使用的是磁带,那么就需要配置辅助通道:
Configure default device type to sbt;
Configure device type sbt parallelism 2;
Configure auxiliary channel 1 device type sbt params=( “env=(xxx,xxx) ”);
5. 如果需要将数据文件还原到不同的位置,有3 种方法:
n Configure auxname for datafile 1 to ‘new location ’;
n Run{
Allocate channel xxx type ‘sbt_tape ’;
Set newname for datafile 1 to ‘new location ’;
Duplicate target database to aux1;
}
n 使用auxiliary 中的pfile 参数:
Db_file_name_convert=( ‘old ’,’new ’,’old2 ’,’new2 ’);
n 此参数是一个简单的串转换参数,可以传递一个目录名:
Db_file_name_convert=( ‘/oracle/oradata/old ’,’oracle/oradata/new ’);
n 进一步简化:Db_file_name_convert=( ‘old ’,’new ’);
6. 修改数据库DBID 的过程,在数据库处于mount 状态时,调用dbms_backup_restore.zerodbid(0) 的过程,该过程检查每个数据文件并将数据文件头的DBID 清零,然后关闭数据库,并重新创建控制文件,重新创建控制文件的时候,Oracle 会检查每个数据文件头的DBID ,如果没有发现任何的DBID ,那么就会重新生成DBID ,并且加入到每个数据文件头。
7. 在最后resetlogs 的过程中,会创建重做日志文件,如果在同一个环境中进行的实验,那么就必须要修改日志文件的位置了,使用pfile 中的转换参数log_file_name_convert 来进行转换,此参数和db_file_name_convert 用法类似。
8. 复制到相同服务器的注意事项:
l 名称问题,同一台服务器中,Oracle 内存在OS 中是以db_name 区分的,所以target 和auxiliary 实例必须具有不用的db_name 和instance_name;
l 文件位置问题,target 和auxiliary 必须使用不同的文件位置,要修改位置的文件包括:控制文件、数据文件、联机日志文件。
9.
口令文件很重要,在Unix 中,口令文件必须命名为orapw
10. 具体复制操作(相同服务器 – 在一台主机上的复制):
1) 构建相关的目录,包括oradata 、admin 、adump 、bdump 、cdump 、udump 、archive 目录(如果是FRA ,则是相应的FRA 目录);
2) 复制目标数据库的pfile 到辅助数据库pfile 的位置;
3) 修改辅助据库中的某些参数,如果需要的话,还要加上数据文件目录名称的转换;
4) 创建辅助数据库的口令文件;
5) 以nomount 模式加载辅助数据库,使用修改过的pfile 文件;
6) 修改相应的网络配置文件,使得目标数据库和辅助数据库有相应的访问通道;
7) RMAN 连接目标数据库和辅助数据库,运行duplicate 命令:
Duplicate target database to aux1 pfile=xxx
Logfile ‘xxx1 ’ size 50m, ’xxx2 ’size 50m, ’xxx3 ’ size 50m;
11. 注意:如果备份设备为磁带,那么在运行duplicate 命令之前需要配置通道:
a) Show channel;
b) Configure auxiliary channel 1 device type ‘sbt_tape’ parms= ”xxx”;
12. 具体复制操作(相同数据库):步骤类似,但是可不用转换文件名,可使用NFS ,但是NFS 有可能会遇到问题:ORA-27054 :NFS file system where the file is created or resides is not mounted with correct options;
13. 使用DBNEWID 实用程序修改 dbid:
l 以一致状态关闭整个数据库,然后启动数据库到mount 状态,接着运行DBNEWID 实用程序,最后以resetlogs 方式打开数据库。
l Nid target /
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24465008/viewspace-688027/ ,如需转载,请注明出处,否则将追究法律责任。