WEB开发网
开发学院数据库Oracle Oracle Recyclebin 阅读

Oracle Recyclebin

 2008-09-02 12:45:26 来源:WEB开发网   
核心提示: 这些语句将恢复被删除表的两个版本,警告……取消删除特性使表恢复其原始名称,Oracle Recyclebin(5),但是索引和触发器等相关对象并没有恢复原始名称,它们仍然使用回收站的名称,可以使用 Oracle Database 10g的版本控制特性,(更多详细

这些语句将恢复被删除表的两个版本。

警告……

取消删除特性使表恢复其原始名称,但是索引和触发器等相关对象并没有恢复原始名称,它们仍然使用回收站的名称。在表上定义的源(如视图和过程)没有重新编译,仍然保持无效状态。必须手动得到这些原有名称并应用到闪回表。

信息保留在名为 USER_RECYCLEBIN 的视图中。在对表进行闪回操作前,请使用以下查询来检索原有名称。

  selectOBJECT_NAME,ORIGINAL_NAME,TYPE 
  FROMUSER_RECYCLEBIN 
  whereBASE_OBJECT=(selectBASE_OBJECTFROMUSER_RECYCLEBIN 
  whereORIGINAL_NAME=’RECYCLETEST’) 
  ANDORIGINAL_NAME!=’RECYCLETEST’; 
  OBJECT_NAMEORIGINAL_NTYPE 
  ------------------------------------------------ 
  BIN$04LhcpnianfgMAAAAAANPw==$0IN_RT_01INDEX 
  BIN$04LhcpnganfgMAAAAAANPw==$0TR_RTTRIGGER

在表进行闪回操作后,表 RECYCLETEST 上的索引和触发器将按照 OBJECT_NAME 列中所示进行命名。根据以上查询,可以使用原始名称重新命名对象,如下所示:

以下是引用片段:
alterINDEX"BIN$04LhcpnianfgMAAAAAANPw==$0"renameTOIN_RT_01; 
  alterTRIGGER"BIN$04LhcpnganfgMAAAAAANPw==$0"renameTOTR_RT; 

一个值得注意的例外情况是位图索引。当删除位图索引时,它们并不放置在回收站中—因此无法检索它们。约束名称也无法从视图中检索。必须从其他来源对它们进行重命名。

闪回表的其他用途

闪回删除表功能不仅限于恢复表的删除操作。与闪回查询类似,您还可以使用它将表恢复到不同的时间点,利用表的“过去”版本来替代整个表。例如,以下语句将表恢复到系统更改号 (SCN) 2202666520。 

FLASHBACKTABLERECYCLETESTTOSCN2202666520;

此特性使用 Oracle 数据泵技术来创建不同的表,使用闪回功能将该 SCN 处的数据版本填充到表中,然后用新表替代原始表。为找出能够在何种程度上对表进行闪回操作,可以使用 Oracle Database 10g的版本控制特性。(更多详细信息请参见本系列第 1 周的内容。)在闪回子句中也可以指定时间戳记而不是指定 SCN。

上一页  1 2 3 4 5 

Tags:Oracle Recyclebin

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接