Oracle 数据库损坏,IMP-00098: 求救
本帖最后由 ALLSTARS_ORACLE 于 2017-5-3 14:48 编辑硬件
服务器:sun e2900
+大恒阵列
操作系统: solaris 10
数据库 : oracle 10g 10.1.0.2 for solaris 10
问题:
查询某个表时,出现
ORA-01578: ORACLE 数据块损坏(文件号 31, 块号 4586)
ORA-01110: 数据文件31: '/data/orcl/tsgrad_xs_data01.dbf'
检查了一下,是数据丢失,索引放在另外一个表空间。
目前数据库是在归档下工作,没有物理备份。
有逻辑备份
但是逻辑备份在导入时出现如下问题
illegal lob length marker 36176
bytesread = 00000000000
TABLE =
IMP-00098: INTERNAL ERROR: impgst2段错误-核心陷阱
请各位版主及高手帮我看看。
已经知道坏块所在的表,我是在查询会员表zchy遇到这个错误,所以我在查询该表 select * from zchy where rownum<92100都没有问题,select * from zchy where rownum>92100就会报错,说明这个表rownum超过92100以后的数据都是在这个坏块,我怎么样修复这部分数据?
我不知道有没有其他方法可以知道坏块所在的表?
逻辑备份是exp 整个用户数据库的。
imp的时候出错。
我imp是在其他地方,看看以前备份的数据是否可以用。
rman的恢复我也不是很清楚,之前我没有做rman的备份。
firyou:现在是生产系统,其他表的数据还在增加,我只能对一个表的数据进行恢复?
数据导出可能会丢很多数据啊,只能导出不在坏块的数据吧?
现在问题就是没有备份。:(
有逻辑备份的expdat.dmp
却不能在别的oracle中imp
我现在就是想使用逻辑备份中的该表的数据你把数据库的表rename,然后将该表从备份中导入。
但是我以前exp出来的数据文件再imp就出错,illegal lob length marker 36176
bytesread = 00000000000
TABLE =
IMP-00098: INTERNAL ERROR: impgst2段错误-核心陷阱
具体的情况是这样的,我原来的数据库是在sun v890 + 大恒阵列上运行,我把oracle 10g数据库和我的实例,数据文件等等都装在了阵列上,sun v890 只有运行的环境,数据逻辑备份的导出都是在sun v890中进行。
昨天晚上我把sun v890撤下来了,换成了sun e2900 +阵列。数据库都在阵列里面,我只是在e2900里面增加了oracle用户及其环境变量,然后把阵列的磁盘mount到e2900中。
就这样的操作,我重新启动应用后就发现有坏的数据块。而且在v890中exp的备份不能imp
。
我在v890中重新建了一个干净的数据库,可以导入到新的数据库中。
现在我只能从新的数据库中导出损坏的表然后导入到系统中。
因为损坏的数据文件所属表空间涉及到很多表,这样对其他表有没有影响?我是不是要把这个表空间重建?
select owner,segment_name,segment_type from dba_extents where file_id=31
2 and 4586 between block_id and block_id+blocks-1;
OWNER SEGMENT_NAME SEGMENT_TYPE
------------------------------ -------------------------------------------------------------------------------- ------------------
DBAPP ZCHY
这样的话,可以断定是物理设备或者逻辑磁盘的问题?
只能恢复该表,丢失一部分数据了。
如果我把所属表空间的所有表转移到别的表空间,然后把有坏块表空间删除了,不知道以后会不会出现坏块?
illegal lob length marker 36176
bytesread = 00000000000
TABLE =
IMP-00098: INTERNAL ERROR: impgst2段错误-核心陷阱
部分数据块有坏块吧, 可以尝试用prm-dul恢复 http://zcdn.parnassusdata.com/DUL4108.zip ===============================
illegal lob length marker xxxx
bytesread = 00000000000
TABLE =
IMP-00098: INTERNAL ERROR: impgst2Segmentation Fault - core dumped
===============================
此报错表名exp导出dump文件存在讹误,一般这种错误有两种原因:
1. exp工具造成的文件损坏。
2. 文件在传输或拷贝到目标端时出现损坏。
通常第二个原因是我们碰到的主要问题。
因此,在exp dump文件导出后,你应该使用imp带SHOW=Y参数来验证exp文件是否存在讹误问题。
且在传输到目标端时也应该使用这种方式来再次验证文件的可靠性。
页:
[1]