[Oracle]DBMS_REPAIR包修复损坏数据块(3)

文章作者 100test 发表时间 2007:03:14 13:53:42
来源 100Test.Com百考试题网


orphan key count: 549

PL/SQL 过程已成功完成。

SQL> DECLARE

2 num_orphans INT.

3 BEGIN

4 num_orphans := 0.

5 DBMS_REPAIR.DUMP_ORPHAN_KEYS (

6 SCHEMA_NAME => YANGTK,

7 OBJECT_NAME => IND_TEST_NAME,

8 OBJECT_TYPE => dbms_repair.index_object,

9 REPAIR_TABLE_NAME => REPAIR_TABLE,

10 ORPHAN_TABLE_NAME=> ORPHAN_KEY_TABLE,

11 KEY_COUNT => num_orphans).

12 DBMS_OUTPUT.PUT_LINE(orphan key count: || TO_CHAR(num_orphans)).

13 END.

14 /

orphan key count: 549

PL/SQL 过程已成功完成。

注意对每个索引都要执行DUMP_ORPHAN_KEYS过程。

4.使用REBUILD_FREELISTS过程来修改FREELISTS。

如果坏块发生在FREELIST列表中的中部,则FREELIST列表后面的块都无法访问。在这个例子中,模拟产生的错误的位置不在FREELIST中,因此可以跳过这一步骤,一般情况下,由于无法定位确定坏块的位置,则需要执行此过程。

SQL> BEGIN

2 DBMS_REPAIR.REBUILD_FREELISTS (

3 SCHEMA_NAME => YANGTK,

4 OBJECT_NAME => TEST,

5 OBJECT_TYPE => dbms_repair.table_object).

6 END.

7 /

PL/SQL 过程已成功完成。

5.执行SKIP_CORRUPT_BLOCKS过程,使后续的DML操作跳过坏块

SQL> BEGIN

2 DBMS_REPAIR.SKIP_CORRUPT_BLOCKS (

3 SCHEMA_NAME => YANGTK,

4 OBJECT_NAME => TEST,

5 OBJECT_TYPE => dbms_repair.table_object,

6 FLAGS => dbms_repair.skip_flag).

7 END.

8 /

PL/SQL 过程已成功完成。

SQL> SELECT OWNER, TABLE_NAME, SKIP_CORRUPT FROM DBA_TABLES

2 WHERE OWNER = YANGTK.

OWNER TABLE_NAME SKIP_COR



相关文章


[Oracle]DataGuard数据库灾难防护(2)
[Oracle]DBMS_REPAIR包修复损坏数据块(5)
使用dbms_job包来实现数据库后台进程
综合辅导:ORACLESGA分配
[Oracle]DBMS_REPAIR包修复损坏数据块(3)
[Oracle]DBMS_REPAIR包修复损坏数据块(4)
使用新的list分割方法提高灵活性
Oracle9i新特性研究系列之七
[Oracle]DBMS_REPAIR包修复损坏数据块(1)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