万变不离其宗 duplicate database 也是一个备份与恢复的过程。网上有
RAMN用于迁移数据库也是这个道理。duplicate database有一个优点,它为duplicated
database生成了新的DBID。
metalink`ID 388431`.`1`给出了duplicate database的大致步骤:
1. Backup of the primary database.
2. Determine how much disk space will be required.
3. Ensuring you have enough space on your target server.
4. Making the backup available for the duplicate process.
5. Creating the init.ora & administration directories for the duplicate database.
6. Ensuring SQL*NET connections to primary database and RMAN catalog are working.
7. Prepare RMAN duplicate script.
8. Execute the RMAN script.
1. 因为duplicate database 是一个备份与恢复的过程,备份是必须的。当然也要备份归档日志.
简单脚本如下:
run {
allocate channel dup type disk;
backup format '/opt/guo/backup/df_t%t_s%s_p%p' database;
sql 'alter system archive log current';
backup format '/opt/guo/backup/al_t%t_s%s_p%p' archivelog all;
release channel dup;
}
在primary database上执行:
Rman target / cmdfile=/opt/guo/dup.rmv
生成了数据文悠件备份,controlfile+spfile备份(这个不需要,因为我们备份了datafile 1,
所以RMAN自动备份了controlfile+spfile),归档日志备份.
2,3 两步是确认the duplicate database数据库的空间是否足够. 脚本类似如下:
select DF.TOTAL/1048576 "DataFile Size Mb",
LOG.TOTAL/1048576 "Redo Log Size Mb",
CONTROL.TOTAL/1048576 "Control File Size Mb",
(DF.TOTAL + LOG.TOTAL + CONTROL.TOTAL)/1048576 "Total Size Mb"
from dual,
(select sum(a.bytes) TOTAL from dba_data_files a) DF,
(select sum(b.bytes) TOTAL from v$log b) LOG,
(select sum((cffsz+1)*cfbsz) TOTAL from x$kcccf c) CONTROL
4. Making the backup available for the duplicate process,the duplicate process
我们要把数据备份,包括归档备份拷到新主机的相同目录上,使得duplicate process进程
可以访问得到. 我想过用catalog命令修改备份集的路径,但duplicate数据库此时还没有
控制文件, 所以行不通,只能拷贝到相同路径上。
如:scp -r root@192.168.0.106:/opt/guo/backup /opt/guo/backup
5. 为duplicate数据库创建init.ora文件,以及相应的目录.启动duplicate数据库到nomout状态。
duplicate命令需要duplicate数据库处于nomount状态。
SQL>create spfile from pfile='init.ora'
SQL>startup nomount
6. 确认两台主机SQL.net是畅通的. duplicate target database 可以任何一台可以SQL.net到
目标主机与新主机的主机上执行。
D:>sqlplus sys/system@primary
7. 创建duplicate script如下:
duplicate target database to guoprima nofilenamecheck;
因为target数据库与duplicate数据库的目录结构是一样的,虽然他们位于不同的主机. 所以
加nofilenamecheck参数,去除Data文件检查,否则会报ora-050001错误。我们也可以用init.ora文件中添加
db_file_name_convert,log_file_name_convert参数更改duplicate数据库的目录结构.oracle
document 有详细的描述
8. 执行复制.
D:>rman target sys/system@primary;
rman> connect auxiliary /
rman>duplicate target database to guoprima nofilenamecheck;
即完成了数据库的复制。
RMAN duplicate database到新主机
原创
©著作权归作者所有:来自51CTO博客作者anranran的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:oracle权限一则
下一篇: RMAN 创建物理standby到新主机
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
RMAN Duplicate Database From RAC ASM To RAC ASM [ID 461479.1]
RMAN Duplicate Database From RAC ASM To RAC ASM [ID 461479.1] 修改时间 22-JUN
database disk initialization parameters file