【備忘記録】Oracle SQL Developerで接続出来なくなった場合の解決方法

昨日、SQL Developerに接続したら、接続エラーになる事象が発生しました。

その時の解決方法を備忘記録として記載しておきます。

自宅の環境ではよく発生している事象ですが忘れないようにメモ。

 

1,発生した事象の背景

今まで接続出来ていたOracleデータベースに接続出来なくなりました。パスワードも間違えていない。特に設定を変更した覚えもなく。

 

2,思い当たる原因

数日前にPCの接続方法を有線LAN接続から無線LAN接続に変更しました。

これが原因だと気が付くまでに少し時間がかかりました。

 

3,原因切り分け1

まずは、プロセス確認。

環境は、Windows10です。「PC」を右クリックで「管理」→「サービスとアプリケーション」→「サービス」を選択して、サービスの一覧を表示。

Oracleに必要なプロセスを確認し、プロセスの落し上げ(再起動)を実施しました。

f:id:rdbsql:20200913204548p:plain

Oracleプロセス

Oracleの名前ではじまるプロセスは、上記の4つになります。

私は、4つともプロセスの再起動を実施しましたが、すべては、必要なかったかもしれません。

その後、SQL Developerを再起動してみましたが、症状に変わりはなく、接続できない状態でした。

 

4,原因切り分け2

接続しているホスト名がIPアドレスで接続されている場合、IPアドレスが変更になったことが原因の可能性があります。

有線LAN接続では、固定IPに設定していましたが、コマンドプロンプトで確認したら設定されているIPアドレスDHCPで自動割り当てになり、変更されていました。

早速、Oracle SQL Developerの接続先のIPアドレスを変更して接続を試みましたが、接続できませんでした。

この時、SQLPlusからは、SYTEMアカウントから正常に接続出来ていることを確認しており、Oracleのサービスは、正常に動作していることを確認しており、Oracle SQL Developerでの事象であることがわかりました。

 

5,原因切り分け3

これで接続できない原因は、ほぼ特定できました。

Oracleの設定ファイル情報が古いIPアドレスになっていることが原因ではないかと予想して、設定ファイルを確認したら、やはり設定ファイルのIPアドレスが古いものになっていました。新しいIPアドレスに変更して、保存。再度、プロセスを再起動。

その後、Oracle SQL Developerを再起動→再接続して、接続出来ました。

 

設定ファイルは、私の環境では、以下にありました。

D:\app\oraclehome\product\12.2.0\dbhome_2\network\admin

listener.ora

tnsnames.ora

 

6,結論と対策

本来の対策としては、IPアドレスを固定に設定しておくことが無難です。

ISPによっては、無線LANの場合、固定IPをうまく設定できない場合もあります。

私もそうでした。

サーバである以上、IPアドレスが変わることは、本来想定外であるからです。

DHCPでも同じIPアドレスを取得出来たり、PCを再起動しなければ、問題ないかもしれませんが、WinodwsアップデートなどでPCの再起動が必要になるケースも多々、あると思います。その場合、運悪く変更になってしまう可能性もあります。

私の場合、Oracleデータベースに接続できなくなった場合、ほぼ上記の手順を順番に実施することで解決できています。

また、接続先のホスト名がIPアドレスでなくても、何かの理由でホスト名が変更になると接続出来なくなります。

そのため、IPアドレスを固定化して、hostsファイルにホスト名を記入しておけば、常にその名前で接続できます。

IPアドレスが変わった場合も、hostsのIPアドレスを変更するだけで接続が出来ますのでいくらか手間が省けると思います。

 

以上です。