それはある朝突然に
微妙に忙しくてひーこらしていた月曜のことでした。クライアントさんから「システムが開かない」という連絡が。これ、Oracle Cloud Infrastructure(以下OCI)上にRDBMS置いてるんですが、そこへの接続エラーだったんですね。
(画像出典:Pixabay)
当然ですが、先週までは問題なく使えていたシステムですので。原因を探るべくいろいろ確認してみました。
Webコンソールからは異常なし?
まず、OCIのWebコンソール(って言うのかしら)から、データベースノードの状態を確認してみました。ステータス見た限り起動はしてるっぽいです。ですが、SSH接続が出来ません。
手動で起動をかけてみる
このシステム、データベースノードを夜間止めてます。起動とかシャットダウンは、こちらのサーバ上にあるシェルスクリプトで、cronからキックしてます。ですので、そのシェルスクリプトを直打ちで再起動かけました。
(画像出典:Pixabay)
が、やっぱ、だめぽ。
Oracleサポート騒動記?
でまあ、Oracleサポートに連絡を試みたのですが。なんか、いろいろめんどくさくて使いづらい(のはあそこの伝統だと思ってる)というわけで。ここで大した解決策を見出すことはできませんでした。
(画像出典:Pixabay)
時間だけが行き過ぎる。
問題の整理
考えられそうな問題は
- OCI本体のエラー(先日大規模なのが発生した)
- 通信ルールがどっかでリセットされた(TCPポート1521と23だったかがダメ)
あたりかなと。
とりあえず、先日大規模なのが発生したらしいのですが、OCIのトラブルの可能性を考えて、こちらのサイトからチェックを試みました。
あ、画像はトラブル発生時のものではありませんが、正常が確認されました。序に、コールドスタンバイ用の別データベスノードを起動、こちらは生きてましたので、OCIのトラブルという可能性は消えました。
Webコンソールから通信ルールもチェックしたんですが、これも勝手に変更とかされてはいませんでした。ついでに、SQL Developerからのアクセスを試みましたら。できません。
エラーコードちょっと変わったっぽいんですが。大勢に影響はなさそうです。ううう、なんなんだこれ。
こんなときにはノードの再起動
というわけで、Webコンソールは生きていることがわかりましたので。そこから、だめもとで手動でデータベースノードの再起動を実施しました。シャットダウンに、通常よりえらく時間がかかりましたが。再起動は無事完了。
(画像出典:Pixabay)
たぶん、Oracle本体に原因を確認しても「わかりません」で終わる気がします。おそらくなんですが、データベースノードの起動の最中に、なんらかの不幸な出来事が発生。うまく起動はできなかったのですが、Webコンソール上からは起動しているように見えた、って感じなんでしょうね。
まとめます
Oracle Cloud Infrastructureで、前日まで稼働できていたシステムに「ORA-12170」でアクセスできなくなったときは
- 何はなくともノードの再起動
- それでダメなら致命的な問題の可能性
(画像出典:Pixabay)
身も蓋もありませんね。