Oracle Recyclebin(三)

日期: 2008-07-22 作者:tolywang 来源:TechTarget中国 英文

 





PURGE RECYCLEBIN; 


  DBA 可以使用以下命令清除任何表空间中的所有对象







PURGE DBA_RECYCLEBIN; 


  可以看到,可以通过多种不同方法来管理回收站,以满足特定的需要。


  表版本和闪回功能


  用户可能会经常多次创建和删除同一个表,如:







create TABLE TEST (COL1 NUMBER); 
  insert INTO TEST VALUES (1); 
  commit; 
  drop TABLE TEST; 
  create TABLE TEST (COL1 NUMBER); 
  insert INTO TEST VALUES (2); 
  commit; 
  drop TABLE TEST; 
  create TABLE TEST (COL1 NUMBER); 
  insert INTO TEST VALUES (3); 
  commit; 
  drop TABLE TEST; 


  此时,如果您要对表 TEST 执行闪回操作,那么列 COL1 的值应该是什么?常规想法可能认为从回收站取回表的第一个版本,列 COL1 的值是 1。实际上,取回的是表的第三个版本,而不是第一个。因此列 COL1 的值为 3,而不是 1。


  此时您还可以取回被删除表的其他版本。但是,表 TEST 的存在不允许出现这种情况。您有两种选择:


  使用重命名选项:







FLASHBACK TABLE TEST TO BEFORE drop rename TO TEST2; 
  FLASHBACK TABLE TEST TO BEFORE drop rename TO TEST1; 


  这些语句将表的第一个版本恢复到 TEST1,将第二个版本恢复到 TEST2。 TEST1 和 TEST2 中的列 COL1 的值将分别是 1 和 2。或者,


  使用表的特定回收站名称进行恢复。为此,首先要识别表的回收站名称,然后执行: 






FLASHBACK TABLE “BIN$04LhcpnoanfgMAAAAAANPw==$0” TO BEFORE drop rename TO TEST2; 
  FLASHBACK TABLE “BIN$04LhcpnqanfgMAAAAAANPw==$0” TO BEFORE drop rename TO TEST1; 


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


  警告……


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


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

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

tolywang
tolywang

相关推荐