オラクルクライアントからオラクルサーバに接続できない原因を、
私が経験した実例を元にいくつかあげてみました。
サーバ側に問題がある場合
● オラクルサーバが起動していない
データベースが起動していない場合は、管理者に依頼するなどしてオラクルを起動してください。ディスク容量が一杯になってオラクルの起動に失敗していたなんて事もあります。 Windowsサーバの場合はサービスを開始すればOKです。
● リスナーが起動していない
リスナーを起動してください。Windowsサーバの場合はListenerサービスを再起動すればOKです。
● リスナーを作成していない
オラクルクライアントからデータベースサーバに接続するにはリスナーが必要なので、リスナーを作成してください。以下記事を参考にしてください。
● ポートを開放していない
オラクルサーバ(リスナー)はデフォルトで1521番ポートでクライアントからの接続を受け付けますが、初期状態ではサーバのファイアウォールでブロックされ接続できないのでポートを開ける必要があります。以下サイト記事を参考に、サーバの1521番ポートを開けてください。
⇒ [Windows] 任意のポートを開放する | ぱそまき(外部サイト)
明示的にポート番号を1521以外に設定している場合は読み替えてください。
● ウィルスセキュリティソフトのファイアウォールで通信がブロックされている
Windowsのファイアウォールのポートが解放してあっても、ウィルスセキュリティソフトのファイアウォールでブロックされているパターンもよくあります。 一旦、ウィルスセキュリティソフトのファイアウォールを無効にして繋がるか試してみてください。
サーバ内のsqlplusからは接続できる場合はこの原因である可能性が高いです。
クライアント側に問題がある場合
● tnsnames.oraの設定が間違っている
tnsnames.oraは接続するオラクルサーバの情報を記載したファイルです。以下記事を参考に設定を確認してください。
● オラクルクライアントがインストールされていない
初心者にはありがちですが、そもそもオラクルクライアントがインストールされていなかったなんて事もあります。データベース管理者に確認するなどしてオラクルクライアントインストールメディアからインストールしてください。
コマンドプロンプトで「sqlplus」を実行して、コマンドが無いと言われる場合はオラクルクライアントがインストールされていません。
● 接続文字列が間違っている
接続文字列(@の後ろの文字列)が間違っていたなんてこともよくあります。接続文字列がtnsnames.oraに設定された文字列であることを確認してください。
コマンドプロンプトから「tnsping <接続文字列>」を実行して、表示された結果の最後に「OK(XXミリ秒)と表示されれば接続できています。」
⇒ [ORACLE] ネットワークの接続テストを行う(tnsping)
ネットワークに問題がある場合
● サーバとクライアントマシンが別ネットワーク上にある
サーバもクライアントマシンも同じネットワーク上になければ接続することはできません。
クライアントマシンからサーバにpingが通る事を確認してください。
● LANケーブルが抜けている
LANケーブルの爪が折れていて半分抜け掛かっていたため、つながらないなど結構ありがちです。
備考
- つながらない時は必ず何かしらの問題が存在します。
自身の思い込みが原因の場合も多いので、打ち込んだコマンドや設定した内容が間違っていないかを1文字ずつ念入りに確認してみてください。