Oracle 11G Duplicate 介绍

Duplicate

这一章描述了如何使用DUPLICATE命令来创建一个独立功能数据库副本。本文翻译自Oracle 11G 在线文档,地址:http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmdupdb.htm#BRADV298

方便大家从官方的角度正确的理解Oracle Duplicate ,知其然,知其所以然!

本章包含以下主题:

 

RMAN数据库复制的概述

数据库复制,使用DUPLICATE命令来复制全部或在源数据库数据的一个子集。 复制数据库(复制的数据库)功能完全的独立源数据库(数据库被复制)。

 

数据库复制的目的

复制数据库用于各种各样的目的,其中大部分涉及测试。 你可以复制数据库中执行以下任务:

  • 测试备份和恢复过程
  • 测试升级到新版本的Oracle数据库
  • 测试应用程序对数据库性能的影响
  • 创建一个备用数据库
  • 生成报告

例如,您可以复制生产数据库从host1到host2,然后使用复制的数据库host2练习恢复和恢复这个数据库而生产数据库host1像往常一样运作。

如果你使用操作系统命令copy一个数据库而不是DUPLICATE命令,DBID与原始数据库相同。你必须改变的DBID使用DBNEWID实用程序(见Oracle数据库实用工具)。 相比之下,DUPLICATE复制数据库命令自动分配一个不同的DBID这样它就可以被注册在同一个恢复目录。

DUPLICATE命令可以创建一个功能齐全的数据库或副本物理备用数据库,这是一个非常不同的目的。 备用数据库是一个复制的主数据库更新不断从主数据库归档日志文件。 如果主数据库不可访问,那么您可以故障转移到备用数据库,成为新的主数据库。 数据库复制,不能以这种方式使用:它不是用于故障转移场景和支持各种备用恢复和故障恢复选项。

参见:

Oracle数据保护的概念和管理 学习如何创建一个备用数据库DUPLICATE命令

 

数据库复制的基本概念

服务器的源数据库。 源数据库实例是与源数据库相关联的实例。

目的服务器复制数据库。 源服务器和目的服务器可以相同或不同的。 相关的数据库实例称为复制数据库辅助实例

注意:

同时执行数据库复制操作不支持使用相同的源数据库。

复制数据库的技术

RMAN支持两种基本类型的复制:

Active的数据库复制和backup-based复制。 RMAN可以执行backup-based复制有或没有下面的连接:

  • Target
  • 恢复目录

需要连接两个Active的数据库复制。

图24-1显示了两个复制的决策树技术。

图24-1复制技术


“图24-1复制技术”的描述

 

Active的数据库复制

Active的数据库复制,RMAN连接Target当对源数据库实例AUXILIARY辅助实例。 RMAN将通过网络从源数据库复制到辅助实例,从而创建复制的数据库。 不需要源数据库的备份。图24-2说明了Active数据库复制。

图24-2 Active数据库复制


“图24-2Active数据库复制”的描述

 

Backup-Based 复制

backup-based复制,RMAN创建复制数据库使用RMAN备份和拷贝。 这种技术的复制使用下列之一:

  • 复制没有Target数据库连接,RMAN获得关于备份的恢复目录的元数据。
  • 复制没有Target数据库连接并没有恢复目录。 RMAN从本地备份和拷贝获取元数据完成复制工作
  • 复制与Target数据库连接。 RMAN获取元数据从Target数据库控制文件备份或恢复目录。

图24-3说明了backup-based复制没有一个Target的连接。 RMAN连接到一个恢复目录数据库实例和辅助实例。 目的主机必须能够访问RMAN备份,才能创建复制数据库。

没有Target连接图24-3 Backup-Based复制


描述的“图24-3 Backup-Based复制没有Target连接”

图24-4说明了backup-based复制没有连接到Target或恢复目录数据库实例。 RMAN连接到辅助目的地主机复制数据库的实例。 一个磁盘备份位置包含所有可用的备份或复制副本必须到Target主机。

