前提条件:
rac --- 要复制的rac数据库名
cat --- catalog数据库名(可选)
dup --- 复制后的数据库名
复制操作过程:
1. 备份rac数据库
不使用catalog数据库的例子:
$ export ORACLE_SID=rac $ rman target / RMAN> run { allocate channel c1 type disk format '/home/rac/backup/%U'; backup database include current controlfile plus archivelog; }
使用catalog数据库的例子:
$ export ORACLE_SID=rac $ rman target / catalog rman/rman@cat RMAN> run { allocate channel c1 type disk format '/home/rac/backup/%U'; backup database include current controlfile plus archivelog; }
2. 复制rac数据库参数文件,用来作为dup数据的参数文件
$ export ORACLE_SID=rac $ sqlplus "/ as sysdba" SQL> create pfile from spfile;
$ cd $ORACLE_HOME/dbs $ cp initrac.ora initdup.ora需要修改的参数:
<修改所有带有路径参数>
<修改所有带有实例名的参数>
*.cluster_database=false --------- 该参数在复制RAC数据库的时候需要设置成false,否则会报ORA-12720错误
*.db_name='dup'
3. 启动dup数据库实例
$ export ORACLE_SID=dup $ sqlplus "/ as sysdba"
SQL> startup nomount exclusive SQL> exit
4. 复制数据库
不使用catalog数据库:
$ export ORACLE_SID=dup $ rman auxiliary / RMAN> DUPLICATE DATABASE TO dup BACKUP LOCATION '/home/rac/backup';
使用catalog数据库:
$ export ORACLE_SID=dup $ rman catalog rman/rman@cat auxiliary / RMAN> DUPLICATE DATABASE rac TO dup;复制完成