rman auxiliary

来源:互联网 发布:阿里云服务器 访问慢 编辑:程序博客网 时间:2024/05/16 10:07


目的,将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;

原创粉丝点击