这样巴,重新建立一个新库,然后做imp,因为你现在连数据库都打不开了

解决方案 »

  1.   

    导不出来啊,导的时候出错了,一样的错误信息:
      Error Message is: ORA-01578: ORACLE 数据块损坏(文件号1,块号35779)
      ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\INSP\SYSTEM01.DBF'用analyze table Blsyz validate structure Cascade  时也是弹出这个错误.
      怎么办??
      

  2.   

    这张表表示数据表,还是oracle的系统表?如果是你的数据表,它可以进行查询吗?如果可以查询,你可以先在自己的裤上做一个本地的备份(create table_name_bak as select * from table_name;),然后删除有问题的数据表,对备份表进行重新命名(rename table_name_bak to table_name;)。如果是数据库的系统表,这种方法就没有用了
      

  3.   

    是我自己的表,但不可以查询,一查询就弹出错误信息。
    我怀疑不是硬盘坏道,因为我可以把system01.dbf文件复制出来。
      

  4.   

    如果你有全部的归档日志,可以进行恢复的
    以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;
      

  5.   

    to chao778899(220330) 
      可我没有物理备份,应该不可以吧?
      

  6.   

    你试试:
    1、ALTER SESSION SET EVENTS '10231 trace name context forever,level 10'; 
    2、CREATE TABLE TEST_CORR AS (SELECT * FROM TEST);其中的TEST你自己的表名来代替,看看能不能救出你部分的数据了。
    如果不行的话,只能IMP恢复或者最好花钱找ORACLE了。
      

  7.   

    我的建议还是先冷备份数据库,然后试下其他表是否能EXP,如果其他表都不能EXP就很麻烦了,损坏的表一般只是一两条记录应该可以查到是哪几条记录,通过CREATE TABLE  WHERE 
    的方法把没有被破坏的数据备份,然后DROP 损坏的表。再EXP
    如果还不行,再想想其他办法
      

  8.   

    to aweihz(我怎么还没有星??!) 
       ALTER SESSION SET EVENTS '10231 trace name context forever,level 10'; 
    创建表时出错,出错信息同上
      
    to all
      现在其它表都可以导出来,就只有一个表导不出来,也无法删除。 这个表所在表空间是system
      

  9.   

    那不是好办了吗?把用户的表全部导出来,然后重新安装数据库然后再IMP不就行了?
      

  10.   

    to  aweihz(我怎么还没有星??!) 
     是在一个窗口里创建的to LGQDUCKY(飘)   
      我的数据库好像有点问题,创建不了新的数据库。用odca创建时报错:ora-12560 tns 协议适配

      还有一点,我exp出来的那些表分别存放在很多的表空间上,如果要把他们imp到另一个库中,是
    不是也要先创建同名的表空间?
      

  11.   

    其它问题都解决了,我exp出来的那些表分别存放在很多的表空间上,如果要把他们imp到另一个库中,是不是也要先创建同名的表空间?
      

  12.   

    是的!因为EXP文件里面CREATE 语句都是带有所在表空间
      

  13.   

    你可以试试将表移到其它表空间看能不能行:
    SQL>alter table table_name move tablespace users;
    --users是例举的一个表空间;
    如果能移动,则找出坏的记录,删除掉。