サーバー切り替えであったトラブルとその対処
少し前に、ORACLEサーバーの切り替えを行った。
サーバーの切り替えだけならよくある話だが、それぞれ企業なのかシステムなのか、固有なトラブルに付き合わされた。
事前に準備はしていたつもりだったが、不足があり、本番切り替えの時間のない中での対応となった。
切り替えの大まかな概要はこうだ
- サーバーのIPは変更されても、DNSは変えない
- 2台のAPサーバー、1台のDBサーバー
- APサーバーはOracle Application Server 10g
- DBはOracle 9i(9.2.0.4)
他のシステム屋さんではどうやっているのかわからないが、本来であればサーバーのIPさえも変更したくなかったが、平行でLAN内に立ち上げておく期間があったため、IP、名前は別に立ち上げておき、本番切替時に名前をDNS上で変更する。という対応を行った。
foo (旧サーバー) IP: xxx.xxx.xxx.10
hage (新サーバー) IP: xxx.xxx.xxx.20
この状態でDNSでは
foo xxx.xxx.xxx.10
hage xxx.xxx.xxx.20
となるわけだが、これを切替時に
hage xxx.xxx.xxx.20
foo xxx.xxx.xxx.10
としてしまおう、ということだ。
果たして、通常こんなパターンで行うことはあるのだろうか?
みんなどのようにしているのか知りたい。
起きた問題は
Listenerサービスが起動しない
といったもの。
内容も原因も単純明解だったが、時間を食われたし、OiSCにも該当する内容が見つからなかった。
アイドルインスタンスには接続ができたものの、クライアント端末から接続しようとすると、10分ほど応答が返ってこず、その後タイムアウトしてしまう。
サーバーではどうなっているかというと、Lisnterが吐き出すログが10MB/秒ほどの勢いでエラーを吐きつづける状態になってしまった。
いろいろ切り分けをしつつ調べていくと、名前解決が原因だったようだ。
サーバー名がhageだとすると、自身のhostsに、「hage」と「hage.hoge.com」が必要だった。
事前に「hage」は登録してあったのだが、ドメイン入りの「hage.hoge.com」が入っていなかった。
あたりめーだよバーロー、と言われるかもしれない。
しかし、DBが上がるのにListenerだけ上がってこないのが納得いかない次第だった。