您的位置:首页 > 其它

RMAN冷备份异机还原

2015-05-12 22:58 190 查看
1:环境准备在新的服务器上安装ORACLE实例,安装过程中需要注意源服务器与目标服务器的ORACLE_SID一致,另外确保安装路径与源路径一致(不仅是安装目录,甚至包括数据文件、控制文件目录、联机重做日志文件所在目录都要注意)。如果不一致相当麻烦,需要修改spfile。2:RMAN做冷备份使用cold_backup.sh将数据库备份到/u04/migration目录下面mkdir-p/u04/migration
mkdir-p/u04/migration/logcat/u04/migration/cold_backup.sh

exportORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
exportORACLE_SID=SCM2
exportCATALOG=NOCATALOG
exportPATH=$ORACLE_HOME/bin:$PATH
exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
rmantarget/log=/u04/migration/log/rman_coldbackup_db_EELSCM2_20150510.log<<EOF
sql'altersystemcheckpoint';
shutdownimmediate;
startupmount;
sql"createpfile=''/u04/migration/pfile`date+%d%m%Y`.ora''fromspfile";
RUN{
ALLOCATECHANNELdisk1DEVICETYPEDISKFORMAT'/u04/migration/%U';
ALLOCATECHANNELdisk2DEVICETYPEDISKFORMAT'/u04/migration/%U';
ALLOCATECHANNELdisk3DEVICETYPEDISKFORMAT'/u04/migration/%U';
BACKUPASCOMPRESSEDBACKUPSETDATABASE;
BACKUPCURRENTCONTROLFILEFORMAT'/u04/migration/cntrl_%s_%p_%t';
RELEASECHANNELdisk1;
RELEASECHANNELdisk2;
RELEASECHANNELdisk3;
}

3:RMAN做还原操作
1:首先将备份文件拷贝到目标服务器上,如下所示

[oracle@DB-Servermigration]$ls-lrt
total25205332
-rw-r-----1oracleoinstall1378779136May1018:564eq6j632_1_1
-rw-r-----1oracleoinstall1971355648May1019:334fq6j6dr_1_1
-rw-r-----1oracleoinstall993918976May1019:524jq6j6v2_1_1
-rw-r-----1oracleoinstall9338880May1019:534mq6j79h_1_1
-rw-r-----1oracleoinstall2445590528May1020:394bq6j5gu_1_1
-rw-r-----1oracleoinstall1682866176May1021:124hq6j6rj_1_1
-rw-r-----1oracleoinstall2082570240May1021:534gq6j6ea_1_1
-rw-r-----1oracleoinstall1440210944May1022:224dq6j629_1_1
-rw-r-----1oracleoinstall21495808May1022:22cntrl_16535_1_879337140
drwxr-xr-x2oracleoinstall4096May1100:20log
-rw-r-----1oracleoinstall6072287232May1100:204aq6j5gu_1_1
-rwxr-xr-x1oracleoinstall814May1101:10cold_backup.sh
-rw-r-----1oracleoinstall2605039616May1101:104cq6j5gu_1_1
-rw-r-----1oracleoinstall1613660160May1101:414kq6j771_1_1
-rw-r-----1oracleoinstall1230159872May1102:054iq6j6tb_1_1
-rw-r-----1oracleoinstall2237693952May1102:484lq6j784_1_1
-rw-r--r--1oracleoinstall1542May1110:03pfile20150510.ora
-rw-r--r--1oracleoinstall195May1111:28restore.sh
[oracle@getlnx14migration]$

2:给oracle账号对应目录授予相关权限。
2.1由于一些数据文件位于/u02、/u03、/u04目录下面.在root目录下面创建这几个目录,并授权给ORACLE用户。
mkdir/u02
mkdir/u03
mkdir/u04
chown-Roracle:oinstall/u02/u03/u04
2.2由于安装时选择了“仅安装数据库软件”,所以需要按照源服务器的目录设置下面路径

[oracle@DB-Serveroracle]$ls
oraInventoryproduct
[oracle@DB-Serveroracle]$mkdiradmin
[oracle@DB-Serveroracle]$cdadmin/
[oracle@DB-Serveradmin]$mkdirSCM2
[oracle@DB-Serveradmin]$cdSCM2/
[oracle@DB-ServerSCM2]$ls
[oracle@DB-ServerSCM2]$mkdirudump
[oracle@DB-ServerSCM2]$mkdiradump
[oracle@DB-ServerSCM2]$mkdircdump
[oracle@DB-ServerSCM2]$mkdirdpdump
[oracle@DB-ServerSCM2]$mkdirpfile
[oracle@DB-ServerSCM2]$mkdirbdump

