今日も真冬日の札幌からお届けします。
どうも、かずや、でっせ☆
本日は、仕事ネタから。
Oracleにアクセスできない!
OracleにSQL*Plusでアクセスしたところ、
アーカイブログエラーとなり、ログインできませんでした。
sqlplus user/password@sid
ORA-00257: アーカイブ・エラーです。解除されるまで内部接続のみにしてください。
そうです、アーカイブのログを書き出せないので、
ログインは、あきまへんえ!というメッセージです。
アーカイブに失敗しているようです。。。
Oracleログを調べたところ、昨年末から正常にアーカイブ出来なくなった様子。
さいわい、開発で使っているDBなので、大事には至らず。
RMANで接続して、古いアーカイブログを削除すれば解決するのは既知の話で。
ま、この手のコトは、定期的に自動で処理するようにしておけばよい話なのですが。
面倒だったので放置してました(爆)
RMANでも接続できない!?
さて、RMANで接続して、古いアーカイブログを削除しましょうかね、と
RMANで接続を試みるも、ほぼノーリアクション。。。
rman target / nocatalog
この「ほぼ」というのは、接続した直後には、
Copyright的な、よく目にする最初の2行は表示されるのですよ。
でも、待てど暮らせど、その先に進まない。
う〜ん、困った。
Ctrl+Cで処理を中断して、再び試みるも、リアクションは変わりません。
こういうときって、そんなもんなんですよね(苦笑)
さて、困りました。。
Oracleが使えないと、開発作業に差し支えます。
う〜む、困った。
とりあえず、SYSDBA権限でアクセス
平静を装いつつ、恐る恐る、SQL*PlusでSYSユーザ(SYSDBA権限)で
ログインしてみました。成功!(少しホッとしました)
sqlplus sys/password@sid as sysdba
これで、何らかのことは出来るのではないかと。
「何らか」は、全然思い浮かばないのですが。。。
アーカイブログモードを変更してみるか。。。
アーカイブログモード(ARCHIVELOGモード)をノーアーカイブログモード(NOARCHIVELOGモード)に変更できないかと企みました。
モード変更して、再起動すれば、うまくいくのではないか、
という回りくどい作戦です。
ログモードを変更するには、SHUTDOWNする必要があります。
SQL*PlusでShutdownを実行しました。が。。。
SQL> shutdown immediate;
これまた、RMANと同様にノーリアクションです。とほほ。
Shutdownできなければ、さっきの回りくどい作戦も遂行できません。
さてはて、困りました。
究極の急場凌ぎ!領域サイズを変更してみたら
開発で使っているサーバーのディスク容量の空きは、まだまだ余裕がありました。
そこで思いついたのが、フラッシュリカバリ領域を増やしてみよう!大作戦です。
ま、なんという急場凌ぎの大作戦なのでしょう(笑)
まずは、いまのフラッシュリカバリ領域を、どのくらいの設定になっているか確認しました。
SQL> show parameter DB_RECOVERY_SIZE;
すると、設定は’8G’。(お!すでに、結構なサイズ、とってるやんけ!!)
この8Gを10Gに変更してみました。
SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=’10G’;
すると、すんなり成功!!
Oracleログも確認して、変更が完了したことを確認!
念のため、少し時間をおいてから、RMANで接続すると、こちらも無事に接続!
rman target / nocatalog
う、う、うれしい!!
これで、いつものアーカイブログを削除するコマンドを実行して、
Oracleにアクセスできるようになりましたとさ!
めでたし、めでたし。
<参考サイト>
・[Oracle] フラッシュ・リカバリ領域が一杯になりOracleが応答しなくなる – Archive Redo Blog
・スレッド: ORA-19809で困っております。 – Oracle Technology Network (OTN) Japan
・ORA-00257: アーカイブ・エラーです。解除されるまで内部接続のみにしてください。 – SHIFT the Oracle
・オラクル・インスタンスを手動で起動、停止する – SHIFT the Oracle
・アーカイブログモード運用への移行 – SHIFT the Oracle
・データベースの停止(SQL*Plus版) – @IT
株式会社コーソル 渡部 亮太 SBクリエイティブ 2015-04-25