ホームページ  >  記事  >  データベース  >  【まとめ】oracle監視サービスが起動できない原因と解決策

【まとめ】oracle監視サービスが起動できない原因と解決策

PHPz
PHPzオリジナル
2023-04-04 09:25:3913079ブラウズ

近年、インターネット技術の急速な発展に伴い、データベースの活用がますます広がっています。 Oracle データベースは広く使用されているデータベースですが、使用中にはさまざまな問題も発生します。最も一般的な問題の 1 つは、Oracle を開始するリスニング サービスを開始できないことです。この記事では、この問題の原因と解決策について詳しく説明します。

1. 問題の原因

Oracle データベースのリスニング サービスは非常に重要なコンポーネントであり、Oracle データベース インスタンスとクライアントの間の橋渡しとなります。リスニング サービスを開始できない場合、Oracle データベース インスタンスに接続できなくなります。では、この問題の原因は何でしょうか?

  1. リスニング サービスのステータスが間違っています: Oracle データベースでは、リスニング サービスのステータスは開始、停止、ハングの 3 種類に分類されます。リスニングサービスのステータスが正しくない場合、リスニングサービスが起動できない可能性があります。
  2. ポート占有: Oracle リスニング サービスで使用されるデフォルトのポートは 1521 です。このポートが占有されている場合、Oracle リスニング サービスは開始されません。
  3. TNS 名前解決エラー: TNS は、Oracle データベースの命名方法であり、クライアントがデータベースに接続するアドレスを定義するために使用されます。 TNS の名前解決が正しくない場合、リスニング サービスの開始に失敗する可能性があります。
  4. リスニング サービスの構成エラー: リスニング サービスの構成ファイルにエラーがある場合、リスニング サービスの開始に失敗する可能性もあります。

2. 問題の解決策

問題の原因を特定したら、対応する解決策を講じる必要があります。以下では、この問題を解決するいくつかの方法を紹介します。

方法 1: リスニング サービスのステータスを確認する

まず、リスニング サービスのステータスを確認する必要があります。 Windows オペレーティング システムでは、次の手順でリッスン サービスのステータスを確認できます。

  1. 「コマンド プロンプト」ウィンドウを開きます。
  2. 「lsnrctl status」コマンドを入力し、「Enter」キーを押します。

次の情報のような出力が表示された場合は、リスニング サービスが開始されています:

LSNRCTL for 64-bit Windows: Version 11.2.0.2.0 - Production on 08- JAN -2022 22:16:29
Copyright (c) 1991, 2010, Oracle.All Rights Reserved.
接続先 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT) = 1521)))

LISTENER のステータス

エイリアス LISTENER_VERSION_1
64 ビット Windows のバージョン TNSLSNR: バージョン 11.2.0.2.0 - Production
開始日 28 -DEC- 2021 20:18:39
稼働時間 11 日 1 時間 57 分 50 秒
トレース レベル オフ
セキュリティ ON: ローカル OS 認証
SNMP OFF
リスナー パラメータ ファイル C :\app \oracle\product\11.2.0\dbhome_2\network\admin\listener.ora
リスナー ログ ファイル C:\app\oracle\diag\tnslsnr\DESKTOP\Test\alert\log.xml
リスニング エンドポイントの概要 ...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
サービスの概要...
サービス "ORCL" には1 つのインスタンス。
インスタンス "ORCL"、ステータス READY、このサービスのハンドラーが 1 つあります...
サービス "ORCLXDB" には 1 つのインスタンスがあります。
インスタンス "ORCL" 、ステータス READY 、このサービスのハンドラが 1 つあります...
サービス "testdb" にはインスタンスが 1 つあります。
インスタンス "testdb"、ステータス READY、このサービスのハンドラが 1 つあります...
サービス "testxdb" には 1 つのインスタンスがあります。
インスタンス "testdb"、ステータス READY、このサービスのハンドラーが 1 つあります...
コマンドは正常に完了しました。

次のような出力が表示された場合は、リッスン サービスが開始されていません:

