sql >> データベース >  >> RDS >> Oracle

関連するtnsnames.oraファイルの場所を特定する

    Oracleによると、これらの場所でtnsnames.oraが検索されます。 、それぞれ。 sqlnet.ora およびldap.ora

    1. 現在の作業ディレクトリ(PWD / CWD)にあるOracleNetファイル
    2. TNS_ADMIN セッションで定義されるか、ユーザー定義のスクリプトによって定義されます
    3. TNS_ADMIN グローバル環境変数として定義
    4. TNS_ADMIN レジストリで定義されている
    5. %ORACLE_HOME/network|net80\adminにあるOracleNetファイル (Oracleのデフォルトの場所)

    ただし、各アプリケーション/ドライバーがこのリストに従っているかどうかはわかりません。このリストは、Oracle9iを参照するOracleDocument 111942.1から取得したため、古くなっている可能性があります。

    Database Net Services管理者ガイドでは、順序は

    です。
    1. TNS_ADMIN 環境変数によって定義されます
    2. TNS_ADMIN レジストリで定義されている(TNS_ADMINの場合 環境変数が存在しません)
    3. %ORACLE_HOME%/network/admin ディレクトリ(TNS_ADMINの場合 環境変数が存在しません)

    TNS_ADMINの環境変数を定義することをお勧めします 1つのtnsnames.oraファイルのみを使用します。安全を確保するために、レジストリ値も確認してください。

    ファイルがない場合 %ORACLE_HOME%\network\adminにあります 、シンボリックリンクを作成することをお勧めします-非常ににあるだけです 安全面、例: mklink /d %ORACLE_HOME%\network\admin c:\Oracle\common\settings\admin

    もう1つの注意点として、tnsnames.oraファイルを「再生」する必要はありません。 MicrosoftSysinternalsのProcessMonitorを使用すると、各ファイルアクセスを監視できます。つまり、フィルターはPath contains tnsnamesになります。

    更新

    自分のマシンでテストを実行すると、次の順序になります。

    1. 環境変数TNS_ADMIN
    2. レジストリキーHKEY_CURRENT_USER\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
    3. レジストリキーHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN 、それぞれ。 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN

      -> TNS_ADMINの場合のみ 環境変数が設定されていません。

    4. %ORACLE_HOME%\network\admin
    5. 現在のディレクトリ(アプリケーションが配置されているディレクトリとは異なる場合があります)
    6. アプリケーションが配置されているフォルダ

    アップデート2

    明らかに修正検索はありません。プロバイダー/ドライバーによって異なります。たぶんそれはOracleのバージョンにも依存します。

    たとえば、 Oracle HTTP Server TNS_ADMINを読み取ります opmn.xmlからの設定 構成ファイル。

    別の例として、ODP.NETマネージドドライバ(Oracle.ManagedDataAccess)のベータ版 バージョン、この注文はOracleManagedおよびTNSNamesで見つかりました:

    1. <oracle.manageddataaccess.client>の下の「dataSources」セクションにあるデータソースエイリアス .NET構成ファイルのセクション(つまり、machine.configweb.configuser.config
    2. tnsnames.oraのデータソースエイリアス TNS_ADMINで指定された場所にあるファイル .NET構成ファイル内。
    3. tnsnames.oraのデータソースエイリアス .exeと同じディレクトリにあるファイル 。
    4. tnsnames.oraのデータソースエイリアス %TNS_ADMIN%に存在するファイル
      %TNS_ADMIN% は環境変数の設定です。
    5. tnsnames.oraのデータソースエイリアス %ORACLE_HOME%\network\adminにあるファイル
      %ORACLE_HOME% 環境変数設定です)。

    公式ドキュメント(12cリリース4(12.1.0.2.4))には、次のように記載されています。

    1. dataSourcesのデータソースエイリアス <oracle.manageddataaccess.client>の下のセクション .NET構成ファイルのセクション(つまり、machine.configweb.configuser.config
    2. tnsnames.oraのデータソースエイリアス TNS_ADMINで指定された場所にあるファイル .NET構成ファイル内。場所は、絶対ディレクトリパスまたは相対ディレクトリパスのいずれかで構成できます。
    3. tnsnames.oraのデータソースエイリアス .exeと同じディレクトリにあるファイル 。

    ただし、ODP.NETマネージドドライバー(4.121.2.0)で行ったいくつかのテストに基づくと、%ORACLE_HOME%\network\adminが必要です。 およびTNS_ADMIN 環境変数を考慮に入れます。ドキュメントのようなロックは100%正しくありません。



    1. ストアドプロシージャを作成せずに、Oracleで複数の行を1つに連結するにはどうすればよいですか?

    2. システム統計関数を使用してSQLServer統計情報を取得する方法

    3. 11パフォーマンスチューニングを改善するためのSQLServerインデックスのベストプラクティス

    4. バイナリ文字列をCLOB列に格納できますか