WEB开发网
开发学院数据库Oracle Oracle10g新特性——闪回表 阅读

Oracle10g新特性——闪回表

 2008-08-30 12:44:17 来源:WEB开发网   
核心提示:删除表的恢复如果某个用户不小心删除了一个十分重要的表,后果将非常严重,Oracle10g新特性——闪回表,在9i中提供的闪回特性只能恢复DML语句造成的影响,而无法恢复DDL语句的影响,并且保持了原有的结构,依赖于原表的存储过程都失效了,DBA只能通过重建一张表,然后从备份数据中导入

删除表的恢复

如果某个用户不小心删除了一个十分重要的表,后果将非常严重。在9i中提供的闪回特性只能恢复DML语句造成的影响,而无法恢复DDL语句的影响。DBA只能通过重建一张表,然后从备份数据中导入。

利用Oracle 10G中的闪回表的特性,DBA可以轻松完成这项工作,并将影响降到最小。下面就举一个例子说明:

创建表:

SQL> create table abc (f number(9));表已创建。

SQL> create index idx_test on abc(f);索引已创建。

SQL> insert into abc values(1);已创建 1 行。

SQL> insert into abc values(2);已创建 1 行。

SQL> insert into abc values(3);已创建 1 行。

删除表:

SQL> drop table abc;表已删除。

SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------ -------------- ----------
BIN$XXUGsbYvSqa8Mrd6GstP+g==$0 TABLE
  请注意,在原表abc被删除后,abc没有了,却出现了一张新表BIN$XXUGsbYvSqa8Mrd6GstP+g==$0。这就是Oracle 10G中对删除表的处理,原表实际上并没有完全删除掉,而是被系统重新命名成了一个系统定的新表。它还存在于原先的表空间,并且保持了原有的结构。

依赖于原表的存储过程都失效了。而建在表上的索引和触发器也会被重新命名。

SQL> select index_name, index_type, table_name from ind;
INDEX_NAME INDEX_TYPE TABLE_NAME
------------------- ------------------- ----------------------
BIN$1++ilvsQQ7mfPh2pvont5A==$0 NORMAL BIN$XXUGsbYvSqa8Mrd6GstP+g==$0
被删除的表及其相关对象都会被放置在一个称为recyclebin的逻辑容器中:

1 2 3  下一页

Tags:Oracleg 特性

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