没有Target连接图24-4 Backup-Based复制或恢复目录连接


描述的“图24-4 Backup-Based复制没有Target连接或恢复目录连接”

图24-5说明了backup-based复制一个Target的连接。 RMAN连接到源数据库实例和辅助实例。 可选地,RMAN可以连接到一个恢复目录数据库(图中没有显示)。 目的地主机必须能够访问RMAN备份需要创建复制数据库。

图24-5 Backup-Based复制Target连接


描述的“图24-5 Backup-Based复制Target连接”

 

复制数据库的内容

复制数据库可以包含相同的内容源数据库或只在源数据库表空间的一个子集。 例如,您可以使用TABLESPACE选择只复制指定表空间,或SKIP READONLY选项来排除只读表空间的数据库复制。

 

RMAN如何复制一个数据库

backup-based复制,主要执行复制的工作的通过Auxiliary通道。这些通道对应一个服务器会话在目的主机上的辅助实例。 Active数据库复制的主要工作是由Target渠道。

RMAN必须执行数据库时间点恢复,即使没有提供明确的时间点上的复制。 时间点恢复是必需的,因为源数据库的联机重做日志文件不支持,不能用于复制数据库。 最远的点恢复的复制数据库最近的归档重做日志文件的源数据库。

作为复制操作的一部分,RMAN自动化以下步骤:

  1. 创建一个默认服务器参数文件辅助实例如果下列条件:
    • 复制不涉及一个备用数据库。
    • 服务器参数文件并没有被复制。
    • 辅助实例并不是始于一个服务器参数文件。
  2. 恢复备份或复制从满足Active数据库的最新控制文件UNTIL条款的要求。
  3. 从Active的数据库加载备份控制文件完成恢复或复制。

    注意:

    如果源数据库的控制文件包含禁用线程,这些线程也会复制数据库中被禁用。

  4. 使用RMAN库中选择恢复的备份数据文件到辅助实例。 这个步骤适用于backup-based复制。
  5. 恢复和拷贝复制数据文件,用增量备份恢复和归档重做日志文件非流动的时间点。
  6. 关闭并重新启动数据库实例到NOMOUNT模式。
  7. 创建一个新的控制文件,然后创建并存储新DBID数据文件。
  8. 打开数据库的复制RESETLOGS选项,创建新数据库的联机重做日志。

参见:

DUPLICATE进入 Oracle数据库备份和恢复参考 对于一个完整的列表的文件复制到复制数据库

 

数据库复制的基本步骤

本节描述的数据库的基本步骤复制。 按照每个步骤中的链接进行进一步的指令。

复制一个数据库:

  1. 准备数据库复制
  2. 开始RMAN并且连接到必要的数据库实例
  3. 源数据库在适当的状态(如果需要)
  4. 配置RMAN通道(如果需要)
  5. 执行复制

准备复制数据库

复制数据库之前,必须决定如何执行复制,然后准备数据库环境,包括辅助数据库实例。

准备复制:

  1. 选择一个复制技术。看到步骤1:选择一个复制技术而复制一个Oracle真正的应用程序集群数据库(Oracle RAC),设置CLUSTER_DATABASE辅助数据库初始化参数FALSE。 这个参数可以复位TRUE复制完成后。
  2. 选择一个策略命名复制数据库文件。看到“第二步:选择一个策略命名复制的文件
  3. backup-based策略,使备份可以辅助实例;否则,跳过这一步。看到“第三步:备份复制实例
  4. 准备远程访问数据库。看到第四步:准备远程访问数据库
  5. 准备辅助实例。看到步骤5:创建一个初始化参数文件和启动辅助实例

 

步骤1:选择一个复制技术

