目的,将oracle库TESTA的数据覆盖TESTB库。
1源端和目标端重建密码文件
TESTA:
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=test1234 force=y
TESTB:
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=test1234 force=y
2添加tns
3目标库TESTB备份后执行drop database,然后启动到nomount状态;
注意修改以下参数
*.control_files='+DATA_TESTB_MDG'
4源端TESTA启动到mount状态,通过rman传输文件
select file#,name from v$datafile;
复脚本一:
export log_file=./restore_testb_`date '+%Y%m%d_%H%M%S'`.log
rman target sys/test1234 auxiliary sys/test1234@testb<< EOF > ${log_file} 2>&1
backup as copy current controlfile auxiliary format '+DATA_TESTB_MDG';
backup as copy reuse datafile 1 auxiliary format '+DATA_TESTB_MDG';
backup as copy reuse datafile 2 auxiliary format '+DATA_TESTB_MDG';
backup as copy reuse datafile 3 auxiliary format '+DATA_TESTB_MDG';
backup as copy reuse datafile 4 auxiliary format '+DATA_TESTB_MDG';
backup as copy reuse datafile 5 auxiliary format '+DATA_TESTB_MDG';
backup as copy reuse datafile 6 auxiliary format '+DATA_TESTB_MDG';
backup as copy reuse datafile 7 auxiliary format '+DATA_TESTB_MDG';
backup as copy reuse datafile 8 auxiliary format '+DATA_TESTB_MDG';
backup as copy reuse datafile 9 auxiliary format '+DATA_TESTB_MDG';
EOF
echo "Restore finished at `date '+%Y%m%d_%H%M%S'`" >> ${log_file}
脚本二(整库恢复)
log_file=./restore_testb_/full_backup_${ORACLE_SID}_`date '+%Y%m%d_%H%M%S'`.log
export log_file
rman TARGET sys/test1234@testa AUXILIARYsys/test1234@testb << EOF > ${log_file} 2>&1
run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup as copy database auxiliary format '+DATA_TESTB_MDG';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
EOF
echo "Backup finished at `date '+%Y%m%d_%H%M%S'`" >> ${log_file}
5查看目标端ASM
machine:testb > su - grid
Password:
[grid@machine ~]$ asmcmd
ASMCMD> ls
ASMCMD> cd DATA_TESTB_MDG/
6执行重建充值文件的脚本,添加tempfile
重建控制文件脚本:
]vi recctl.sql
CREATE CONTROLFILE SET DATABASE "TESTB" RESETLOGS FORCE LOGGING NOARCHIVELOG
MAXLOGFILES 64
MAXLOGMEMBERS 3
MAXDATAFILES 500
MAXINSTANCES 8
MAXLOGHISTORY 1168
LOGFILE
GROUP 1 '+DATA_TESTB_MDG' SIZE 50M,
GROUP 2 '+DATA_TESTB_MDG' SIZE 50M,
GROUP 3 '+DATA_TESTB_MDG' SIZE 50M
DATAFILE
'+DATA_TESTB_MDG/testb/datafile/sysaux.876.943130753',
'+DATA_TESTB_MDG/testb/datafile/rmsdata.482.943130753',
'+DATA_TESTB_MDG/testb/datafile/system.483.943131145',
'+DATA_TESTB_MDG/testb/datafile/users.479.943131119',
'+DATA_TESTB_MDG/testb/datafile/workarea.485.943131189',
'+DATA_TESTB_MDG/testb/datafile/rmslogtmpdata.472.943131197',
'+DATA_TESTB_MDG/testb/datafile/undotbs1.481.943130753',
'+DATA_TESTB_MDG/testb/datafile/rmsdata.435.943130753'
CHARACTER SET AL32UTF8
;
7创建spfile,重启数据库
create spfile='+DATA_TESTB_MDG/testb/spfiletestb.ora' from pfile;
本文介绍了如何使用RMAN将Oracle数据库TESTA的数据覆盖到TESTB库中,包括重建密码文件、添加TNS、目标库的预处理、源库的备份与传输、目标库的ASM检查以及控制文件和SPFILE的重建。
1万+

被折叠的 条评论
为什么被折叠?



