Oracle坏块处理常用SQL

原文链接:https://www.modb.pro/db/23276?cyn (阅读原文,支持作者)

1.1、查询坏块信息
select * from v$database_block_corruption;
1.2、使用RMAN构造(标记)坏块
BLOCKRECOVER DATAFILE 4 block 171 clear;

使用dd构造坏块
dd of=/u02/database/usbo/oradata/tbs_tmp.dbf bs=8192 conv=notrunc seek=130 <<EOF
2、使用DBV检测文件坏块
dbv file=/u01/oracle/oradata/ora11g/users01.dbf
ASM:
dbv userid=user/passwd file=’+data/file/user01.dbf’ blocksize=8192
3、修复坏块,使用备份
blockrecover datafile 4 block 171;
多个坏块修复:
blockrecover corruption list;
4、RMAN验证是否存在坏块
backup validate database;
backup validate datafile 6;
5、触发坏块,读取坏块数据
alter system flush buffer_cache;
select count(*) from table;
6、查询表数据所属文件和块号
select dbms_rowid.ROWID_RELATIVE_FNO(rowid), dbms_rowid.rowid_block_number(rowid) from anbob.testbmr;

更多Oracle故障处理、优化提升资讯:https://www.modb.pro/tag/oracle?cyn

-墨天轮,专业的数据库人技术交流社区

原文地址:https://www.cnblogs.com/hzcya1995/p/13311746.html