您的业务需求和数据库环境确定哪些复制技术最适合您的情况。 考虑以下问题:

  • 你熟悉每个复制技术的先决条件?审查的“先决条件”部分DUPLICATE命令进入Oracle数据库备份和恢复参考对于一个完整的列表。 一些先决条件是常见的所有复制技术,如以下:
    • 源和复制数据库必须在同一平台。 的DUPLICATE命令把32位和64位版本的操作系统一样属于同一个平台。
    • DUPLICATE命令至少需要一个辅助通道辅助实例上执行复制的工作。

    其他先决条件是特定和依赖于复制技术。 例如,Active复制要求源和辅助实例使用相同的密码作为源数据库,而backup-based复制没有连接到Target数据库和恢复目录只要求所有备份和数据库副本驻留在一个单一位置上。

  • 源数据库已经存在的备份吗?Active数据库复制的主要优点是,它不需要源数据库备份。 活跃复制拷贝安装或在线数据库文件通过网络辅助实例。 这种方法的一个缺点是对网络负面的性能影响。 另一个缺点是,源数据库运行过程所需的文件转移到辅助主机,从而影响源数据库和生产工作负载。如果源数据库备份已经存在,如果对网络的影响是不可接受的,然后backup-based复制可能是一个更好的选择。 你可以手动备份复制到临时存储和转移到Target主机。 如果复制是由一个连接到Target或恢复目录,然后在目的地主机备份文件必须有相同的文件规范,因为他们已经在源主机上。 否则,这不是一个要求。
  • 恢复目录可用吗?如果恢复目录存在,那么您可以执行backup-based没有连接RMAN复制TARGET源数据库。 这种技术是有利的,从辅助主机网络连接到源数据库限制或容易间歇性中断。 在没有复制TARGET连接,源数据库复制的影响。
  • 有多少磁盘空间可用在目的地主机吗?目的地主机上的磁盘空间可以是一个问题,当你执行复制使用磁盘备份。 例如,如果源数据库1 TB(TB),如果你从磁盘复制数据库备份没有使用共享磁盘或网络文件系统(NFS),那么你必须有至少2 TB结核病Target主机上的可用空间。 在某些环境中,手动备份转移是必要的,因为NFS性能瓶颈。
  • 是源和目的地主机通过局域网或广域网相连吗?Active的数据库复制的性能可能是慢的在广域网(WAN)比一个局域网(LAN)。 如果在广域网性能下降是不可接受的,然后backup-based复制可能是唯一可行的选择。
  • 当你打算复制数据库?如果你必须复制数据库高用户Active期间,网络吞吐量的损失造成的活跃复制可能是一个问题,使backup-based复制一个更好的选择。 同时,主动数据库中复制RMAN频道所需文件复制到辅助主机如何影响性能。

 

步骤2:选择一个策略命名复制的文件

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

Oracle建议最简单的复制策略,配置复制数据库使用相同的名称作为源数据库。 使用相同的名称意味着您的环境符合下列要求:

  • 如果源数据库使用ASM磁盘组,然后复制数据库必须使用ASM磁盘组具有相同的名字。
  • 如果源数据库文件是Oracle管理文件,那么必须设置辅助实例DB_FILE_CREATE_DEST相同的目录位置与源数据库。 虽然目录相同的源和目的地主机上,Oracle数据库选择相对的名称复制的文件。
  • 如果这是一个Oracle RAC环境中,那么您必须使用相同的ORACLE_SID为源和Target主机。
  • 如果数据库文件的名称在源数据库包含一个路径,这个路径名必须相同的复制数据库。

当您配置您的环境暗示,不需要额外的配置名称复制的文件

参见:

“复制数据库文件指定替代的名字”对于更复杂的解释策略的使用不同的名称复制的文件

 

第三步:制作备份复制实例访问

注意:

如果你执行Active的数据库复制,然后跳过本节,继续第四步:准备远程访问数据库”

当复制Target和恢复目录或只是一个Target连接,RMAN使用RMAN库中的元数据来定位所需的备份和归档重做日志文件复制。 如果复苏RMAN被连接到一个目录,那么RMAN获取备份元数据目录。 如果RMAN不是连接到一个目录,可能的情况下执行backup-based复制Target连接,那么RMAN获得控制文件的元数据。

