ITPub博客

RMAN的活动数据库复制

原创 Oracle 作者:fengpinDBA 时间:2013-11-28 23:30:11 16777215 删除 编辑

RMAN的活动数据库复制

1. 活动数据复制的准备工作

在活动数据库复制中,RMAN连接到作为目标的源数据库实例和辅助实例。RMAN通过网络拷贝源数据库到辅助实例,由此创建辅助数据库,这并不需要先创建源数据库备份。

实际的复制工作是源数据库和复制实例通过它们之间的网络完成的,源数据库和辅助实例之间的网络由Oracle Net实现。

执行数据库复制操作,源数据库和复制数据库必须是相同的平台,相同操作系统的32位和64位版本属于相同平台。DUPLICATE命令要求至少连接到一个辅助实例执行复制工作。在执行活动数据库复制操作之前要完成以下准备工作:

?  数据空间要求

确保目标主机有足够的存储空间存放源数据库的数据

?  源和目的地主机通过LAN或者WAN进行连接

WAN中活动数据库复制的性能可能比LAN(本地区域网络)更慢。如果WAN的性能不可接受,那么基于备份的复制可能变成唯一可用的选项了。如果必须在多用户活动期间复制数据库,可能导致网络吞吐量下降,这种情况最好也选择基于备份的复制。

?  复制文件的命令策略

当复制数据库时,RMAN为复制控制文件、数据文件、临时文件和联机Redo日志文件生成名称。因此,必须制定这些文件的命名策略。

Oracle推荐简单的复制策略,配置与源数据库相同的名称。使用相同的名称要符合如下要求:

l   如果源数据库使用ASM磁盘组,那么复制数据库必须使用相同名称的ASM磁盘组。

l   如果源数据库文件是Oracle管理的文件(OMF),那么辅助实例必须设置DB_FILE_CREATE_DEST参数,指定与源数据库相同的目录位置。源和目的地主机的目录是相同的,Oracle数据库为复制文件创建相应的名称。

l   源数据库和复制数据库要求有相同的路径存放数据库文件。

?  Oracle Net连通性

要确保源数据库到辅助实例之间的Oracle Net的连通性。如果源数据库是RAC数据库,确保RAC数据库的所有节点都可以建立与辅助实例之间的连通性。

             所谓Oracle Net连通性指的是在源数据库所有节点配置到辅助实例的本地服务名。

?  为辅助实例创建密码文件

可使用如下方法创建密码文件:

1.        手动创建密码文件

活动复制要求源数据库和辅助实例使用相同的密码,默认使用的是SYS用户。

2.        duplicate … from active database命令明确指定password file选项。

明确指定password file选项,RMAN会拷贝源数据库密码文件到目的地主机,执行复制命令时覆盖辅助实例存在的密码文件。

?  创建初始化参数文件

可以选择一下方式为辅助实例创建初始化参数文件:

1.        手动创建初始化参数文件

在初始化参数文件默认的位置,遵循初始化参数文件的命名规则为辅助实例创建基于文本的初始化参数文件。

2.        duplicate命令中明确指定spfile选项

明确指定了spfile选项,在RMAN复制期间,会自动从源数据库拷贝服务器参数文件到辅助实例,在此之前要创建临时的参数文件。

?  确保源数据库处于正常的状态

复制源数据库必须确保在MOUNT或打开的状态

2. 活动数据复制

步骤1 RMAN连接到必要的数据库实例上

针对活动数据库的复制,RMAN必须作为TARGET连接到源数据库,作为AUXILIARY连接到辅助实例。必须为两个实例使用相同的SYSDBA密码,根据RMAN元数据的存储位置选择是否连接恢复目录数据库。以下的例子同时连接到源数据库、辅助实例和恢复目录数据库。

1)   连接到源数据库

RMAN> connect target sys/sysdba@prod;

2)   连接到辅助实例

RMAN> connect auxiliary sys/sysdba@dupdb;

3)   连接到恢复目录数据库:

RMAN> connect catalog rman/rman@catdb;

        步骤2 切换归档Redo日志

           如果源数据库在打开的状态,那么源数据库必须是归档模式。即使没有复制操作提供明确的时间点,RMAN活动数据库复制技术也会执行数据库的时间点恢复,但是由于连接Redo日志不能应用到复制数据库,所以不能将数据库恢复到最新状态,也就是说,活动数据库的复制过程会将复制数据库恢复到执行复制工作之前最近的归档时间点。为了复制较新的数据,可以在执行duplicate命令之前先做一个日志切换:

        RMAN> run {

        2> sql ‘alter system archive log current’;

         Duplicate …

        3> sql ‘alter system archive log current’;

        }

        步骤3 执行duplicate命令复制活动的数据库

            duplicate命令中明确指定NOFILENAMECHECK选项。执行下面命令复制源数据库、密码文件和参数文件到辅助实例相同目录结构:

        RMAN> duplicate target database to ractest

               from active database

               password file

               spfile

               nofilenamecheck;

            成功执行上面命令必须确保源数据在归档模式,以及至少产生一次归档,并且没有使用spfile启动辅助实例。Password file选项明确RMAN拷贝密码文件到目的地主机。Spfile子句明确RMAN拷贝服务器参数文件目的地主机,使用服务器参数文件启动辅助实例。

            整个复制过程通过网络拷贝所有必要的数据文件和归档Redo日志到目的地主机,自动完成复制数据的还原和恢复操作,最后,RMAN使用resetlog选项打开数据库,创建新的联机Redo日志。

    3. DUMPLICATE命令的自动优化功能

           RMAN自动优化duplicate命令,可以继续之前失败的duplicate命令。重启启动duplicate命令数据库不再拷贝之前成功拷贝的数据文件,这适用于所有形式的复制,包括基于备份或者活动数据库的复制,当在复制一个非常大的数据库时发生失败,duplicate命令的自动优化功能特别有用。

            如果duplicate操作失败,只需要将之前的duplicate命令在运行一次,第二次duplicate操作会执行以下的工作:

       步骤1 找出上一次的duplicate命令成功复制的数据文件。

       步骤2 针对每个数据文件显示一下类似信息,表示不再需要复制相应的文件:

       RMAN-05560

       步骤3 只复制错误或未完成的数据文件,由此避开重新拷贝或还原所有的数据文件。

       尝试恢复一个失败的duplicate操作之前,必须重新启动辅助实例到nomount模式之后再次执行相同的duplicate命令。如果不需要RMAN从失败的duplicate操作中自动优化,明确指定noresume关键字禁用这个功能。可能在第一次调用duplicate的时候就使用noresume关键字,防止后来的duplicate命令使用自动化功能。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29339097/viewspace-1061578/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-11-22

  • 博文量
    22
  • 访问量
    920840