恢复管理器(RMAN) Oracle Database 12c中的功能强化

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638    QQ号:47079569    邮箱:[email protected]

 

  • 在RMAN 中表或分区 及时恢复
  • SQL 接口支持
  • 改进VLDB的备份/恢复
  • 通过网络还原/恢复数据文件
  • 增加和改进ACTIVE DUPLICATE DATABASE

Oracle 终于发布了万众期待的首个云数据库 – Oracle Database12C。此后 Oracle社区中几个Oracle 行业/专家写了很多文章,论文,并作演讲。本文主要集中在Oracle database 12C 的一些新功能,但非常有用,在恢复管理器(RMAN)领域推出。

 

作为本文的一部分, 下面列出的新功能会附带一些实际运行的例子:

 

  • 在RMAN 中表或 分区及时恢复
  • SQL 接口支持
  • 改进VLDB的备份/恢复
  • 通过网络还原/恢复数据文件
  • 增加和改进Active Database Duplication

 

在RMAN 中表或分区及时恢复

在12C之前,使用现有的RMAN物理备份,没有直接的方法可以恢复一个特定的表或表空间。恢复表要么使用现有的逻辑备份,有所需的表,要么是在同一个或是新主机上还原/恢复完整的数据库,提取所需的表,并将它导入到源数据库中。

通过RMAN恢复一个或多个表或分区在12c中可以实现。我必须说,长期以来Oracle社区一直对此有疑问,现在终于出现在12C中。随着新的RMAN ‘RECOVER TABLE’ 命令出现在12C中,DBA可以执行一个或多个表或表分区的立即恢复。支持的选项包括, UNTIL TIME, UNTIL SCN and UNTIL SEQUENCE。RMAN使用类似表空间恢复的技术来执行表或表分区的恢复操作。在恢复过程中,RMAN操作的顺序如下:

  • 为临时辅助数据库配置系统级表空间,以及本地数据库服务器上所需的表空间
  • 还原并恢复在背景中保存表或表分区的表空间
  • 使用数据泵导出恢复中的表/分区
  • 选择性输入并在源数据库中重命名表/分区
  • 完成时,销毁辅助数据库

下面的例子涵盖了恢复EMP表中的说明,存在于SCOTT图示中,要么下跌或于2013年7月9日下午2点左右被截断:

 

RMAN> RECOVER TABLE SCOTT.EMP

UNTIL TIME “TO_CHAR(’07/09/2013 04:00:00′,’mm/dd/yyyy hh24:mi:ss’)”

AUXILIARY DESTINATION ‘/u01/tmp/recemp’

DATAPUMP DESTINATION ‘/u01/DPUMP’

DUMP FILE ‘recoveremp.dmp’

NOTABLEIMPORT

REMAP TABLE ‘SCOTT’.’EMP’:’EMP2′;
前面的例子执行以下操作:

 

  • 恢复SCOTT.EMP表,一直到07月09-2013下午4点
  • 辅助数据库的数据文件会放在 /u01/tmp/recemp 位置
  • 转储文件recoveryemp.dmp将被存储在/ U01/ DPUMP位置
  • NOTABLEIMPORT将防止导入到源数据库
  • 映射表提供了一个选项,可以在导入时重命名表

 

要执行表或分区的及时恢复,必须满足以下条件:

  • 目标数据库必须处于读写模式,且归档日志模式必须开启
  • 必须有以前的RMAN备份覆盖背景中的表/分区
  • 兼容的数据库初始化参数必须是11.1.0或更高版本

 

SQL接口支持

不同于之前的版本,在RMAN中需要SQL前缀执行SQL语句。在12C中,无需提及关键词SQL就可以直接在RMAN中执行大部分的SQL语句和PL / SQL程序。例如,通过RMAN,你可以向列表表结构描述命令,可以将数据文件添加到现有的表空间等。

下面的例子演示了如何添加数据文件到现有的表空间中,如何列出表结构以及如何使用SELECT语句:

RMAN> ALTER TABLESPACE data ADD DATAFILE size 100;

RMAN> DESCE dual;

