先日、弊社においてDBMoto動作検証用に導入されていた、Windows上のOracle DB 11gR2に接続できなくなる事態が発生しました。
そこで、当該Orace DBにSQLPlusで接続しようとしたところ、次のようなエラーが出て接続できませんでした。
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory
より詳しい調査のため、Windows付属のイベントビューワを使います。
「Windowsログ」以下にある「アプリケーション」を開き、「現在のログをフィルター」から以下の画像のように条件を入力すると、Oracleのエラーのみが表示されるようになります。
絞り込んだOracleからのエラーログを調べますと、以下のようなエラーが出力されていました。
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 2 thread 1:’C:\APP\ADMINISTRATOR\ORADATA\REDO02.LOG’
これらのエラーを調べたところ、REDOログをアーカイブする際に、何らかの原因でREDOログが
アーカイブREDOログに書き込めず、その結果発生するものでした。
この場合、以下のようにアーカイブログのモードを一旦リセットしなければなりません。
ステップ1:Windowsのコマンドプロンプト(cmd.exe)を開きます。
ステップ2:sqlplus system/password as sysdbaと入力します。SIDを指定する必要はありません。
sysdba権限で接続するコマンドです。IDのsystemとパスワードのpasswordの部分は設定に合わせて適宜変更してください。
SIDが不要な理由はその対象となるインスタンス自体が立ち上がっていない=認証できない、ためです。
ステップ3:shutdown immediateと入力します。
念のためデータベースをシャットダウンします。立ち上がっていない場合、エラーを出しますが問題ありません。
shutdown abortは最終手段用であり、データベースの整合性が失われる危険がありますので使わないでください。
ステップ4:startup mountと入力します。
今回、startup openと入力すると、異常のあるREDOログおよびアーカイブログが読み込まれ、マウントした直後に「ORA-03113:通信チャネルでend-of-fileが検出されました」という
エラーが発生し、それ以降exitするまでうまくいかなくなるため、mount状態でいったんとめます。
ステップ5:alter database noarchivelogと入力します。
アーカイブモードをノーアーカイブモードに変更します。
mount状態においてアーカイブモードに関する変更をすることができます。open状態ですと変更ができません。
ステップ6:alter database openと入力します。
データベースをオープンします。無事データベースがオープンします。
ステップ7:shutdown immediateと入力します。
データベースをシャットダウンします。
shutdown abortは最終手段用であり、データベースの整合性が失われる危険がありますので使わないでください。
ステップ8:startup mountと入力します。
再びデータベースをマウント状態におきます。
ステップ9:alter database archivelogと入力します。
設定をアーカイブモードに戻します。
ステップ10:alter database openと入力します。
データベースをオープンします。
ステップ11:exitで終了します。
ステップ12:sqlplusと入力します。通常の認証画面が出たらユーザー名とパスワードを入力してください。
接続ができるようになっているかと思います。
関連したトピックス
- Oracleアーカイブログモードの変更
- Database Performance Analyzer (旧Ignite)の情報からメモリのチューニング【DBの監視・管理】
- Oracle Error ORA-1017 について(Oracle 11g)【リアルタイムレプリケーションツールDBMoto】
- スキーマ(ユーザ)作成時に「ORA-65096」~Oracle 12cのアーキテクチャはここが違う~:DBMoto
- Oracle DB起動時にエラーORA-00257が出て起動しない際の対処法
- WindowsのOracleでORA-01031エラーが発生した場合の対処法
- Oracle Redo Log の Transaction ID取得に失敗する場合【リアルタイムレプリケーションツールDBMoto】
- Oracleトランザクションセットアップ例(Log ReaderまたはLog Server Agent)[Syniti Data Replication]
- サプリメンタルロギング設定の影響に関して[Syniti DR]
- Oracle Log Miner と Redo Logについて【リアルタイムレプリケーションツールDBMoto】