昨天因为导入很久数据,最后一看是因为数据文件不够,后来就关机了。现在,开启数据库,总是报“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; 数据库已更改。