rman 作為 oracle 推薦的備份、恢復方式,我們常使用它來進行異機遷移數據庫。
網上的攻略都是 rman 的熱備份異機遷移,相比冷備份的異機遷移需要多備份歸檔(未歸檔)日志文件、聯機日志文件,操作步驟較為復雜。
如果是可以停機的數據庫,更推薦使用 mount 方式下的冷備份來做異機遷移。
寫了1個遷移文件,以備后用。
{
‘first database’:{
‘os’:’suse11’
‘oracle_version’:’11gr2’
}
‘second database’:{
‘os’:’suse11’
‘oracle_version’:’11gr2’
}
}
mkdir /nfs
chmod -R 777 /nfs
echo '/nfs *(fsid=0,crossmnt,rw,root_squash,sync,no_subtree_check)' >>/etc/exports
service nfsserver restart
mount -t nfs x.x.x.x:/nfs /nfs
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
backup database format '/nfs/%U';
backup current controlfile format '/nfs/%U.bak';
release channel c1;
release channel c2;
}
mkdir -p /opt/oracle/oradata/orcl
mkdir -p /opt/oracle/admin/orcl
cd /opt/oracle/admin/orcl
mkdir adump bdump udump cdump pfile
mkdir /opt/oracle/flash_recovery_area
mkdir /opt/oracle/flash_recovery_area/orcl
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=xxxxx
set dbid xxxxxxx
startup nomount
restore spfile to pfile '/opt/oracle/product/11.2.0/db_1/dbs/initorcl.ora' from '/nfs/1aq10otf_1_1';
shutdown immediate;
startup nomount;
restore controlfile from '/nfs/xxx/xxx'
alter database mouont;
restore database;
alter database open resetlogs;