坏块的解决办法
来源:互联网 发布:神通数据库 如何建表 编辑:程序博客网 时间:2024/04/28 18:18
写的比较片面目前 今天遇到坏块了 主要原因是重启数据库的时候用了shutdown abort造成,该块是是位于para_cell_w表上
解决方法是跳过这个坏块重建表,想到了用exp导出数据但发现会报错,所以用了两种方法 1.找到该坏块的最低的rowid,找到这个块的后一个块最低rowid 这样根据rowid把不在坏块上的数据搞出来建立表就可以了:
1 alter session set events='10231 trace name context forever,level 10';
这个命令可以跳过坏块建表
create table para_cell_w_bak as select * from para_cell_w;
2
The "LOW_RID" is the lowest rowid INSIDE the corrupt block:
SELECT dbms_rowid.rowid_create(1,<DATA_OBJECT_ID>,<RFN>,<BL>,0) LOW_RID from DUAL;
The "HI_RID" is the first rowid AFTER the corrupt block:
SELECT dbms_rowid.rowid_create(1,<DATA_OBJECT_ID>,<RFN>,<BL>+1,0) HI_RID from DUAL;
It is now possible to use CREATE TABLE AS SELECT or INSERT ... SELECT
to get data without accessing the corrupt block using a query of the
form:
CREATE TABLE salvage_table AS
SELECT /*+ ROWID(A) */ * FROM <owner.tablename> A
WHERE rowid < '<low_rid>'
;
INSERT INTO salvage_table
SELECT /*+ ROWID(A) */ * FROM <owner.tablename> A
WHERE rowid >= '<hi_rid>'
SELECT dbms_rowid.rowid_create(1,'600613',20,648278,0) LOW_RID
from DUAL;
AACSolAAUAACeRWAAA
SELECT dbms_rowid.rowid_create(1,'600613',20,648279,0) HI_RID
from DUAL;
AACSolAAUAACeRXAAA
即将导出指定的表通过常规路径...
. . 正在导出表 PARA_CELL_W
EXP-00056: 遇到 ORACLE 错误 1578
ORA-01578: ORACLE 数据块损坏 (文件号 20, 块号 648278)
ORA-01110: 数据文件 20: '/oradata4/wcdma/WCDMA_DATA06.dbf'
导出成功终止, 但出现警告。
根据dba_objects查看obj_id
- 坏块的解决办法
- oracle坏块及解决办法
- 深层解决cramfs文件系统不支持nandflash坏块的解决办法
- 数据库坏块的处理
- NAND Flash的坏块
- NAND Flash的坏块
- MTD的坏块管理
- NAND Flash的坏块
- Oracle数据文件的坏块,可分为物理坏块和逻辑坏块(转)
- JZ2440 坏块导致 nfs 方式无法下载 烧写 yaffs2 文件系统的解决办法
- 坏块
- ReiserFS文件系统坏块的处理
- NAND FLASH存储器的坏块管理
- 坏块的处理与恢复!
- NAND Flash的坏块管理设计
- rman坏块的检测与恢复
- 一次坏块的处理过程
- NAND Flash的坏块管理设计
- 数组的子数组最大之和
- 大四签约前,你知道这些么?
- 刚开通空间
- QT 头文件路径识别问题。
- 远程修改环境变量
- 坏块的解决办法
- 深度解析VC中的消息
- one's complement & two's complement
- 重启远程计算机(WMI)
- windows控件消息和控件通知消息大全
- 重启远程服务(WMI)
- wode
- MFC 的消息机制
- 码元速率的计算