方法一:
db_block_checking和db_block_checksum
alter system set db_block_checking=false/true;
改变参数会影响系统性能,一般不常用
analyze table t1 validate structure [cascade];
方法二dbv工具
[oracle@test1 trace]$ cd $ORACLE_HOME/bin
[oracle@test1 bin]$ dbv file=/oradata/test/users01.dbf blocksize=8192
blocksize是你库的blocksize
DBVERIFY: Release 11.2.0.4.0 - Production on Mon Feb 29 05:14:42 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /oradata/test/users01.dbf
DBVERIFY - Verification complete
Total Pages Examined : 7360
Total Pages Processed (Data) : 160
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 4
Total Pages Failing (Index): 0
Total Pages Processed (Other): 1273
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 5923
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 1114187 (0.1114187)
方法三:
analyze table t1 validate structure [cascade];
SQL> show parameter user_dump
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string /u01/app/oracle/diag/rdbms/tes
t/test/trace
SQL> analyze table t1 validate structure ;
Table analyzed.
cd /u01/app/oracle/diag/rdbms/test/test/trace
当然我这里没有坏块,就不贴了
方法四:
dbms_repair包
-CHECK_OBJECT -检测
-FIX_CORRUPT_BLOCKS -标记
-DUMP_ORPHAN_KEYS 转储
-REBUILD_FREELISTS 重建
-SEGMENT_FIX_STATUS
-SKIP_CORRUPT_BLOCKS 跳过坏块
-ADMIN_TABLES
另外,如果存在坏块一般不需要去关注,在执行
exp/expdp 导出数据时会发现错误
rman备份时也会报错,所以如何修复数据,减少损失才是重点,但如果需要检测推荐使用dbv和dbms_reparie包