首页 > 代码库 > 关于oracle数据库启动报ORA-01122,ORA-01110,ORA-01203错误的解决方法

关于oracle数据库启动报ORA-01122,ORA-01110,ORA-01203错误的解决方法

ORACLE 数据库空间裸设备出问题了,启动oracle失败,解决方法
问题现象:
     启动ORACLE的时候报如下的错误:
        Database mounted.
      ORA-01122: database file 6 failed verification check
      ORA-01110: data file 6: ‘/dev/raw/rlv_cbs_user_dat‘
      ORA-01203: wrong incarnation of this file - wrong creation SCN
问题解决:      
      这个数据库空间有问题了,需要删除数据库空间,然后重新添加
      正确的步骤应该是这样去删除数据库空间的
    第一步,执行shutdown immediate命令先将数据库停止
      第二步,执行start mount 命令启动数据库
      第三步,将数据文件置为offline状态
     alter database datafile ‘/dev/raw/rlv_cbs_user_dat‘ offline drop;
      这里需要注意的是第三步的参数必须是offline drop;
      我一开始是这样写的,报错了
      alter database datafile ‘/dev/raw/rlv_cbs_user_dat‘ offline;   我执行这一句
      ERROR at line 1:
      ORA-01145: offline immediate disallowed unless media recovery enabled
      第四步,alter database open;
      第五步,drop tablespace cbs_user_dat ;
      第五步执行的时候又报了下面的错误
      ERROR at line 1:
      ORA-00604: error occurred at recursive SQL level 1
      ORA-02429: cannot drop index used for enforcement of unique/primary key
      通常情况下是删除这个cbs_user_dat这个表空间里的用户就可以了drop成功
      先查出这个数据库空间有哪些用户
      select username,DEFAULT_TABLESPACE from dba_users where DEFAULT_TABLESPACE=‘cbs_user_dat‘;
      
      我删除了用户还是报上面的错误
      下面查出在这个表空间里有哪些索引
      select OWNER,TABLESPACE_NAME,INDEX_NAME from dba_indexes where TABLESPACE_NAME=‘CBS_USER_DAT‘;
      这个时候可以删除索引,我删除索引的时候报错了
      我就直接把这个数据库用户给删了,尽管这个用户不是在CBS_USER_DAT里,这个时候再去删除表空间
      就可以删除成功了。

  表空间删除成功了之后就可以添加表空间了

http://blog.csdn.net/cannoesword/article/details/6023636