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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在Oracle 10g下,我们可以使用RMAN duplicate 命令创建一个具有不同DBID 的复制库。到了Oracle 11gR2,RMAN 的duplicate 有2种方法实现:

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 duplication,Password File 不是必须的,但是对于Active Database Duplication,Password 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.ora和the tnsnames.ora 文件:

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

Listener.ora

[oracle@qs-dmm-rh1 admin]$ cat 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

[oracle@qs-dmm-rh1 admin]$ cat tnsnames.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。

相关文档
最新文档