- select * from v$diag_info;
- select * from v$hm_check order by name;
- begin
- dbms_hm.run_check(check_name => 'Dictionary Integrity Check',run_name => 'MyCheck');
- end;
-
- select * from v$hm_run;
-
- select
- dbms_hm.get_run_report(run_name => 'MyCheck') from dual;
复制代码
- select * from v$hm_check order by name;
- begin
- dbms_hm.run_check(check_name => 'Data Block Integrity Check',
- run_name => 'LogicalBlock',input_params => 'BLC_DF_NUM=9;BLC_BL_NUM=136'
- );
- end;
-
- select * from v$hm_run;
-
- select dbms_hm.get_run_report('LogicalBlock') from dual;
复制代码
具体案例:处理逻辑坏块(SR):
- BEGIN
- DBMS_REPAIR.ADMIN_TABLES (
- table_name => 'REPAIR_TABLE',
- table_type => DBMS_REPAIR.REPAIR_TABLE,
- action => DBMS_REPAIR.CREATE_ACTION,
- tablespace => 'USERS');
- END;
复制代码- BEGIN
- DBMS_REPAIR.ADMIN_TABLES (
- table_name => 'REPAIR_TABLE',
- table_type => DBMS_REPAIR.REPAIR_TABLE,
- action => DBMS_REPAIR.CREATE_ACTION,
- tablespace => 'USERS');
- END;
- select * from REPAIR_TABLE;
- BEGIN
- DBMS_REPAIR.ADMIN_TABLES (
- table_name => 'ORPHAN_KEY_TABLE',
- table_type => DBMS_REPAIR.ORPHAN_TABLE,
- action => DBMS_REPAIR.CREATE_ACTION,
- tablespace => 'USERS');
- END;
- select * from ORPHAN_KEY_TABLE;
- 64 A-Z a-z 0-9 + /
- ---------------------
- DECLARE
- num_corrupt INT;
- BEGIN
- num_corrupt := 0;
- DBMS_REPAIR.CHECK_OBJECT (
- schema_name => 'HR',
- object_name => 'TLOGICAL',
- repair_table_name => 'REPAIR_TABLE',
- corrupt_count => num_corrupt);
- dbms_output.put_line( 'Find '|| num_corrupt||' Bolcks.' );
- END;
- --------------------------
- select * from REPAIR_TABLE;
- --------------------------------
- DECLARE
- num_orphans INT;
- BEGIN
- num_orphans := 0;
- DBMS_REPAIR.DUMP_ORPHAN_KEYS (
- schema_name => 'HR',
- object_name => 'ILOGICAL_A',
- object_type => DBMS_REPAIR.INDEX_OBJECT,
- repair_table_name => 'REPAIR_TABLE',
- orphan_table_name => 'ORPHAN_KEY_TABLE',
- key_count => num_orphans);
- DBMS_OUTPUT.PUT_LINE('orphan key count: ' || TO_CHAR(num_orphans));
- END;
- DECLARE
- num_orphans INT;
- BEGIN
- num_orphans := 0;
- DBMS_REPAIR.DUMP_ORPHAN_KEYS (
- schema_name => 'HR',
- object_name => 'ILOGICAL_B',
- object_type => DBMS_REPAIR.INDEX_OBJECT,
- repair_table_name => 'REPAIR_TABLE',
- orphan_table_name => 'ORPHAN_KEY_TABLE',
- key_count => num_orphans);
- DBMS_OUTPUT.PUT_LINE('orphan key count: ' || TO_CHAR(num_orphans));
- END;
- -----------------------------------
- select * from ORPHAN_KEY_TABLE
- where index_name='ILOGICAL_B' and keyrowid||'a'='AAATrJAIgAAAEACAAA'||'a';
- ------------------------------------
- begin
- dbms_repair.skip_corrupt_blocks(schema_name => 'HR',object_name => 'TLOGICAL');
- end;
-
- drop index hr.ilogical_a;
-
- drop index hr.ilogical_b;
-
- create index hr.ilogical_a on hr.tlogical (a) ;
- create index hr.ilogical_b on hr.tlogical (b) ;
-
- -------------------------------------------------
-
- select * from orphan_key_table;
- --------------------------------
- select dump(key) from orphan_key_table;
- 97,115,97,114,111,110
- a, s, a, r, o, n
- --------------------------------------------------------
- 195, 3, 61 ,74
- 195, 3,61, 73
- ---------------------------------------------------------
复制代码
100^(193-193-0)(2-1)=1 100^(193-193-0)(11-1)=10 100^(194-193-0)(2-1)=100 100^(194-193-0)(11-1)=1000 100^(194-193-0)(2-1)+ 100^(194-193-1)(11-1)=110 100^(194-193-0)(12-1)=1100 100^(62-62-0)(101-100)=1 100^(62-62-0)(101-91)=10 100^(62-61-0)(101-100)=100 123456.789 100^(195-193-0)(13-1)+ 100^(195-193-1)(35-1)+ 100^(195-193-2)(57-1)+ 100^(195-193-3)(79-1)+ 100^(195-193-4)(91-1)=120000+3400+56+0.78+0.009= 123456.789 -123456.789 100^(62-60-0)(101-89)+ 100^(62-60-1)(101-67)+ 100^(62-60-2)(101-45)+ 100^(62-60-3)(101-23)+ 100^(62-60-4)(101-11)=120000+3400+56+0.78+0.009= -123456.789 -123456.78901 100^(62-60-0)(101-89)+ 100^(62-60-1)(101-67)+ 100^(62-60-2)(101-45)+ 100^(62-60-3)(101-23)+ 100^(62-60-4)(101-11)+ 100^(62-60-5)(101-91) =120000+3400+56+0.78+0.009+ 0.00001= -123456.78901
|