除非你是没有连接复制到Target和恢复目录,备份的名称必须用相同的名字记录在可用RMAN库。 确保辅助通道目的地主机可以访问所有数据文件备份和归档重做日志文件(需要恢复和恢复复制数据库所需的时间点)。 如果不是,复制失败。 可用的归档重做日志文件可以作为图像复制或备份集。

注意:

数据库备份不需要生成BACKUP DATABASE。 你可以混合充分、增量备份个人数据文件,但是每个数据文件的完整备份是必需的。

 

使SBT备份可访问到辅助实例

在这个任务的步骤是特定于您的媒体管理器配置。

使SBT备份可进入辅助实例:

  1. 如果有必要,在Target主机上安装媒体管理软件。
  2. 使备份的磁带可访问到Target主机。 通常,您做以下之一:
    • 身体移动的磁带驱动器连接到远程主机。
    • 使用一个网络磁带服务器。
  3. 如果有必要,通知远程媒体管理软件存在的磁带。

 

使磁盘备份到辅助实例访问

当你做磁盘备份进入辅助实例,你的策略取决于你是否复制数据库在连接到Target或恢复目录。 如果您没有连接到Target或恢复目录,然后您必须指定一个BACKUP LOCATION的复制。

当你使用BACKUP LOCATION,备份和拷贝可以放在共享位置或者可以移动BACKUP LOCATION的目的地主机上。 在后一种情况下,您不需要保留的名称或原始路径备份或复制。 指定的位置BACKUP LOCATION选项必须包含足够的备份集、镜像复制和恢复所有的归档日志文件被复制,并恢复所需的时间点。

它不是必需的,所有的备份是相同的时间点,或者是所有备份集,或是所有图像副本。 数据文件备份可以提供图像复制或备份集。 归档日志可以提供正常的格式或归档日志的备份集。

当你使用从不同的时间点备份,备份位置必须包含归档日志的时间从一开始最古老的备份,直到所需的恢复点。

如果备份位置包含来自多个数据库的备份文件,然后DATABASE 字句必须在复制时指定数据库的名称。 如果备份位置包含来自多个数据库的备份文件拥有相同的名字,然后DATABASE字句必须在复制时指定数据库名称和DBID

源数据库的快速恢复区域尤其适合使用作为备份位置,因为它几乎包含所有所需的文件复制。 使用快速恢复区作为备份的位置,你可以从目的地系统远程访问它,或将其内容复制到目的地系统。

你何时可以不使用 BACKUP LOCATION,你的策略取决于以下互斥的场景:

  • 相同的源和目的地主机的文件系统这个场景是最简单和Oracle建议。 例如,假设源数据库的备份存储/dsk1/bkp。 在这种情况下,您可以访问磁盘备份到目的地主机以这两种方式:
    • 手动转移备份从源主机到目的主机的一个相同的路径。 例如,如果备份/dsk1/bkp在源主机上,然后使用FTP传输/dsk1/bkp在目的地主机上。
    • 使用NFS或共享磁盘,并确保在目的地主机访问相同的路径。 例如,假设源主机可以访问/dsk1/bkp,使用NFS挂载/dsk1/bkp在Target主机上和使用/dsk1/bkp作为挂载点名称。
  • 不同的源和目的地主机的文件系统在这种情况下,源主机和目的地主机使用不同的访问路径。 你有以下选项:
    • 您可以使用共享磁盘备份可用。 本节解释了共享磁盘技术。
    • 你不能使用共享磁盘备份可用。“不共享磁盘使磁盘备份可访问”解释了这种技术。

假设你有两个主机,srchostdsthost可以访问NFS或共享磁盘。 数据库在srchost被称为srcdb。 srcdb的备份/dsk1/bkp在主机srchost。 目录/dsk1/bkp在目的地主机上已经在使用了,但是目录/dsk2/dup 没有在主机使用。

