Heim >Datenbank >MySQL-Tutorial > 一例冷备份恢复引起的ORACLE数据库频繁重启故障
环境:ORACLE11GR2+windows2012描述:客户还原冷备份后启动数据库,启动后大概30秒左右数据库无法操作,提示ORA-03113:通信通道的文件结尾解决,再次启动后经过
环境: 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人的网络人生” 博客,请务必保留此出处