web-dev-qa-db-ja.com

LinuxクライアントにOracle 11gサーバーをインストールせずにtnsnames.oraとsqlplusクライアントを使用する

LinuxクライアントにOracle 11gサーバーをインストールせずに、SQLplusクライアントとtnsnames.oraを使用してリモートOracleサーバーへの接続を作成したい。私は、リモートのOracleサーバーからレポートを生成するために、debianおよびbashスクリプトを使用しました。これは可能ですか?

SQLplusクライアントをインストールしようとしましたが、tnsnames.oraファイルが見つかりません。

可能であれば、tnsnames.oraファイルを使用するようにSQLplusクライアントを構成する例を教えてください。

「基本インスタントクライアント」と「sqlplus追加」パッケージをインストールしました。 sqlplus user/password@Host:port/servicenamesで正常に接続できます。 10個を超えるインスタンスで* .sqlファイルを実行するbashスクリプトを作成したい。したがって、sqlplus user/pw@instanceで接続できる場合は、単純に見えます。それは可能ですか?

更新:tnsnames.oraファイルを/ etcにコピーすることで解決しました。

#3の このページ を参照してください

おかげで: Wernfried DomscheitEdStevensPaul White

2
mssadewa

最初に、_tnsnames.ora_ファイルを使用するようにOracleに指示する必要があります。このオープン/作成ファイル__sqlnet.ora_の場合、次のように行を挿入します。

_NAMES.DIRECTORY_PATH = (TNSNAMES)
_

他の解決方法を追加できます。 「LDAP」、 DIRECTORY_PATH を参照してください。エントリtnsnamesは、_tnsnames.ora_ファイルを使用するようにOracleに指示します。ドキュメントで見たように、NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname)がデフォルトなので、この場合、実際には_sqlnet.ora_ファイルをスキップできます。

これら2つのファイルの場所に関しては、答えは簡単ではありません。異なるアプリケーションが異なるフォルダを検索し、優先順位のルールが異なる場合があります。

次のフォルダが検索パスの一部である可能性があります:

  • 環境変数_TNS_ADMIN_で定義されたフォルダー
  • フォルダ_${Oracle_HOME}\network\admin_

    ファイルが別のフォルダーにある場合は、この場所にフォルダーを指すシンボリックリンクを配置することをお勧めします。

  • 現在のフォルダ
  • アプリケーションバイナリが保存されるフォルダー

... Windowsの場合(情報のみ)、これらも

  • レジストリエントリ_HKLM\SOFTWARE\Oracle\KEY_{Oracle_HOME_NAME}\TNS_ADMIN_で定義されたフォルダ。 _HKLM\SOFTWARE\Wow6432Node\Oracle\KEY_{Oracle_HOME_NAME}\TNS_ADMIN_
  • _machine.config_、それぞれ。 _web.config_ファイル、セクション_Oracle.manageddataaccess.client/version/settings/setting/@name="tns_admin"_
1

tnsnames.oraは何にも「付随」しません。キーは名前解決ファイルにすぎないため、そのファイルではありません。また、sqlplusはCLIアプリケーションにすぎません。 Oracleデータベース(またはANYデータベース)に接続する場合は、少なくとも特定のデータベース製品用のクライアントソフトウェアが必要です。 Oracleの場合、Oracleクライアントをダウンロードしてインストールする必要があります。最も簡単なのは、ここからダウンロードできる「インスタントクライアント」です http://www.Oracle.com/technetwork/database/features/instant-client/index-097480.html 。完全な「Admin」または「Runtime」クライアントが必要な場合は、edelivery.comからダウンロードして、クライアントソフトウェアのみを選択します。ライセンス条項に注意してください。

3
EdStevens