环境: oracle 11g r2+windows2012
描述: 客户还原冷备份后启动数据库,启动后大概30秒左右数据库无法操作,提示ora-03113:通信通道的文件结尾解决,再次启动后经过30秒左右会再次无法操作。
处理过程:
1.进入操作系统,查看相关日志。
查看日志报错,发现ora-00600: internal error code, arguments: [3005]
同时观察到data目录的undo表空间物理文件时间未发生变化,其他物理文件更新都已经成为最新时间。
于是对重做表空间物理文件进行重建操作
具体操作步骤如下:
sqlplus /nolog
sql> conn /as sysdba;
sql> startup mount;
sql> --根据目前的动态参数文件创建静态参数文件
sql> create pfile='d:\20130101.ora' from spfile;
#修改生成的20130101.ora文件
*.undo_management='manual'
*._corrupted_rollback_segments=(_syssmu3$)
[oracle@db ~]$ exit
sql> --查看原undo表空间名
sql> show parameter undo;
name type value
------------------------------------ --------------------------------- ------------------------------
undo_management string auto
undo_retention integer 10800
undo_tablespace string undotbs1
sql> --关闭数据库
sql> shutdown immediate;
sql> --根据修改后的20130101.ora静态参数文件启动数据库
sql> startup pfile='d:\20120101.ora'
sql> --创建新的undo表空间
sql> create undo tablespace undotbs2 datafile '数据文件目录\undotbs01.dbf' size 2g;
sql> --删除原undo表空间
sql> drop tablespace undotbs1 including contents and datafiles;
sql> --修改新的表空间undotbs2名为undotbs1
sql> alter tablespace undotbs2 rename to undotbs1;
sql> --关闭数据库
sql> shutdown immediate;
sql> --再次启动数据库(问题解决)
sql> startup;
数据库至此恢复正常,经过24个小时的运行,无任何问题,问题已经解决。
ps:估计客户在冷备份的时候拷贝的undo表空间物理文件受损或者在库没有完全停止的情况下拷贝,,造成文件受损,在没有undo表空间的情况库可以启动,但如果有数据修改就会发生写入undo表空间失败,数据连接断掉。
本文出自 “it人的网络人生” 博客,请务必保留此出处
