oracleインスタントクライアント、tnsping、tnsnames.ora、およびORACLE_HOME



Oracle Instant Client



少し前に、Oracleデータベースにリモート接続しますが、コンピュータにoracleclientを完全にインストールしてから、Oracleの公式Webサイトにアクセスして軽量のclientinstantクライアントをダウンロードします。

sqlplusリモート接続サーバーのおかげで、このようなものはグラフィカルインターフェイスではないので、「十分に単純な」需要OCDの追求を満たすためだけに行わないでください。



しかし、サーバーがモニターポートを開かなかった可能性があります。自分のマシンで、tnsnames.ora、sqlnet.ora、その他のリモート接続を含むさまざまな構成を試しましたが失敗しました。問題のトラブルシューティングを行います。ネットワークアドレスの外部のビットサーバーにpingを実行しましたが、問題は見つかりませんでした。オンラインによると、pingは十分な明るさ​​ではありませんが、それを再送信することもできます。

名前を見るためだけなら、tnsping。のpingでもあるようです。ただし、このツールはoracleクライアントに完全に含まれているだけです。インスタントクライアントをインストールしたとします。 tnspingは使用できません。



私はたまたまインスタントクライアントを使用していますが、それほど悲劇ではありませんか?ただ。 OTNコミュニティを散歩するとき。 tnspingはそれほど魔法ではないことがわかりました。tnspingの上のOTNコミュニティの投稿は、それを非常に徹底的にしました。ここで言い換えます。元の投稿ではhttps://community.oracle.com/thread/2434899?

start = 0&tstart = 0、興味のある方はご覧ください。

tnspingが実行できるのは、開いているソケット接続からHOSTおよびPORTパラメーター、TNS接続文字列を読み取ることです。次に、pingをリスナーに送信します。リスナーがポンに応答する場所。 tnspingは、他のパラメータTNS接続文字列を有効にしないため、データベースインスタンスとデータベースサービスの可用性を判断できません。 SID、SERVICE_NAME、INSTANCE_NAMEなどの他のパラメーターが有効であるかどうかを判別できません。目に見える。 tnspingは決してハイエンドのツールではないため、多くの人がTNS接続文字列をテストするために使用し、使い切るだけです。



インスタントクライアントはツールをtnspingしませんでしたか?それは問題ではありません。 telnetで置換されたtnspingを使用できるため。テスト接続が成功した後。その後、telnetを切断できます。

フロントは、tnspingがHOSTおよびPORTパラメータを読み取ると言っています。問題は、これらのパラメータのどれですか?この問題を解決するには、重要な構成ファイルtnsnames.oraについて言及する必要があります。

tnsnames.oraは、データベースへの接続を確立するために必要なさまざまなアドレスを定義する構成ファイルです。

完全なoracleclientは、インストール済みであると想定しています。構成ファイルは、ORACLE_HOMEの下の NETWORK ADMINフォルダーにある必要があります。たとえば、次の形式です。

= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = )(Port = )) ) (CONNECT_DATA = (SERVICE_NAME = ) ) )
完了サンプルtnsnames.oraデモ次のような:

ORA11 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORA11) ) )

もちろん。インスタントクライアントをインストールしたとすると、このファイルは存在しませんが、特定のフォルダーの下に配置されたtnsnames.oraを完全に自己管理できます。tnsnames.oraそれぞれにクライアント側とサーバー側があります。 http://orafaq.com/wiki/Tnsnames.oraのコンテンツと、上記のより具体的な手順を参照しました。それで、tnsnames.oraは正確にどのような役割ですか?

確かに。この構成ファイルは、hostsファイル内のコンピューターに少し似ています。

このファイルは実際にはプロファイルの役割であり、頻繁に使用されるドメイン名とURLを配置して、IPアドレスマッピングを確立します。ブラウザにURLを入力してEnterキーを押すと、システムは最初にホストファイルから独自のイニシアチブでドメイン名の対応するIPアドレス、対応するWebアドレス仮説が対応するIPアドレスを見つけられなかった後、オープンを見つけ、システムはDNSドメイン名解決サーバーへの送信URLを取得し、サーバーから対応するIPアドレスを解析します

ホストファイルはIPアドレスに解決されたURLを覚えやすく、tnsnames.oraはエイリアス解決TNS接続文字列を覚えやすくします。接続文字列は通常、「(DISCRIPTION =(ADDRESS =)(CONNECT_DATA =)」です。

Tnsnames.oraは、上記のサンプルプレゼンテーションを制御します。実際、それは見ることができますこれには、いわゆるtnsnames.ora接続文字列が含まれます。したがって、リモートログインsqlplusデータベースを使用する場合、2つの方法があります。

1つの方法は、接続文字列を完全に書き込むことです。たとえば、次を参照してください。

sqlplus scott/root@xxxxx'(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP)(HOST=my-dev.mydomain.com)(PORT=1521)) (CONNECT_DATA= (SID=orcldev) (SERVER=dedicated)))'
例として、上記のtnsnames.oraに直接書き込むTNSエイリアスがあります。

sqlplus scott/root@xxxxx明らかに、別の方法で簡単です。特に、データベースに頻繁にログオンする必要がある場合。 makefileをコンパイルして書き込むときに真実を容易にするために、構成ファイルの効率が大幅に向上することは間違いありません。

さっき言ったように、インスタントクライアントをインストールすると仮定すると、tnspingツールは必要ありません。それは問題ではありません、あなたはただtnspingがしていることをクリアしたいだけです。

実際には、次の3つのことを行うだけです。1TNSエイリアスを指定すると、エイリアスは接続文字列に解決されます(ログオン時に完全な接続文字列を直接使用する場合は、この手順をスキップします)。 HOST接続パラメータ文字列。接続するリスナーのIPアドレスをテストします。 3.3。接続文字列に応じたPORTパラメータを使用して、接続する対応するポートリスナーをテストします。

明らかに、外を除いて最初のもの。最初に、2,3のtelnet置換基を使用できるようになります。

インスタントクライアントは、今述べたように、あまり便利ではない場所があり、tnsnames.oraファイルを所有していないということです。しかし、今言ったように、あなたは自分自身を構築することができますtnsnames.oraファイル。

上手。このドキュメントを見つけるためのOracleクライアントの方法は?これには、TNS_ADMIN環境と呼ばれる変数を追加する必要があります。tnsnames.oraアドレス。システムは、この変数のアドレスが次のように指定されていることを検出します。tnsnames.oraファイル。

最後に、ORACLE_HOMEについて簡単に説明します。この変数は、Oracleインストールフォルダを表します。環境変数oracleインストールフォルダへのポインタを表すことができます。

窓の中。現在のORACLE_HOMEを表示したい場合は、echoコマンドを使用できます。 ORFACLE_HOME環境変数を結合または設定するには、setコマンドを使用できます。もちろん、レジストリにはORACLE_HOMEもあり、可能な場所はHKEY_LOCAL_MACHINE SOFTWARE ORACLEです。

より詳細なコンテンツは、http://orafaq.com/wiki/ORACLE_HOMEを参照できます。