将备份从源主机转移到目的主机:

  1. 创建一个备份存储目录在源或目的地主机。对于这个示例,创建备份目录/dsk2/dup在目的地主机上。
  2. 挂载的目录中创建其他主机上前面步骤,确保目录和挂载点的名称都是一样的。例如,如果您创建的/dsk2/dup在目的地主机上,然后使用NFS挂载这个目录/dsk2/dup在源主机上。
  3. 使备份目的地主机上的新位置。 您可以使用以下技术:
    • RMAN连接到源数据库TARGET并使用BACKUP命令备份。 例如,使用BACKUP COPY OF DATABASE命令在源主机上复制备份从/dsk1/bkp到/dsk2/dup。 在这种情况下,RMAN自动目录备份在新位置。
    • 使用备份操作系统实用程序转移到新的位置。 例如,使用FTP传输备份在源主机/dsk1/bkp到在目的地主机/dsk2/dup上,或使用cp命令来复制备份/dsk1/bkp在源主机上/dsk2/dup在源主机上。 随后,RMAN连接到源数据库TARGET并使用CATALOG命令来更新RMAN库的位置手动转移备份。

第四步:准备远程访问数据库

必须从另一个主机访问数据库时,您必须设置一个密码文件和Oracle网络连通性。 了解潜在的安全后果的这种类型的设置。

 

在需要情况下建立连接

手动创建密码文件:

按照说明在Oracle数据库管理员指南创建一个密码文件。

文件名的类型允许密码文件和密码文件都是特定于平台的位置和操作系统。

建立Oracle Net连接和设置一个静态的侦听器:

按照说明在Oracle数据库管理员指南网服务配置客户端连接到一个数据库并添加侦听器的静态服务信息。

 

为辅助实例创建密码文件

你有以下选项创建一个密码文件目的地主机上的辅助实例:

  • 手动创建密码文件。还有其他的要求DUPLICATE … FROM ACTIVE DATABASE。 你必须使用SYS用户ID和密码必须匹配源数据库的密码。 您可能想要创建密码文件用一个密码,这样你就可以启动辅助实例,使源数据库连接到它。
  • 指定PASSWORD FILE选择在DUPLICATE… FROM ACTIVE数据库命令。在这种情况下,RMAN将源数据库密码文件复制到目的地主机和辅助覆盖任何现有的密码文件实例。 这种技术是非常有用的,如果源数据库密码文件有多个密码你想要复制上可用的数据库。

注意:

如果你创建一个备用数据库FROM ACTIVE DATABASE选择,那么RMAN始终将密码文件复制到备用主机。

 

第五步:创建一个初始化参数文件和启动辅助实例

初始化参数文件的位置和内容取决于你的选择“第二步:选择一个策略命名复制的文件”。 本节使以下假设:

  • 你选择使用相同的命名策略的推荐技术的源和目的地主机。 因此对于Oracle RAC环境,您使用相同的ORACLE_SID为源和目的地主机。
  • 您创建一个基于文本的辅助实例初始化参数文件。 看到表25-5,“辅助实例初始化参数
  • 初始化参数文件位于特定于操作系统的默认位置的主机SQL*Plus 运行 。例如,在Linux和UNIX默认的初始化参数文件的名字ORACLE_HOME/dbs/initORACLE_SID.ora,而在Windows文件的名字是ORACLE_HOME\database\initORACLE_SID.ora
  • 你计划指定的SPFILE 字句DUPLICATE命令。DUPLICATE … SPFILE技术是简单的,因为RMAN会自动复制服务器参数文件从源数据库到辅助实例或从备份恢复它。 如果一个服务器参数文件存在辅助实例,然后RMAN会覆盖它。

如果你不能满足以上要求,然后看到复制数据库服务器参数文件不存在

