7

bash シェルを使用して、Linux ボックスで Oracle XE DB の TNS リスナーを開始しているときに問題に直面しました。

LSNRCTL> start
Starting /oracle/product/11.2.0/xe/bin/tnslsnr: please wait...

TNS-12537: TNS:connection closed
 TNS-12560: TNS:protocol adapter error
  TNS-00507: Connection closed
   Linux Error: 29: Illegal seek
LSNRCTL> exit

私はインターネットで与えられたさまざまな解決策を試してみましたが、最終的に投稿を参照した後、問題は解決しました - https://dba.stackexchange.com/questions/23308/linux-error-29-illegal-seek-in-lsnrctl-for -linux-バージョン-11-2

私の場合の解決策は次のとおりです。

export LD_BIND_NOW=1

Oracle XE DB を複数の Linux ボックスにインストールしましたが、この問題に直面したのは 1 つのボックスだけでした。この変数とは何ですか? また、不正なシークの問題をどのように解決しますか?

私のLinuxボックスの詳細は次のとおりです。

bash-4.1$ uname -a
Linux <hostname> 2.6.39-100.5.1.el6uek.x86_64 #1 SMP Tue Mar 6 20:26:00 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
4

3 に答える 3

1

ダイナミックローダーの操作の制御

動的ローダーが応答するさまざまな環境変数があります。これらのほとんどは、平均的なユーザーよりも ldd に使用され、さまざまなスイッチを使用して ldd を実行することで最も便利に設定できます。それらには以下が含まれます

LD_BIND_NOW --- 通常、関数は呼び出されるまでライブラリで「検索」されません。このフラグを設定すると、ライブラリのロード時にすべての検索が行われるため、起動時間が遅くなります。プログラムをテストして、すべてがリンクされていることを確認する場合に便利です。

簡単に言えば、LD_BIND_NOW 変数が 1 に設定されている場合、C、C++ では、起動時にロードする代わりに、ライブラリの遅延ロード (つまり、必要なときにライブラリをロードする) または使用時に発生します。

ソフトウェアが混合モードで動作する場合、これも設定されます。

あなたの場合かもしれませんが、それは起動時の問題であり、このライブラリは使用されませんでした...!

于 2013-09-26T23:45:16.200 に答える
1

今日、私は同じ問題を経験しました。この問題は、バイナリtnslsnr実行可能ファイル内のバグのようです。

私が持っていた解決策は、ホスト名をlistener.oraのIPアドレスに変更することでした/oracle/product/11.2.0/xe/network/admin/listener.ora

# listener.ora Network Configuration File:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /oracle/product/11.2.0/xe)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

他の回答で説明されているように、ファイルを調整し/etc/hostsて localhost ステートメントをオーバーライドしても機能しません。

ホスト名の代わりに IP アドレスを使用することが推奨されるかどうかはわかりませんが、私にとってはそれでうまくいきます。

于 2015-11-17T14:02:12.643 に答える
0

/etc/hosts次の行をファイルに含めます。

127.0.0.1 localhost.localdomain localhost
于 2015-08-05T12:03:39.723 に答える