昨天因为导入很久数据,最后一看是因为数据文件不够,后来就关机了。现在,开启数据库,总是报“ORA-03113: 通信通道的文件结尾”
SQL> conn /as sysdba;
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。 Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 377487824 bytes
Database Buffers 150994944 bytes
Redo Buffers 5804032 bytes
数据库装载完毕。
ORA-03113: 通信通道的文件结尾
进程 ID: 920
会话 ID: 125 序列号: 5
错误,分析可能由于数据库立即关闭,导致文件状态可能不一致,因为正常关闭数据库会同步校验各文件,使得重新启动的时候文件时间点一致并且不用进行崩溃恢复,不得不进行下面的恢复,建议大家以后在利用abort选项时,先在os上观察IO状况,在IO值为0或接近0的时候再强制关闭,以避免不可预料的错误。
SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME
---------------- ------------- -------------- ------------ --------------
1 1 211 52428800 512 1 NO
INACTIVE 3890454 26-8月 -13 3904355 26-8月 -13 3 1 210 52428800 512 1 NO
INACTIVE 3877504 26-8月 -13 3890454 26-8月 -13 2 1 212 52428800 512 1 NO
CURRENT 3904355 26-8月 -13 2.8147E+14 SQL> set linesize 150;
SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME NEX
T_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------- ---
--------- --------------
1 1 211 52428800 512 1 NO INACTIVE 3890454 26-8月 -13
3904355 26-8月 -13
3 1 210 52428800 512 1 NO INACTIVE 3877504 26-8月 -13
3890454 26-8月 -13
2 1 212 52428800 512 1 NO CURRENT 3904355 26-8月 -13 2
.8147E+14 SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效 SQL> recover database until time '2013-08-12 18:00:02';
完成介质恢复。
SQL> alter database open resetlogs; 数据库已更改。