创建一个初始化参数文件和启动辅助实例:

  1. 使用文本编辑器,创建一个空文件作为一个基于文本的初始化参数文件。
  2. 将初始化参数文件复制到特定于操作系统的默认位置在主机上运行SQL*plus。
  3. 在参数文件中,给DB_NAME一个任意值。DB_NAME是唯一所需的初始化参数。 下面的例子显示了一个示例DB_NAME设置:
    DB_NAME = somevalue
  4. 如果有必要,设置其他所需的初始化参数如Oracle RAC,和连接使用一个用户ID SYSDBA通过Oracle net。
  5. 启动SQL*plus和连接到辅助实例使用SYSDBA权限。 启动辅助实例NOMOUNT模式(没有PFILE的参数STARTUP命令是必要的,如果文件是在默认位置):
    SQL> STARTUP NOMOUNT

注意:

确保辅助实例与一个基于文本的初始化参数文件并开始服务器参数文件。 不创建一个控制文件或试图安装或打开辅助实例。

将源数据库在适当的状态

注意:

如果您正在执行backup-based复制没有Target连接,然后跳到“复制配置RMAN渠道使用”

如果RMAN连接到源数据库TARGET,那么必须在适当的状态复制。

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

  1. 如果源数据库实例没有mount或open,请mount或open。
  2. 如果您正在执行Active的数据库复制,那么确保满足以下附加要求:
    • 如果源数据库是开放的,那么必须启用归档。
    • 如果不开放源数据库,数据库不需要实例恢复。

开始RMAN和连接到数据库

在这个任务中,您必须启动RMAN客户端和连接到数据库实例复制所需的技术。 RMAN客户机可以位于任何主机只要通过网络可以连接到必要的数据库。

RMAN开始,连接到Target和辅助实例:

  1. 任何主机上启动RMAN客户端可以连接到必要的数据库实例。
  2. RMAN提示,运行CONNECT命令你的复制技术:所需的数据库实例
    • 对于Active的数据库复制,必须连接到源数据库TARGET和辅助实例AUXILIARY。 你必须使用相同的SYSDBA密码为实例和必须提供连接到网络服务名AUXILIARY实例。 恢复目录连接是可选的。
    • 对于backup-based复制没有一个Target的连接,您必须连接到辅助实例AUXILIARY和恢复目录CATALOG
    • 对于backup-based复制一个Target的连接,您必须连接到源数据库TARGET和辅助实例AUXILIARY。 恢复目录是可选的。
    • backup-based复制没有Target和恢复目录连接,您必须连接到辅助实例AUXILIARY

    在下面的例子中Active的数据库复制,建立连接三个数据库实例,使用网络服务名称:

    RMAN> CONNECT TARGET SYS/sysdba@prod;    # source database
    connected to target database: PROD (DBID=39525561)
    
    RMAN> CONNECT AUXILIARY SYS/sysdba@dupdb; # duplicate database instance
    connected to auxiliary database: DUPDB (not mounted)
    
    RMAN> CONNECT CATALOG rman/rman@catdb;    # recovery catalog database
    connected to recovery catalog database

配置RMAN通道用于复制

辅助实例上的通道,而不是源数据库实例,恢复RMAN备份在backup-based复制。 通道配置取决于你的复制技术。

配置Active数据库复制的通道

Active数据库复制,你不需要改变你的源数据库或配置通道配置AUXILIARY通道。 然而,您可能想要增加你的源数据库的并行设置磁盘通道,所以RMAN副本文件通过网络在并行。

参见:

Oracle数据库备份和恢复参考案件的审理情况和有关信息。CONFIGURE命令

配置Backup-Based复制的通道

RMAN可以使用相同的信道配置上目的地主机数据库复制。 RMAN可以使用这些配置即使不指定源数据库通道AUXILIARY选择。