RMAN> SELECT sysdate FROM dual;
此功能使得在RMAN提示符下执行任意SQL语句更灵活。

改进VLDB的备份/恢复

多段备份功能在11g中引入,将一个大型数据文件分成多个部分,每部分有指定的大小,从而改善大型数据文件的备份和还原操作。在12C中进一步的扩展功能支持图像副本和增量备份以及完整数据库备份集。所添加的功能要求兼容的数据库初始化参数被设置为12.0或更高。

下面的例子说明了在各级使用SECTION SIZE 语句的句法:

RMAN> backup tablespace data SECTION SIZE 1g;
RMAN> backup as copy SECTION SIZE 1g database;
RMAN> backup increment level 1 SECTION SIZE 500M datafile 10;
你可以在V $ BACKUP_SET动态视图中查询MULTI_SECTION列 ,以确定该功能是否正在使用。

通过网络还原/恢复数据文件

12C中新的RMAN FROM SERVICE 语句可以让你通过网络连接在主备数据库之间复制数据文件。此功能提供了灵活性,能够在主数据库和备用数据库之间恢复完整的数据库,特定的数据文件,控制文件,SPFILE等。这个功能非常有用,能够填补主备数据库之间的差距。事实上,该功能可以自动采取适当的操作,从而简化了主备用数据库同步所需的前滚过程。

此外,如果主数据库丢失数据文件,你可以轻松地将数据文件从备份数据库还原恢复到主数据库中。下面的实例模拟了以下情形:

  • 如何将文件从备份数据库还原/恢复到主数据库中

    RMAN> CONNECT TARGET “rman_user@primary_tns AS SYSBACKUP”;
    RMAN> RESTORE DATAFILE 9 FROM SERVICE standby_tns;

  • 如何使用前滚使主备用数据库同步

    RMAN> CONNECT TARGET “rman_user@standby_tns AS SYSBACKUP”;
    RMAN> RECOVER DATABASE FROM SERVICE primary_tns USING COMPRESSED BACKUP;

在第一个例子中,数据文件9将从备份数据库恢复到主数据库

在第二个例子中,从主数据库上部分现有的SCN开始,采取增量备份,就启动了备用数据库前滚过程,这些备份集之后会通过网络被移动/复制到备用站点,然后备份会自动应用到同步备用数据库。

当数据文件通过网络在网页之间进行复制,你也可以申请加密备份,使用SECTION SIZE将大的数据文件分割成片,并压缩。

增加和改进ACTIVE DUPLICATE DATABASE

在11g中,ACTIVE DUPLICATE DATABASE选项克隆了源数据库,通过网络将数据文件的完整图示对应到辅助实例位置。克隆数据库的过程不要求任何预先备份存在。

然而,在Oracle12c中,当ACTIVE DUPLICATE DATABASE启动时,不发送数据文件的完整图示副本,而是由RMAN先提取数据文件备份到备份集,而这些备份传输到辅助位置,之后会被还原/恢复。这个功能肯定会减少对源实例的整体影响,也有助于加快克隆过程。使用此功能你能够灵活使用备份压缩,和加密选项。

RMAN> DUPLICATE TARGET DATABASE to mydb
FROM ACTIVE DATABASE
SECTION SIZE 500M
USING COMPRESSED BACKUPSETS;
在之前的版本中,克隆的数据库在运行完成后会自动打开。12C的附加NOOPEN条款,会防止克隆过程完成后数据库立即打开。因此,该程序结束后数据库将保持在MOUNT状态,你必须手动打开数据库。

在下列情况下使用该程序,是个很好的选择:

  • 当克隆的数据库需要附加设置,比如闪回或增量备份设置。
  • 为避免任何的启动问题
  • 要调整初始化参数
  • 如果该数据库用于升级,你可以在升级模式启动db以继续升级。

 

下面是使用NOOPEN语句的示例:

RMAN> DUPLICATE TARGET DATABASE to mydb
FROM ACTIVE DATABASE
SECTION SIZE 500M
USING COMPRESSED BACKUPSETS
NOOPEN;


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *