如果坏块出现后, 这个有坏块的数据文件最终要怎么处理呢?
时间:2011-09-02
来源:互联网
Version: 8.1.7.4
每日都有备份。
alert log显示有坏块:
Fri Sep 2 17:18:49 2011
ARC1: Beginning to archive log# 4 seq# 1119
Fri Sep 2 17:18:49 2011
ORA-01171: datafile 5 going offline due to error advancing checkpoint
ORA-01122: database file 5 failed verification check
ORA-01110: data file 5: '/u01/prim/datafile/s2.dbf'
ORA-01251: Unknown File Header Version read for file number 5
Fri Sep 2 17:18:49 2011
Completed checkpoint up to RBA [0x45f.2.10], SCN: 0x0002.22b55a96
根据SQL>
SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents
WHERE file_id = 5 and 2 between block_id AND block_id + blocks - 1;
可以找出segment 并导出。
问题:
导出后 这个有坏块的数据文件怎么处理呢?
我觉得有这几个方案:
1, offline数据文件,
alter database create datafile '/u01/prim/datafile/s2.dbf' as '/u01/prim/datafile/s2.dbf';
recover datafile 5;
online datafile 5;
这个方案可行,但是需要从datafile创建来的所有archived log。但是创建已经几年了,不可能把所有的archived log 都找出来。
2. 全库导出
删除 有坏块的数据文件
全库导入
这个工作量也不小,如果是生产,也很危险。不可能全库重新导入。
3. 通过dba_extent 找出分布在有坏块的数据文件的所有 segment。
导出。
然后删除这些segment, 删除有坏块的数据文件。
重新导入。
但是生产环境的话 也会波及很多无辜的表,有风险。
请问
如果坏块出现后, 这个有坏块的数据文件最终要怎么处理呢?
一定要重建吗? 有没有简单的修复的。
是生产环境,保险安全的办法
有什么好的方案呢?
每日都有备份。
alert log显示有坏块:
Fri Sep 2 17:18:49 2011
ARC1: Beginning to archive log# 4 seq# 1119
Fri Sep 2 17:18:49 2011
ORA-01171: datafile 5 going offline due to error advancing checkpoint
ORA-01122: database file 5 failed verification check
ORA-01110: data file 5: '/u01/prim/datafile/s2.dbf'
ORA-01251: Unknown File Header Version read for file number 5
Fri Sep 2 17:18:49 2011
Completed checkpoint up to RBA [0x45f.2.10], SCN: 0x0002.22b55a96
根据SQL>
SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents
WHERE file_id = 5 and 2 between block_id AND block_id + blocks - 1;
可以找出segment 并导出。
问题:
导出后 这个有坏块的数据文件怎么处理呢?
我觉得有这几个方案:
1, offline数据文件,
alter database create datafile '/u01/prim/datafile/s2.dbf' as '/u01/prim/datafile/s2.dbf';
recover datafile 5;
online datafile 5;
这个方案可行,但是需要从datafile创建来的所有archived log。但是创建已经几年了,不可能把所有的archived log 都找出来。
2. 全库导出
删除 有坏块的数据文件
全库导入
这个工作量也不小,如果是生产,也很危险。不可能全库重新导入。
3. 通过dba_extent 找出分布在有坏块的数据文件的所有 segment。
导出。
然后删除这些segment, 删除有坏块的数据文件。
重新导入。
但是生产环境的话 也会波及很多无辜的表,有风险。
请问
如果坏块出现后, 这个有坏块的数据文件最终要怎么处理呢?
一定要重建吗? 有没有简单的修复的。
是生产环境,保险安全的办法
有什么好的方案呢?
作者: lifesunson 发布时间: 2011-09-02
Unknown File Header Version read for file number 5
这是文件头损坏了,要找到原因,看看是硬件原因,仅仅损坏文件头,还是整个文件都有问题。
这是文件头损坏了,要找到原因,看看是硬件原因,仅仅损坏文件头,还是整个文件都有问题。
作者: eygle 发布时间: 2011-09-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28