ORA-1110 、ORA-1122错误一起出现一般意味着对应号码/名字的数据文件存在问题, 而最底下的错误号一般能揭示该问题的本质,例如ORA-1200是说明数据文件的实际大小小于预期的大小。
针对有完整备份和归档的数据库可以尝试常规RESTORE、REOCOVER的方法来恢复该数据文件,而对于没哟任何形式物理备份的数据库而言,可以尝试使用DD等手段来修改数据文件大小,并绕过该问题。 注意这样做只是绕过问题而已,可能丢失的数据仍会丢失,并不会因此而恢复。
dd if= of=<output/target datafile> count=< > bs=Taking the above example (First we take an dd backup of datafile):
dd if=/u02/oradata/careware/users01.dbf of=/tmp/corr_temp.DBF count=64000 bs=8192
Now add 1600 zero blocks to datafile /u02/oradata/careware/users01.dbf
syntax
dd if=/dev/zero of= bs= seek= count=
In parameter seek specify the block from which it should append 1600 blocks.
In this case since the file contains 64000 (as indicated by the error message) so seek=64001 which is the next block from where the append will occur.
dd if=/dev/zero of=/u02/oradata/careware/users01.dbf bs=8192 seek=64001 count=1600 conv=notrunc
Now check the file size at OS level (It should be 65600 * 8192 + 8192)bytes
Do a ls -lrt to confirm the same.
Warning!! Once the database is open, export all the objects present in the tablespace containing the datafile. Please note that for any segment which had blocks that got
truncated at OS level, the export may fail if it tries to read data from the zero padded blocks. In that case it may be needed to apply a procedure to salvage good records.
Once export is complete, create a new tablespace and import the data.
Once it is confirmed that the data is good, drop the old tablespace.
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)