web-dev-qa-db-ja.com

ORA-12518:TNS:リスナーはクライアント接続をハンドオフできませんでしたOracle XE 11.2 x64

私はOracleに非常に苛立ち始めています。そこで、Oracle XE 11.2 64ビットとODAC121012_x64をインストールしました。

リスナーを開始できます。 tnsping xeを実行できます。しかし、sqlplus経由でシステムとして接続しようとすると、次のようになります。

ERROR:
ORA-12518: TNS:listener could not hand off client connection

これが私の設定ファイルです:

tnsnames.ora:

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(Host = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 

listener.ora:

SID_LIST_LISTENER =
  (SID_LIST =
     (SID_DESC =
                           (SID_NAME = XE)
       (Oracle_HOME =  C:\oraclexe\app\Oracle\product\11.2.0\server)
     )

    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(Host = 127.0.0.1)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

sqlnet.ora:

# This file is actually generated by netca. But if customers choose to 
# install "Software Only", this file wont exist and without the native 
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES = (NTS)

ヘルプが非常に必要であり、さらに感謝されます!

1
greengold

問題を理解して修正するには、listener.log、アラートログ、トレースファイルなどの関連ログを確認する必要があります。

考えられる原因と解決策:

  • リスナーの問題:

次のコマンドを実行して、エラーメッセージが表示されず、リスナーが稼働していることを確認します。

lsnrclt status

リスナーがダウンしている場合は、次の点を確認してください。この問題のトラブルシューティングに役立つ場合があります。

  1. ネットワークエラーである可能性があります。ネットワークログでイベントログを確認し、修正してください。

  2. サービスが停止したか、開始しようとしたときにエラーが発生しました:start--->run--->services.msc Oracleリスナーサービスの検索はOracleInstancenameのようにする必要があります。開始に失敗した場合は、リスナーエラーの内部で例外がスローされ、 Windowsエラー番号。そのエラーを提供してください

リスナーの回避策:

次のパラメーターをリスナーに追加します。

DIRECT_HANDOFF_TTC_LISTENER=OFF

  • データベースの問題:

1.データベースサーバーのメモリは新しい接続に十分でした

  1. 次のようなデータベース接続パラメーター:専用サーバー、プロセスパラメーターまたはv$resource_limit where resource_name=’processes’からのクエリを確認してください。チェックされたmax_utilizationはLimit_valueまたは共有サーバー未満である必要があります。large_pool_sizeを確認するか、ディスパッチャがすべての接続に十分であることを確認してください。
2
Ahmad Abuhasna

リスナーサービスを実行しているユーザーが管理者グループの一部ではなかったため、Windows(Oracle 11g)でこの問題が発生しました...管理者グループに追加すると、すべて問題ありませんでした。

1
gcr

Systemd 228以降のLinuxシステムを使用している場合、ORA-12518またはTNS-12518が発生する可能性があります。 Systemdはデフォルトでcgroupあたりのスレッド数を512に制限しています。この制限は、接続数が多い場合、または複数のインスタンスまたはRACがある場合に簡単に発生する可能性があります。

最も簡単な修正:/etc/systemd/system.confを編集して設定

DefaultTasksMax=infinity
0
Flo