Oracle 起動に関するエラー

ORA-12560: TNS: プロトコル・アダプタ・エラーが発生しました

この ORA-12560: 〜エラーは、一般的にプロトコル・アダプタ・エラーというより準備・設定エラーとした方が良いのではないかと思うくらいに多くの場合はケアレスミスによるものであることが多い。

原因

環境変数が正しく設定できていない。見落としがちなのが環境変数値ではなく、環境変数名を微妙に間違えることである。
例えば export ORACEL_SID=間違えやすそうなSID 、値に気を取られてスペルミスに気づかないことが少なくない。 (正しくは ORACLE_SID=<SID>) .〜rc ファイルなどに書いておいて、そのファイルは正しいというビットが立ってしまうと、 設定ミスの発見までに相当時間がかかることもある。

対応

環境変数 について設定するステートメントにエラーがないか、 必須項目の値は設定しているか、値には使用しているバージョンの正しい値、パスに設定されているかを良く確認する。

原因 (Windows 限定)

Windows プラットフォームの場合、Oracle のインスタンスは Windows サービスの上で稼動する。 Oracle の起動時にサービスが起動していないとアイドルインスタンスにも接続できず、ORA-12560: 〜エラーがでる。

対応

Oracle インスタンスの起動と停止 の Windows の項目を参考にして SID に対応するサービスを起動する。
OracleService<SID> という名前のサービスである。

原因 (Windows 限定)

DBCA からデータベースの削除を行なうと ORACLE_SID の設定が消去されてしまう。

対応

ORACLE_SID レジストリの設定(削除されているので追加になる)の方法を知っていれば設定し、設定に自信がなければ環境変数から ORACLE_SID を設定する。

原因 (Windows への再インストール時にリスナーが起動しない)

以前と異なるディレクトリにインストールしたときにリスナーサービスを稼動したまま再インストールした 可能性がある。その場合、正常にインストール完了していても以下のエラーが発生する可能性がある。

tnslsnrを起動しています。お待ちください...
Failed to start service, error 3.
TNS-12560: TNS: プロトコル・アダプタ・エラー
 TNS-00530: プロトコル・アダプタ・エラーです。

イベントビューアのリスナーの起動ログに「指定されたパスが見つかりません。」と出力されていれば、その確率は高い

対応

本番機ならば Oracle のサービスをすべて停止したことを確認してから再インストールする。

以下の方法は何が起こっても自己責任でお願いします。
テスト機であればサービスのプロパティから OracleOra〜TNSListner の実行ファイルのパスを確認する。 レジストリエディタで、そのパスを検索して正しいパスに書き換える。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ OracleOraDb10g_home1TNSListener みたいな名前の ImagePath というエントリ(マルチホームの場合には違うエントリを書き換えないように)

レジストリを直接変更する以外にもコマンドプロンプトから sc コマンド(サービスコントロール)で変更する方法もある。
書式: sc <server> [command] [service name] <option1> <option2>
実行例 (qc:設定の確認 / config:書き換え)

C:\> sc qc OracleOraDb10g_home1TNSListener
C:\> sc config Oracle〜略〜TNSListener  binPath=  "C:\oracle\〜略〜\TNSLSNR"


関連事項

一覧ページへ戻る

OTN (Oracle Technology Network)によるエラーメッセージによる情報だけでは、対処に困ったエラーについてのプラクティスです。
ベスト・プラクティスというわけではないので、書いてあることに固執しないで広い視野でエラー対応してください。

ORA-12560の関連トピックス

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ 会員制(無料)の公式技術サイト