[Oracle]DBMS_REPAIR包修复损坏数据块(2)
文章作者 100test 发表时间 2007:03:14 13:53:52
来源 100Test.Com百考试题网
数据库已经打开。
SQL> CONN YANGTK/YANGTK@TEST
已连接。
SQL> SELECT * FROM TEST WHERE ID = 123.
SELECT * FROM TEST WHERE ID = 123
*
ERROR 位于第 1 行:
ORA-01578: ORACLE 数据块损坏(文件号7,块号6)
ORA-01110: 数据文件 7: E:\ORACLE\ORADATA\TEST\TEST.DBF
已经模拟成功了坏块,开始进入正题部分,使用DBMS_REPAIR表来处理坏块。
第三步:使用DBMS_REPAIR包处理坏块。
1.建立REPAIR_TABLE和ORPHAN_KEY_TABLE表
SQL> BEGIN
2 DBMS_REPAIR.ADMIN_TABLES (
3 TABLE_NAME => REPAIR_TABLE ,
4 TABLE_TYPE => dbms_repair.repair_table,
5 ACTION => dbms_repair.create_action,
6 TABLESPACE => YANGTK ).
7 END.
8 /
PL/SQL 过程已成功完成。
SQL> BEGIN
2 DBMS_REPAIR.ADMIN_TABLES (
3 TABLE_NAME => ORPHAN_KEY_TABLE ,
4 TABLE_TYPE => dbms_repair.orphan_table,
5 ACTION => dbms_repair.create_action,
6 TABLESPACE => YANGTK ).
7 END.
8 /
PL/SQL 过程已成功完成。
REPAIR_TABLE用来记录错误检查结果,ORPHAN_KEY_TABLE用来记录表坏块中记录在索引中的对应键值。
这两个表的删除可以通过下列存储过程完成
BEGIN
DBMS_REPAIR.ADMIN_TABLES (
TABLE_NAME => REPAIR_TABLE ,
TABLE_TYPE => dbms_repair.repair_table,
ACTION => dbms_repair.0drop_action).
END.
/
BEGIN