#创作挑战赛#
一早开发人员反馈,测试库挂了。应用报错java.sql.SQLRecoverableException: ORA-01033: oracle initialization or shutdown in progress。
登录数据库查看alert日志:
分析数据库alert日志:
11:06:58 数据库启动到MOUNT状态。执行alter database OPEN的时候,发现有文件丢失:
Errors in file /usr/oracle2app/diag/rdbms/orcl2/orcl2/trace/orcl2_dbw0_106488.trc:
ORA-01157: cannot identify/lock data file 25 - see DBWR trace file
ORA-01110: data file 25
数据库启动过程检测两次丢失的文件后,依旧无法找到。报错:
ORA-1157 signalled during: ALTER DATABASE OPEN...
数据库OPEN失败,此时数据库依旧在MOUNT状态。到操作系统ls -ltr 对应的文件。显示文件不存在,数据库文件在操作系统以及被删掉。
登录数据库执行datafile offline命令。先把丢失的文件从控制文件offline掉。
alter database datafile 25 offline drop
Completed: alter database datafile 25 offline drop
再次启动数据库到open状态成功。
alter database open;
故障总结:
1、测试库非归档模式丢失了数据文件。只能采用offline drop的操作先回复数据库到OPEN保证研发人员正常使用。生产环境禁止此类操作。
2、数据库OPEN以后,需要检查该文件对应的对象。如果这部分对象没人使用则执行表空间删除命令,彻底删除文件。
3、此类操作严禁到生产操作。生产有全面的rman备份,如丢失文件需要从rman中恢复。
,