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的流程图:     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.