ORA-03113: 通信通道的文件结尾 进程 ID: 764 会话 ID: 125 序列号: 5

时间:2022-03-16 23:38:21

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

数据库已更改。