案例遇到的错误1:

RMAN>@restore.sh
RMAN>run
2>{
3>startuppfile='/u04/migration/pfile20150510.ora'nomount;
4>restorecontrolfilefrom'cntrl_16535_1_879337140';
5>alterdatabasemount;
6>restoredatabase;
7>alterdatabaseopenresetlogs;
8>}
RMAN-00571:===========================================================
RMAN-00569:===============ERRORMESSAGESTACKFOLLOWS===============
RMAN-00571:===========================================================
RMAN-03002:failureofstartupcommandat05/12/201515:48:00
RMAN-04014:startupfailed:ORA-16032:parameterLOG_ARCHIVE_DEST_1destinationstringcannotbetranslated
ORA-07286:sksagdi:cannotobtaindeviceinformation.
Linux-x86_64Error:2:Nosuchfileordirectory
RMAN>
RMAN>**end-of-file**

在源数据库查看参数LOG_ARCHIVE_DEST_1,发现联机重做日志的归档日志位于/u04/backup/archive。而目标服务器没有/u04/backup/archive这个目录,需要创建对应的目录。

SQL>showparameterLOG_ARCHIVE_DEST_1
NAMETYPEVALUE
-----------------------------------------------------------------------------
log_archive_dest_1stringLOCATION=/u04/backup/archive
log_archive_dest_10string
SQL>

案例遇到的错误2:





出现上面错误是因为安装时选择了“仅安装数据库软件”,对应的background_dump_dest、audit_file_dest目录都没有,查看pfile文件,创建对应的目录问题解决

[oracle@DB-Serveroracle]$ls
oraInventoryproduct
[oracle@DB-Serveroracle]$mkdiradmin
[oracle@DB-Serveroracle]$cdadmin/
[oracle@DB-Serveradmin]$mkdirSCM2
[oracle@DB-Serveradmin]$cdSCM2/
[oracle@DB-ServerSCM2]$ls
[oracle@DB-ServerSCM2]$mkdirudump
[oracle@DB-ServerSCM2]$mkdiradump
[oracle@DB-ServerSCM2]$mkdircdump
[oracle@DB-ServerSCM2]$mkdirdpdump
[oracle@DB-ServerSCM2]$mkdirpfile
[oracle@DB-ServerSCM2]$mkdirbdump

案例遇到的错误3:

RMAN>@restore.sh
RMAN>run
2>{
3>startuppfile='/u01/app/oracle/product/10.2.0/db_1/dbs/pfile20150510.ora'nomount;
4>restorecontrolfilefrom'cntrl_16535_1_879337140';
5>alterdatabasemount;
6>restoredatabase;
7>alterdatabaseopenresetlogs;
8>}
Oracleinstancestarted
TotalSystemGlobalArea12884901888bytes
FixedSize2105920bytes
VariableSize9328135616bytes
DatabaseBuffers3506438144bytes
RedoBuffers48222208bytes
Startingrestoreat12-MAY-15
usingtargetdatabasecontrolfileinsteadofrecoverycatalog
allocatedchannel:ORA_DISK_1
channelORA_DISK_1:sid=987devtype=DISK
RMAN-00571:===========================================================
RMAN-00569:===============ERRORMESSAGESTACKFOLLOWS===============
RMAN-00571:===========================================================
RMAN-03002:failureofrestorecommandat05/12/201515:59:27
RMAN-06172:noautobackupfoundorspecifiedhandleisnotavalidcopyorpiece
RMAN>
RMAN>**end-of-file**
RMAN>




出现这个错误是因为控制文件路径由于编辑时,不小心将路径给忽略了,实际应该为:restorecontrolfilefrom'/u04/migration/cntrl_16535_1_879337140';

run
{
startuppfile='/u01/app/oracle/product/10.2.0/db_1/dbs/pfile20150510.ora'nomount;
restorecontrolfilefrom'/u04/migration/cntrl_16535_1_879337140';
alterdatabasemount;
restoredatabase;
alterdatabaseopenresetlogs;
}


还原过后,对数据库参数进行设置,例如从pfile文件创建spfile。另外,视服务器配置等,调整SGA的一些参数!

参考资料:

http://blog.itpub.net/11411056/viewspace-733456/

http://blog.csdn.net/edwzhang/article/details/8933372
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: