这张表表示数据表,还是oracle的系统表?如果是你的数据表,它可以进行查询吗?如果可以查询,你可以先在自己的裤上做一个本地的备份(create table_name_bak as select * from table_name;),然后删除有问题的数据表,对备份表进行重新命名(rename table_name_bak to table_name;)。如果是数据库的系统表,这种方法就没有用了
如果你有全部的归档日志,可以进行恢复的 以MOUNT方式启动数据库: startup mount 将被破坏的数据文件离线并打开数据库: alter database datafile ‘--’ offline; alter database open; 创建一个新的数据文件,因为该文件没有备份文件,所以要创建一个大小路径都和原来相同的数据文件来实施恢复,新创建的文件没有任何数据,全凭日志文件进行恢复. 为没有备份但是已经损坏的数据文件重新创建一个新的,空白的数据文件 SQL>ALTER DATABASE CREATE DATAFILE 2 'I:\ora9i\oradta\users01.dbf' AS 3 'I:\ora9i\oradata\users01.dbf'; 执行上述语句后,oracle将会在原始位置上创建一个与原来的数据文件物理属性相同的新的数据文件,只不过这个数据文件是空的.之后可以对空白的新的数据文件进行恢复 创建了文件之后,直接对文件实施介质恢复,如下: recover datafile ‘----’; 将数据文件在线: alter database datafile ‘----’ online;
to chao778899(220330) 可我没有物理备份,应该不可以吧?
你试试: 1、ALTER SESSION SET EVENTS '10231 trace name context forever,level 10'; 2、CREATE TABLE TEST_CORR AS (SELECT * FROM TEST);其中的TEST你自己的表名来代替,看看能不能救出你部分的数据了。 如果不行的话,只能IMP恢复或者最好花钱找ORACLE了。
我的建议还是先冷备份数据库,然后试下其他表是否能EXP,如果其他表都不能EXP就很麻烦了,损坏的表一般只是一两条记录应该可以查到是哪几条记录,通过CREATE TABLE WHERE 的方法把没有被破坏的数据备份,然后DROP 损坏的表。再EXP 如果还不行,再想想其他办法
to aweihz(我怎么还没有星??!) ALTER SESSION SET EVENTS '10231 trace name context forever,level 10'; 创建表时出错,出错信息同上
to all 现在其它表都可以导出来,就只有一个表导不出来,也无法删除。 这个表所在表空间是system
那不是好办了吗?把用户的表全部导出来,然后重新安装数据库然后再IMP不就行了?
to aweihz(我怎么还没有星??!) 是在一个窗口里创建的to LGQDUCKY(飘) 我的数据库好像有点问题,创建不了新的数据库。用odca创建时报错:ora-12560 tns 协议适配 器 还有一点,我exp出来的那些表分别存放在很多的表空间上,如果要把他们imp到另一个库中,是 不是也要先创建同名的表空间?
Error Message is: ORA-01578: ORACLE 数据块损坏(文件号1,块号35779)
ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\INSP\SYSTEM01.DBF'用analyze table Blsyz validate structure Cascade 时也是弹出这个错误.
怎么办??
我怀疑不是硬盘坏道,因为我可以把system01.dbf文件复制出来。
以MOUNT方式启动数据库:
startup mount
将被破坏的数据文件离线并打开数据库:
alter database datafile ‘--’ offline;
alter database open;
创建一个新的数据文件,因为该文件没有备份文件,所以要创建一个大小路径都和原来相同的数据文件来实施恢复,新创建的文件没有任何数据,全凭日志文件进行恢复.
为没有备份但是已经损坏的数据文件重新创建一个新的,空白的数据文件
SQL>ALTER DATABASE CREATE DATAFILE
2 'I:\ora9i\oradta\users01.dbf' AS
3 'I:\ora9i\oradata\users01.dbf';
执行上述语句后,oracle将会在原始位置上创建一个与原来的数据文件物理属性相同的新的数据文件,只不过这个数据文件是空的.之后可以对空白的新的数据文件进行恢复
创建了文件之后,直接对文件实施介质恢复,如下:
recover datafile ‘----’;
将数据文件在线:
alter database datafile ‘----’ online;
可我没有物理备份,应该不可以吧?
1、ALTER SESSION SET EVENTS '10231 trace name context forever,level 10';
2、CREATE TABLE TEST_CORR AS (SELECT * FROM TEST);其中的TEST你自己的表名来代替,看看能不能救出你部分的数据了。
如果不行的话,只能IMP恢复或者最好花钱找ORACLE了。
的方法把没有被破坏的数据备份,然后DROP 损坏的表。再EXP
如果还不行,再想想其他办法
ALTER SESSION SET EVENTS '10231 trace name context forever,level 10';
创建表时出错,出错信息同上
to all
现在其它表都可以导出来,就只有一个表导不出来,也无法删除。 这个表所在表空间是system
是在一个窗口里创建的to LGQDUCKY(飘)
我的数据库好像有点问题,创建不了新的数据库。用odca创建时报错:ora-12560 tns 协议适配
器
还有一点,我exp出来的那些表分别存放在很多的表空间上,如果要把他们imp到另一个库中,是
不是也要先创建同名的表空间?
SQL>alter table table_name move tablespace users;
--users是例举的一个表空间;
如果能移动,则找出坏的记录,删除掉。