请注意以下额外的注意事项:

  • 通道类型(DISKsbt)的辅助通道必须匹配备份媒体。 一般来说,分配更多的通道磁盘备份、复制越快。 你不能增加后复制磁盘的速度达到最大读/写速率。 磁带备份,限制通道的数量可用设备的数量。
  • 如果辅助渠道需要特殊的参数(例如,指向一个不同的媒体经理),那么您可以配置一个自动的频道AUXILIARY选择的CONFIGURE命令。
  • 当您执行复制没有Target连接并没有恢复目录,只可以使用磁盘通道。 如果没有使用用户分配渠道,那么只有一个频道最初恢复控制文件。 控制文件安装后,分配渠道的数量取决于配置恢复控制文件。

复制数据库

本节描述最基本的程序复制数据库。 本节使以下假设:

  • 你复制数据库到远程主机。 复制数据库文件使用相同的名称作为源数据库文件。

    注意:

    运行DUPLICATE命令在这个配置中,您必须指定NOFILENAMECHECK选择在DUPLICATE命令。 如果你复制一个数据库作为源数据库在同一个主机上,然后确认NOFILENAMECHECK指定。

  • 你是复制整个数据库。 对于其他场景,看到的复制源数据库表空间的一个子集

数据库复制到远程主机使用相同的目录结构:

  1. 确保你已经完成了步骤1到步骤4“数据库复制的基本步骤”
  2. 运行DUPLICATE命令。

例子24-1说明如何执行Active复制的时候SPFILE子句指定。DUPLICATE要求NOFILENAMECHECK选择,因为源数据库文件具有相同的名称作为复制数据库文件。

PASSWORD FILE选项指定,RMAN应将密码文件复制到目的地主机。 RMAN自动将服务器参数文件复制到目的主机,启动辅助实例与服务器参数文件,复制所有必要的数据库文件和归档重做日志目的地主机通过网络,并恢复数据库。 最后,RMAN打开的数据库RESETLOGS选项来创建联机重做日志。

例子24-1复制到一个主机使用相同的目录结构(Active)

DUPLICATE TARGET DATABASE TO dupdb
  FROM ACTIVE DATABASE
  PASSWORD FILE
  SPFILE
  NOFILENAMECHECK;

 

Backup-Based复制没有Target连接:例子

在这个变化例子24-1,RMAN不使用TARGET连接到源数据库。例子24-2创建一个复制的源数据库prod因为它出现在2007年之前数据库。 RMAN没有连接到源数据库,而必须连接到一个恢复目录,因为没有BACKUP LOCATION提供。

例子24-2数据库复制到过去的时间点(Backup-Based)

DUPLICATE DATABASE prod DBID 8675309 TO dupdb
  UNTIL TIME "TO_DATE('11/01/2007', 'MM/DD/YYYY')"
  SPFILE
  NOFILENAMECHECK;

请注意以下的特点例子24-2:

  • 没有指定FROM ACTIVE DATABASE子句。 没有指定这一子句,您指示RMAN执行backup-based复制。
  • DBID因为指定源数据库的名字prod在恢复目录并不是唯一的。
  • NOFILENAMECHECK检查时指定,因为复制数据库文件名称与源数据库文件名称相同。

假设你想恢复一个档案备份,这是广泛的,在某种意义上来讲所有文件需要恢复和恢复数据库。 档案备份恢复测试的推荐技术是创建一个临时的实例和使用DUPLICATE命令。 通过这种方式,可以避免干扰源数据库。

DUPLICATE命令你必须指定创建的原点与档案备份。 你只能指定TO RESTORE POINT如果RMAN被连接到一个恢复目录,或者对源数据库控制文件恢复点存在时。例子24-3指定恢复点TESTDB103107

例子24-3 Backup-Based复制使用一个档案备份

DUPLICATE DATABASE prod DBID 8675309 TO dupdb
  TO RESTORE POINT TESTDB103107
  SPFILE
  NOFILENAMECHECK;

 

Backup-Based复制Target连接:例子

假设backup-based变化例子24-1RMAN的连接TARGET源数据库。例子24-4复制数据库恢复到一星期前查看源数据库中的数据,因为它出现。

