Oracle数据库关闭时,出现ORA-03113错误:
SQL> shutdown immediate
ORA-03113: end-of-file on communication channel
Process ID: 3437
Session ID: 125 Serial number: 5
SQL> startup
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
SQL>
SQL>
SQL> startup nomount
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
SQL>
SQL>
SQL> startup mount
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
SQL>
SQL> alter datafile '/bk/ts5.2.dbf' offline
2 ;
ERROR:
ORA-03114: not connected to ORACLE
查看日志文件:
/u01/app/diag/rdbms/orcl/orcl/trace/alert_orcl.log
16416 Errors in file /u01/app/diag/rdbms/orcl/orcl/trace/orcl_dbw0_4055.trc:
16417 ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
16418 ORA-01110: data file 6: '/bk/ts5.2.dbf'
16419 ORA-27037: unable to obtain file status
16420 Linux Error: 2: No such file or directory
16421 Additional information: 3
16422 Errors in file /u01/app/diag/rdbms/orcl/orcl/trace/orcl_ora_4097.trc:
16423 ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
16424 ORA-01110: data file 6: '/bk/ts5.2.dbf'
16425 ORA-1157 signalled during: ALTER DATABASE OPEN...
16426 Mon Oct 21 20:53:43 2013
16427 Checker run found 1 new persistent data failures
16428 Mon Oct 21 20:54:53 2013
发现是因为刚刚创建的表空间文件丢失,导致的。
开始修复表空间文件。
解决方法:
SQL> shutdown abort
ORACLE instance shut down.
SQL>
SQL>
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 422670336 bytes
Fixed Size 1336960 bytes
Variable Size 314575232 bytes
Database Buffers 100663296 bytes
Redo Buffers 6094848 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '/bk/ts5.2.dbf'
SQL> alter database datafile '/bk/ts5.2.dbf' offline drop;
Database altered.
SQL>
SQL>
SQL> startup
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 422670336 bytes
Fixed Size 1336960 bytes
Variable Size 314575232 bytes
Database Buffers 100663296 bytes
Redo Buffers 6094848 bytes
Database mounted.
Database opened.
SQL>
由于是表空间文件丢失,最后查看一下表空间:
SQL>
SQL> select tablespace_name, file_name from dba_data_files;
TABLESPACE_NAME FILE_NAME
-------------------- ----------------------------------------
EXAMPLE /u01/app/oradata/orcl/example01.dbf
UNDOTBS1 /u01/app/oradata/orcl/undotbs01.dbf
SYSAUX /u01/app/oradata/orcl/sysaux01.dbf
SYSTEM /u01/app/oradata/orcl/system01.dbf
USERS /u01/app/oradata/orcl/users01.dbf
TS5 /bk/ts5.2.dbf
TS5 /bk/ts5.dbf
7 rows selected.
SQL> select file#, name, status from v$datafile;
FILE# NAME STATUS
---------- ---------------------------------------- -------
1 /u01/app/oradata/orcl/system01.dbf SYSTEM
2 /u01/app/oradata/orcl/sysaux01.dbf ONLINE
3 /u01/app/oradata/orcl/undotbs01.dbf ONLINE
4 /u01/app/oradata/orcl/users01.dbf ONLINE
5 /u01/app/oradata/orcl/example01.dbf ONLINE
6 /bk/ts5.2.dbf RECOVER
7 /bk/ts5.dbf ONLINE
7 rows selected.
SQL>