前提
- 利用しているバージョンは10g
- 開発でOracleを利用しているが、テーブルの追加更新削除くらいしかしたことがない
状況
Windowsアプリを動かしていたら、アーカイブがいっぱいであることを示す
ORA-00257が発生し、再起動をかけたら初期化中のエラーが出て
アプリが起動しなくなった際の対象の備忘録です。
アーカイブログを消してみる
アーカイブログ出力先を調べる
アーカイブログ出力先を変更する方法
OS認証で管理者ユーザのsysへログイン
sqlplus /nolog
SQL > connect sys/[password] as sysdba
SQL> archive log list
(略)
アーカイブ先 /Pass
(略)
WindowsのGUIから手動で削除。(手動で消すと良くないかもしれません)
2019/01/15
復旧出来ていなかったのでRMANのコマンド
delete archivelog until 200;
を実行してOracle側から削除しました。
そうしないとOracle側で削除を認識できず予期せぬバグや復旧出来ない可能性があります。
手動で消して(OSコマンドで消して)しまった場合は下記の対処が必要
アーカイブファイルをOSコマンドで削除したらRMANのcrosscheckで整合性確認が必要
ORACLEを再起動する
ORA-01033が解消しないので、ORACLEの再起動を試みる
Oracle インスタンスの起動と停止
管理者でログインし下記コマンドを実行
startup
無事に起動し、DBに接続できる事を確認。
実際には、mountが上手くできなかったり、shutdownの際にエラーが起きたりしましたが根気強くshutdownと起動を繰り返してたら上手くいきました。(謎)
nomountから順を追って起動しようとしたら上手くいかなかったので、startupで全部自動に行った方がいいのですかね?
復旧に1hくらいかかってしまいました。。。
仮想環境に開発用のORACLEを入れて利用していたものなので、最悪壊れたらやり直せるなあという感じで進めましたので下記の手順でアーカイブログの削除は行った方がいいかもしれません(試してませんが調べてる時に出てきたもの)
アーカイブログの削除方法まとめ(ORA-00257対処方法)
以上です。