首页 > 数据库 > Oracle > 如何快速解决Oracle数据库的数据块坏块
如何快速解决Oracle数据库的数据块坏块修复步骤如下所示:
# 语法:dbv file=数据文件路径 blocksize=数据库块大小dbv file=/u01/oradata/orcl/users01.dbf blocksize=8192
ALTER INDEX ... REBUILD(坏块会导致重建失败)必须使用:
删除索引 + 重新创建索引-- 1. 先查询坏块索引名称(根据DBV查到的文件号+块号)SELECT SEGMENT_NAME, SEGMENT_TYPE FROM DBA_EXTENTS WHERE FILE_ID = 文件号 AND 块号 BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1;-- 2. 删除坏块索引DROP INDEX 索引名;-- 3. 重新创建索引(和原索引定义一致)CREATE INDEX 索引名 ON 表名(字段名);
-- 1. 创建修复记录表BEGIN DBMS_REPAIR.ADMIN_TABLES ( TABLE_NAME => 'REPAIR_TABLE', TABLE_TYPE => DBMS_REPAIR.REPAIR_TABLE, ACTION => DBMS_REPAIR.CREATE_ACTION);END;/-- 2. 检测并标记坏块BEGIN DBMS_REPAIR.CHECK_OBJECT ( SCHEMA_NAME => '用户名', OBJECT_NAME => '坏块表名', REPAIR_TABLE_NAME => 'REPAIR_TABLE');END;/-- 3. 跳过坏块查询数据SELECT * FROM 坏块表;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7965779/viewspace-3172318/ ,如需转载,请注明出处,否则将追究法律责任。