Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库

2014-11-24 17:59:46 · 作者: · 浏览: 0

1. Active database duplication


2. Backup-based duplication



Active database duplication 通过网络,直接copy target 库到auxiliary 库,然后创建复制库。 这种方法就不需要先用RMAN 备份数据库,然后将备份文件发送到auxiliary端。


这个功能的作用是非常大的。 尤其是对T级别的库。 因为对这样的库进行备份,然后将备份集发送到备库,在进行duplicate 的代价是非常大的。 一备份要占用时间,二要占用备份空间,三在网络传送的时候,还需要占用带宽和时间。所以Active database duplicate 很好的解决了以上的问题。 它对大库的迁移非常有用。



如果是从RAC duplicate 到单实例,操作是一样的。 如果是从单实例duplicate RAC 那么先duplicate 单实例。 然后将单实例转换成RAC



Oracle 10g Rman duplicate 的例子参考:


RMAN 异机 复制数据库



下面我们看一下11gR2下,Active Database Duplicate的步骤如下:



1. 创建Auxiliary 库的Initialization Parameter


如果使用spfile,那么在pfile文件里只需要设置一个DB_NAME参数,其他参数会在duplicate 命令中自己设置。


如果使用pfile,那么需要设置如下参数:


DB_NAME


CONTROL_FILES


DB_BLOCK_SIZE


DB_FILE_NAME_CONVERT


LOG_FILE_NAME_CONVERT


DB_RECOVERY_FILE_DEST



2. Auxiliary库创建Password File 文件


对于Backup-based duplicationPassword File 不是必须的,但是对于Active Database DuplicationPassword File是必须的。 因为Active Database Duplication 使用相同的SYSDBA 密码直接连接到auxiliary 库。 所以,确保target Auxiliary库的SYSDBA 密码一样很重要。



当然,我们也可以在duplicate 命令中加上PASSWORD FILE 选项(也是默认值), 这样RMAN copy 的时候也会从target 库把密码文件copy过来,如果auxiliary库上已经存在了Password file,那么该操作会重写那个文件。


如:


RMAN> DUPLICATE TARGET DATABASE TO Dave


2> FROM ACTIVE DATABASE


3> NOFILENAMECHECK


4> PASSWORD FILE


5> SPFILE;



3. 如果是windows 平台,还需要创建Database service


% set ORACLE_SID=DAVE
% set ORACLE_HOME=E:\oracle\product\11.1.0\db_1
% oradim -NEW -SID DAVE




4. 配置oracle net,修改listener.orathe tnsnames.ora 文件:


Target 库和Auxiliary 都要修改。这个也可以使用netca netmgr命令配置。



Listener.ora


LISTENER =


(DESCRIPTION_LIST =


(DESCRIPTION =


(ADDRESS = (PROTOCOL = TCP)(HOST = localhost6.localdomain6)(PORT = 1521))


)


)



ADR_BASE_LISTENER = /u01/app/oracle



SID_LIST_LISTENER =


(SID_LIST =


(SID_DESC =


(GLOBAL_DBNAME = orcl)


(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)


(SID_NAME = orcl)


)


)



tnsname.ora


ORCL_ST =


(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.43)(PORT = 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = orcl)


)


)



ORCL_PD =


(DESCRIPTION =


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.42)(PORT = 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = orcl)


)


)




5. 用第一步创建的pfile文件,将Auxiliary启动到nomout 状态。 然后进行Active Database duplicate