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

Oracle Recyclebin

 2008-09-02 12:45:26 来源:WEB开发网   
核心提示: 诸如 SCOTT 等用户可以使用以下命令来清空自己的回收站,PURGERECYCLEBIN;DBA 可以使用以下命令清除任何表空间中的所有对象PURGEDBA_RECYCLEBIN;可以看到,Oracle Recyclebin(4),可以通过多种不同方法来管理回收站,以满足特定的需要,使用

诸如 SCOTT 等用户可以使用以下命令来清空自己的回收站。

PURGERECYCLEBIN;

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

PURGEDBA_RECYCLEBIN;

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

表版本和闪回功能

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

createTABLETEST(COL1NUMBER); 
  insertINTOTESTVALUES(1); 
  commit; 
  dropTABLETEST; 
  createTABLETEST(COL1NUMBER); 
  insertINTOTESTVALUES(2); 
  commit; 
  dropTABLETEST; 
  createTABLETEST(COL1NUMBER); 
  insertINTOTESTVALUES(3); 
  commit; 
  dropTABLETEST;

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

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

使用重命名选项:

FLASHBACKTABLETESTTOBEFOREdroprenameTOTEST2; 
  FLASHBACKTABLETESTTOBEFOREdroprenameTOTEST1;

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

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

FLASHBACKTABLE"BIN$04LhcpnoanfgMAAAAAANPw==$0"TOBEFOREdroprenameTOTEST2; 
  FLASHBACKTABLE"BIN$04LhcpnqanfgMAAAAAANPw==$0"TOBEFOREdroprenameTOTEST1;

上一页  1 2 3 4 5  下一页

Tags:Oracle Recyclebin

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