object_name => 'DMM',
corrupt_count => cc);

DBMS_OUTPUT.put_line ( TO_CHAR (cc));
END;
正常情况下输入为0。 如果有坏块,可以在创建的REPAIR_TABLE中查看块损坏信息:
/* Formatted on 2009-12-17 13:18:19 (QP5v5.115.810.9015) */
SELECT object_name,
relative_file_id,
block_id,
marked_corrupt,
corrupt_description,
repair_description,
CHECK_TIMESTAMP
FROM repair_table;
注意:在8i下,check_object只会检查坏块,MARKED_CORRUPT为false,故需要进行 定位坏块(fix_corrupt_blocks) ,修改MARKED_CORRUPT为true,同时更新CHECK_TIMESTAMP。
9i以后经过check_object,MARKED_CORRUPT的值已经标识为TRUE了。所以可以直接进行第四步了。
5.4 .定位坏块:dbms_repair.fix_corrupt_blocks
只有将坏块信息写入定义的REPAIR_TABLE后,才能定位坏块。
/* Formatted on 2009-12-17 13:29:01 (QP5v5.115.810.9015) */
DECLARE
cc NUMBER;
BEGIN
DBMS_REPAIR.fix_corrupt_blocks (schema_name => 'SYS',
object_name => 'DMM',
fix_count => cc);
DBMS_OUTPUT.put_line (a => TO_CHAR (cc));
END;
5.5 .跳过坏块
我们前面虽然定位了坏块,但是,如果我们访问table:
SQL> select count(*) from SYS.DMM;
ORA-01578: ORACLE 数据块损坏(文件号14,块号154)
ORA-01110: 数据文件 14: 'D: /BLOCK.DBF'
还是会得到错误信息。 这里需要用skip_corrupt_blocks来跳过坏块:
/* Formatted on 2009-12-17 13:30:17 (QP5v5.115.810.9015) */
exec dbms_repair.admin_tables('orphan_table',dbms_repair.orphan_table,dbms_repair.create_action,'system')。exec dbms_aqadm.grant_queue_privilege('dequeue','sys.sys$service_metrics',
SQL> select count(*) from SYS.DMM;
COUNT(*)
----------
12850
丢失了12896-12850=46行数据。
5.6.处理index上的无效键值;dump_orphan_keys
/* Formatted on 2009-12-17 13:34:55(QP5 v5.115.810.9015) */
DECLARE
cc NUMBER;
BEGIN
DBMS_REPAIR.dump_orphan_keys (schema_name => 'SYS',
object_name => 'INDX_DMM',
object_type => 2,
repair_table_name => 'REPAIR_TABLE',
orphan_table_name => 'ORPHAN_TABLE',
key_count => CC);
END;
通过以下命令可以知道丢失行的信息:
SQL> SELECT * FROM ORPHAN_TABLE;
我们根据这个结果来考虑是否需要rebuild index.
5.7重建freelist:rebuild_freelists
/* Formatted on 2009-12-17 13:37:57(QP5 v5.115.810.9015) */
exec dbms_repair.admin_tables('orphan_table',dbms_repair.orphan_table,dbms_repair.create_action,'system')。exec dbms_aqadm.grant_queue_privilege('dequeue','sys.sys$service_metrics',
------------------------------------------------------------------------------
QQ: 492913789
Email: ahdba@qq.com
Blog:
网上资源:
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-117663-7.html
我反正不行要不给大家个毒誓
早都预料该公司要出事