イマドキOracle7

同じ業務アプリケーションから、管理の異なるデータを管理するため複数インスタンスを切り替えて使用していた顧客から、急にDBに繋がらなくなったという連絡が。

このAP、1組織1DBという前提で作成されているようで、Net Service名決め打ちで作られている。
Oracleは1つのクライアント上では同じネットサービス名を複数定義できないため、このように面倒なことをして運用して貰っている。

SQL*Net Configuration Assistantを使って、インスタンスを切り替えて貰っていたのだが、数回切り替えたところで繋がらなくなったらしい。
幸い、連絡があった翌日に別件で打ち合わせる事になっていたので、そのときに見せて貰うことに。

・・・結論としては、tnsnames.oraの設定ミスだったわけだが、問題はSQL*Net Configuration Assistantの挙動にあった。
SQL*Net Configuration Assistantの起動時に読み込んだtnsnames.oraの内容が、修正を行っても設定確認の画面には反映されていないのである。
解決方法は簡単、各インスタンス用のtnsnames.oraを作成し、間違えないように設定済のtnsnames.oraを、都度、バッチファイルでコピーするという運用にして貰った。