Oracle 接続できない…よくある事例と対処法

 2018.07.09  株式会社システムインテグレータ

SI Object Browser(以下、OB)に関するお問い合わせでよくあるのが、今回のタイトル「Oracleに接続できない」というものです。

ひとくちに「接続できない」と言ってもいくつかの原因があり、それぞれ対処法が異なります。エラーメッセージによっては原因が今一つ伝わらず、調査に時間がかかってしまうことも・・・

今回はOracle接続の仕組みと照らして、よくある事例と対処法をご紹介してみたいと思います。

Oracle 接続の仕組み

まずはOracle接続の仕組みを確認してみましょう。

下の図は、OBのログイン画面で認証情報を入力し、[接続]ボタンを押下した後の流れを簡単に表したものです。

Oracle 接続できない…よくある事例と対処法 1

- 図1. Oracle接続(リモート接続)の仕組み -

OBで[接続]ボタンを押下すると、

 ① Oracle Clientを参照・経由し、

 ② ネットワーク通信、サーバ側のListenerを介して

 ③ Oracle Databaseに認証、接続を確立

 ④ 接続確立した後はListenerを介さずDatabaseClientOBの通信

という流れになります。 

よって、エラーの原因はこの流れのどこかに問題があるといえます。
それでは、よくある事例と対処法を見ていきましょう。 [RELATED_POSTS]

①OBがOracle Clientを参照する際のエラー

OBはOracle Clientが必要なアプリケーションですのでOracle Clientを参照することができない場合、

以下のエラーを表示します。

いまさら聞けない Oracleの基本 [中級編]
新規CTA

Oracle 接続できない…よくある事例と対処法 2

- 図2. Oracle Clientの参照エラー -

よくある事例

対処法

Oracle Clientがインストールされていない

Oracle Clientをインストールする

OBがORACLE_HOMEを正しく認識できていない

OBのツールメニュー > オプション > 詳細設定タブ > ORACLE_HOMEOracle Clientのインストールパスを設定する

OBとOracle Clientbit(32bit/64bit)が異なる

OBとOracle Clientbitを同一にする


2つ目と3つ目については、以前の記事「Oracle Instant ClientでOBを使ってみよう」で詳しくご紹介しています。

また、1つ目についてもOracle Instant Clientで代用することが可能ですので、併せてご一読ください。


②Oracle Client→Listener間のエラー

Oracle ClientからListenerへはネットワーク通信が発生します。

クライアントからサーバへ到達することができない、Oracle Clientにおいて宛先の情報が正しく記載されていない、あるいはListenerに問題がある場合に接続エラーが発生します。

Oracle 接続できない…よくある事例と対処法 3

- 図3. ネットワーク不通時のエラー

Oracle 接続できない…よくある事例と対処法 4

- 図4. tnsnames.oraの記述誤りによるエラー -

Oracle 接続できない…よくある事例と対処法 5

- 図5. Listenerが起動していない場合のエラー -

よくある事例

対処法

ネットワーク疎通に問題があり、サーバアクセスできない

pingが通るか、ファイアウォールにより接続を拒否されていないかを確認し対応する

Oracle Client側の設定(tnsnames.ora)に誤りがあり、サーバアクセスできない

クライアント側のtnsnames.oraを開き、接続対象の記述を修正する

Listenerが起動していない、あるいは構成に問題がある

Listenerを起動する、listener.logを確認し対応する

 お問い合わせいただく中では、サーバアクセスに関する問題であることが多いようです。

切り分けの手段としてはpingのほかに、Oracle Client付属のtnspingでの疎通確認やDB管理者によるlistener.logの確認が挙げられます。

③Listener→Oracle Database間のエラー

Listenerまで到達すると、Oracle Databaseへ接続するための認証プロセスが実行されます。

よって、認証における問題やそもそもOracle Databaseがオープンしていないなどの原因が挙げられます。

Oracle 接続できない…よくある事例と対処法 6

- 図6. パスワードが間違っている場合のエラー -

Oracle 接続できない…よくある事例と対処法 7

 - 図7. アカウントがロックされている場合のエラー -

 Oracle 接続できない…よくある事例と対処法 8

- 図8. Oracle Databaseがオープンしていない場合のエラー -

よくある事例

対処法

ユーザー名またはパスワードに誤りがある

正しい情報を入力する

Oracle Database 11g以降の場合、既定で大文字/小文字を区別する

ユーザーがロックされている、パスワードが期限切れである、あるいは権限が不足している

ALTER USER文、GRANT文を実行する

Oracle Databaseがオープンしていない

Oracle Databaseをオープンする

ListenerからOracle Database間のエラーについては、基本的にDB管理者に対応を依頼することが多くなるかと思います。

③接続確立後のエラー

接続確立後にエラーが発生するというケースはネットワークやOracle Database、サーバの障害が考えられます。

Oracle 接続できない…よくある事例と対処法 9

- 9. 接続後にネットワーク/接続DBを停止した場合のエラー -
 

よくある事例

対処法

ネットワーク構成機器のタイムアウト設定やネットワークのダウンにより通信ができなくなった

ネットワーク接続に問題がないかを確認する

サーバの障害や意図しない誤操作によりOracle Databaseのプロセスが停止した

インスタンスを起動する、Oracle12cかつCDB構成の場合は対象PDBをオープンする

こちらも、システム管理者やDB管理者での対応が主となります。
 

まとめ

いかがでしたか? 

今回はOracle Databaseに接続する場合のよくある事例と対処法についてご紹介しました。

掲載したスクリーンショットはOB上で表示されるものですが、システム開発においてプログラムからOracle Databaseに接続できない、という場合でも同様のメッセージが表示されると思います。

中々切り分けは難しいですが、一つずつ順を追って確認していくことで解決につながります。
OBの利用に限らず、ぜひ参考にしてください。

いまさら聞けない Oracleの基本

RELATED POST関連記事


RECENT POST「【OBトコ】OBの基本的な使い方」の最新記事


【OBトコ】OBの基本的な使い方

【ChatGPTでSQL整形!】SI Object Browser for Oracle 23.1の新機能

【OBトコ】OBの基本的な使い方

【待望のセミコロン対応!】SI Object Browser for Oracle 23の新機能

【OBトコ】OBの基本的な使い方

SI Object Browserの基本がマスターできるチュートリアル

【OBトコ】OBの基本的な使い方

痒い所に手が届く!SI Object Browser 21.2.5の新機能

Oracle 接続できない…よくある事例と対処法
新規CTA
ブログサイドバー_トライアル申込
ブログ購読のお申込み

RANKING人気資料ランキング

RANKING人気記事ランキング

RECENT POST 最新記事