例子24-4数据库复制到过去的时间点(Backup-Based)

DUPLICATE TARGET DATABASE TO dupdb
  SPFILE
  NOFILENAMECHECK
  UNTIL TIME 'SYSDATE-7';

请注意以下的特点例子24-4:

  • FROM ACTIVE DATABASE子句指定。 没有指定这一子句,您指示RMAN执行backup-based复制。
  • NOFILENAMECHECK检查时指定,因为复制数据库文件名称与源数据库文件名称相同。

 

Backup-Based复制没有Target和恢复目录连接:例子

例子24-1所示,例子24-5,RMAN不使用TARGET连接到源数据库或一个CATALOG连接到恢复目录。 所有备份和复制所必需的复制直到2007年11月11日下午2点,包括一个控制文件备份或复制,在/prod_backups目录下

例子24-5复制没有Target和恢复目录数据库连接(Backup-Based)

DUPLICATE DATABASE TO dupdb
  UNTIL TIME "TO_DATE('11/01/2007 14:00:00', 'MM/DD/YYYY HH24:MI:SS')"
  SPFILE
  BACKUP LOCATION '/prod_backups'
  NOFILENAMECHECK;

请注意以下的特点例子24-5:

  • 没有指定数据库名称。 没有指定的数据库名称DATABASE关键字,DUPLICATE从备份获得数据库名称和DBID。 如果发现多个数据库的备份BACKUP LOCATION 将显示错误
  • 使用BACKUP LOCATION子句识别复制的类型与Target连接和backup-based恢复目录。
  • UNTIL TIME选项指定。 只有UNTIL允许,在使用BACKUP LOCATION子句时
  • NOFILENAMECHECK检查时指定,因为复制数据库文件名称与源数据库文件名称相同。

例子24-6数据库复制到过去的时间点(Backup-Based)

DUPLICATE TARGET DATABASE TO dupdb
  SPFILE
  NOFILENAMECHECK
  UNTIL TIME 'SYSDATE-7';

请注意以下的特点例子24-6:

  • FROM ACTIVE DATABASE子句指定。 省略这一子句指示RMAN backup-based复制执行。
  • NOFILENAMECHECK检查时指定,因为复制数据库文件名称与源数据库文件名称相同。

重新启动复制失败后

RMAN自动优化DUPLICATE命令,如果之前执行了复制失败DUPLICATE命令。 复制DUPLICATE命令通知该数据文件被成功复制之前,不会再复制一遍。 这适用于所有形式的复制,是否backup-based(有或没有一个Target连接)或Active的数据库复制。 自动优化的DUPLICATE命令可以特别有用,当失败发生在非常大的数据库的复制。

重新启动复制操作:

  1. RMAN退出。
  2. 启动SQL*plus和连接到辅助实例SYSDBASYSBACKUP权限。 启动辅助实例到NOMOUNT模式受用SPFILEPFILE。 如果你最初省略了这个规范,那么这里忽略它了。这个例子开始辅助实例中使用的参数/home/my_pfile.ora:
    STARTUP FORCE PFILE=/home/my_pfile.ora
  3. 退出SQL*plus,RMAN开始。
  4. 连接到同一个数据库。
  5. 复制DUPLICATE命令。

第二个DUPLICATE操作:

  • 定位数据文件被最初的成功复制DUPLICATE命令。
  • 显示一条消息类似于以下为每个数据文件,它不需要再次复制:
    RMAN-05560: Using previous duplicated file /oradata/new/data01.f for datafile 1 with checkpoint SCN of 1654665
  • 只恢复丢失或不完整的数据文件,从而避免再次恢复所有的数据文件。

如果你不想要RMAN自动从失败中恢复过来DUPLICATE操作,指定关键字NORESUME禁用功能。 使用关键字NORESUME在第一次调用的DUPLICATE防止后续DUPLICATE命令使用这种自动优化的新数据库。

发表评论