天天看点

rman 冷备份异机迁移Part1Part2

rman 作为 oracle 推荐的备份、恢复方式,我们常使用它来进行异机迁移数据库。

网上的攻略都是 rman 的热备份异机迁移,相比冷备份的异机迁移需要多备份归档(未归档)日志文件、联机日志文件,操作步骤较为复杂。

如果是可以停机的数据库,更推荐使用 mount 方式下的冷备份来做异机迁移。

写了一个迁移文件,以备后用。

Part1

Env

{

‘first database’:{

‘os’:’suse11’

‘oracle_version’:’11gr2’

}

‘second database’:{

‘os’:’suse11’

‘oracle_version’:’11gr2’

}

}

Set a nfs service for first database

mkdir /nfs
chmod -R  /nfs
echo '/nfs    *(fsid=0,crossmnt,rw,root_squash,sync,no_subtree_check)' >>/etc/exports
service nfsserver restart
           

Mount nfs dir in first database

mount -t nfs x.x.x.x:/nfs /nfs
           

Run backup script in the nfs dir

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;
}
           

Part2

Get ready in second database

Make dir for second database;

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
           

Create password file

orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=xxxxx
           

Recover second database

Set DBID

set dbid xxxxxxx
           

Start Second database numount

startup nomount
           

Restore pfile

restore spfile to pfile '/opt/oracle/product/11.2.0/db_1/dbs/initorcl.ora' from '/nfs/1aq10otf_1_1';
           

Start database by new pfile

shutdown immediate;
startup nomount;
           

Restore control file

Recovery database

alter database mouont;
restore database;
alter database open resetlogs;