12c新特性:Recover Table 在版本12c之前单独恢复Oracle中某一张表,常规的方法是TSPITR或Flashback闪回。在版本12c中提供了Table Recovery单独恢复表的RMAN特性,该特性用以直接从RMAN backup中恢复table的方法,该特性的特点:
  • 不影响数据库中的其他数据库对象
  • 减少时间和磁盘空间的消耗,和早期的TSPIRT工作流程类似:
    • 从另一个磁盘路径恢复表空间
    • 导出想要的表数据
    • 导入到原数据库
  在何种场景下值得考虑使用该rman table recovery特性恢复单个表或分区的数据:
  • 在下列场景中不建议使用TSPITR特性,但是建议用12c的table recovery特性:
    • 少数几个表需要恢复
    • 非子包含的表空间
  • 在下列条件中不可能使用闪回,但是可以用12c的table recovery特性:
    • purge掉的表,不再可能flashback drop
    • 必要的undo已经被覆盖的情况,不再可能flashback table
    • 经过一些结构化的DDL变更后,不再可能flashback table
  Table Recovery的流程图: 12c新特性:Recover Table_Oracle     Table Recovery可客制化的选项不多,主要有一下2点:
  1. 你可以指定NOTABLEIMPORT参数让RMAN不导入恢复的数据到目标库中
  2. 若指定REMAP TABLE或REMAP TABLESPACE参数,RMAN可选地重命名recovered表或表分区
    oracle@localhost:~$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.0.2 Beta on Mon Dec 24 01:46:37 2012 Copyright (c) 1982, 2012, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.0.2 - 64bit Beta With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> SQL> SQL> SQL> SQL> SQL> SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 31 Current log sequence 33 SQL> SQL> SQL> SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount; ORACLE instance started. Total System Global Area 626327552 bytes Fixed Size 2263520 bytes Variable Size 469763616 bytes Database Buffers 150994944 bytes Redo Buffers 3305472 bytes Database mounted. SQL> SQL> SQL> SQL> alter database archivelog; Database altered. SQL> alter database open; Database altered.