管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

「ORA-03113: 通信チャネルでend-of-fileが検出されました」に対処する(Oracle)

いろいろ試していたら、アーカイブログでフラッシュリカバリ領域が一杯になってしまい、Oracleが起動できなくなってしまったのでそれを対処したメモ。

関連:

やったこと

/* バージョン */
SQL> select version_full from v$instance;
VERSION_FULL
-----------------
18.3.0.0.0

# インスタンスを起動する
[oracle@oracle18c ~]$ sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on 土 427 12:21:34 2019
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

アイドル・インスタンスに接続しました。

SQL> startup
ORACLEインスタンスが起動しました。

Total System Global Area 2466249080 bytes
Fixed Size                  8898936 bytes
Variable Size             671088640 bytes
Database Buffers         1778384896 bytes
Redo Buffers                7876608 bytes
データベースがマウントされました。
ORA-03113: 通信チャネルでend-of-fileが検出されました プロセスID:
17173
セッションID: 17、シリアル番号: 33443

SQL>

# fast_recovery_areaの使用状況を確認(4GBを割り当て済) → いっぱいになっていた
[oracle@oracle18c ~]$ du -h /u01/app/oracle/fast_recovery_area
...
3.4G    /u01/app/oracle/fast_recovery_area/ORCL/archivelog
601M    /u01/app/oracle/fast_recovery_area/ORCL/onlinelog
18M     /u01/app/oracle/fast_recovery_area/ORCL/controlfile
4.0G    /u01/app/oracle/fast_recovery_area/ORCL
4.0G    /u01/app/oracle/fast_recovery_area

# 空きを確保する
[oracle@oracle18c ~]$ du -h /u01/app/oracle/fast_recovery_area
1.9G    /u01/app/oracle/fast_recovery_area/ORCL/archivelog
601M    /u01/app/oracle/fast_recovery_area/ORCL/onlinelog
18M     /u01/app/oracle/fast_recovery_area/ORCL/controlfile
2.5G    /u01/app/oracle/fast_recovery_area/ORCL
2.5G    /u01/app/oracle/fast_recovery_area

# RMANを利用するため(ファイルシステムとRMANの管理情報を一致させるため)、いったんマウント状態まで進める
SQL> startup mount
ORACLEインスタンスが起動しました。

Total System Global Area 2466249080 bytes
Fixed Size                  8898936 bytes
Variable Size             671088640 bytes
Database Buffers         1778384896 bytes
Redo Buffers                7876608 bytes
データベースがマウントされました。

# RMANでファイルシステムと管理情報を同期させる
[oracle@oracle18c ~]$ rman target /

Recovery Manager: Release 18.0.0.0.0 - Production on 土 427 12:40:46 2019
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.

ターゲット・データベース: ORCL (DBID=1524209577、未オープン)に接続されました

# ファイルシステムと管理情報とを同期する
RMAN> crosscheck archivelog all;

リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=20 デバイス・タイプ=DISK
アーカイブ・ログの検証に失敗しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2019_03_02/o1_mf_1_39_g7mo1180_.arc レコードID=9 スタンプ=1001843633
アーカイブ・ログの検証に失敗しました
アーカイブ・ログ・ファイル名=/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2019_03_02/o1_mf_1_40_g7n3kb7q_.arc レコードID=10 スタンプ=1001858583
アーカイブ・ログの検証に失敗しました
...
21オブジェクトをクロスチェックしました

# ファイルシステム上に存在しないアーカイブログ情報を制御ファイルから削除する
RMAN> delete expired archivelog all;

チャネル: ORA_DISK_1がリリースされました
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=20 デバイス・タイプ=DISK
データベースdb_unique_name ORCLのアーカイブ・ログ・コピーのリスト
=====================================================================

Key     Thrd Seq     S Low時間
------- ---- ------- - --------
9       1    39      X 19-02-28
        名前: /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2019_03_02/o1_mf_1_39_g7mo1180_.arc

10      1    40      X 19-03-02
        名前: /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2019_03_02/o1_mf_1_40_g7n3kb7q_.arc

11      1    41      X 19-03-02
        名前: /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2019_03_02/o1_mf_1_41_g7nmyt2d_.arc
...
10EXPIREDオブジェクトを削除しました

# 再度起動にトライ → うまくいった
SQL> startup
ORACLEインスタンスが起動しました。

Total System Global Area 2466249080 bytes
Fixed Size                  8898936 bytes
Variable Size             671088640 bytes
Database Buffers         1778384896 bytes
Redo Buffers                7876608 bytes
データベースがマウントされました。
データベースがオープンされました。