LSNRCTL for 64-bit Windows: バージョン 11.2.0.2.0 - 実稼働日 08-JAN-2022 22 :17:43
Copyright (c) 1991, 2010, Oracle.All Rights Reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))に接続中)
TNS -12541: TNS: リスナーなし
TNS-12560: TNS: プロトコル アダプター エラー
TNS-00511: リスナーなし
64 ビット Windows エラー: 61: 不明なエラー
解決策:待ち受けサービスが起動中の場合は、操作は必要ありません。リスニングサービスの状態が停止または一時停止の場合は、リスニングサービスを開始する必要があります。

Windows オペレーティング システムでは、次の手順で Oracle リスニング サービスを開始できます。

  1. 「コマンド プロンプト」ウィンドウを開きます。
  2. 「lsnrctl start」コマンドを入力し、「Enter」キーを押します。

方法 2: ポートの占有を確認する

Oracle リスニング サービスを開始できない場合は、ポートが占有されている可能性があります。次の手順でポートの占有状況を確認できます。

  1. 「コマンド プロンプト」ウィンドウを開きます。
  2. 「netstat -an」コマンドを入力し、「Enter」キーを押します。
  3. 出力情報でポート番号 1521 の行を探します:

TCP 127.0.0.1:1521 0.0.0.0:0 LISTENING

何か表示された場合上記の出力情報は、ポートが占有されていることを示しています。

解決策: 次の手順でポートを解放できます:

  1. 「コマンド プロンプト」ウィンドウを開きます。
  2. 「taskkill /pid [PID] /f」コマンドを入力して「Enter」キーを押します。[PID] はポートを占有しているプロセス ID です。たとえば、プロセス ID が 1234 の場合、次のコマンドを入力できます:

taskkill /pid 1234 /f

  1. ポート占有率を再度チェックして、ポートがリリースされました。

方法 3: TNS 名前解決を確認する

「lsnrctl status」コマンドの実行時に次の出力が表示される場合:

LSNRCTL (64 ビット Windows の場合):バージョン 11.2.0.2.0 - 実稼働日 08-JAN-2022 22:17:43
Copyright (c) 1991, 2010, Oracle.All Rights Reserved.
接続中 (DESCRIPTION=(ADDRESS=(PROTOCOL= TCP)(HOST=127.0.0.1)(PORT=1521)))
TNS-12541: TNS: リスナーなし
TNS-12560: TNS: プロトコル アダプタ エラー
TNS-00511: リスナーなし
64 ビット Windows エラー: 61: 不明なエラー

これは、TNS 名前解決エラーが原因である可能性があります。

解決策: 次の手順に従って、TNS 名前解決を確認できます。

  1. Oracle クライアントの「tnsnames.ora」ファイルを開きます。
  2. TNS 名前解決が正しいことを確認してください。たとえば、次の TNS 名前解決の場合:

ORCL =
(DESCRIPTION =

(ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = orcl)
)

)

ここでの TNS 名は「ORCL」です。

方法 4: リスニング サービスの構成を確認する

上記のどの方法でも問題が解決しない場合は、リスニング サービスの構成が正しくないことが原因である可能性があります。次の手順でリスニング サービスの構成を確認できます。

  1. Oracle リスニング サービスの構成ファイル (listener.ora ファイル) を開きます。
  2. 設定ファイルの構文が正しいかどうかを確認してください。
  3. 必要に応じて、構成ファイルをバックアップ ファイルから復元できます。

概要

Oracle の listen サービスが開始できないというよくある問題です。この問題にはさまざまな理由があり、リスニング サービスの不正なステータス、ポート占有、TNS 名前解決エラー、リスニング サービスの不正な構成などが考えられます。この問題を解決するには、リスニング サービスのステータスを確認し、ポート占有を確認し、TNS 名前解決を確認し、リスニング サービスの構成を確認します。この問題を解決するには、特定の状況に応じて異なるアプローチが必要です。この記事の導入により、読者は Oracle のリスニング サービスを開始できない問題をより適切に解決できると思います。

以上が【まとめ】oracle監視サービスが起動できない原因と解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。