接続識別子とは?ネットワーク・ホスト名とデータベース・サービス名が含まれる

このQ&Aのポイント
  • 接続識別子はデータベース接続の識別のために使用されます。
  • 問題の回答において、接続識別子にはネットワーク・ホスト名とデータベース・サービス名が含まれます。
  • 接続識別子は接続記述子を特定するためのものであり、tnsnames.ora.sampleの例ではhsagentが接続識別子であり、接続記述子は(DESCRIPTION=...)です。
回答を見る
  • ベストアンサー

接続識別子とは何でしょうか??

現在Bronzeの問題を解いているのですが ある問題がどうしても納得できません。 ・接続記述子には、ネットワーク・ホスト名とデータベース・サービス名が含まれる -->これは正解で、理解できましたが ・接続識別子には、ネットワーク・ホスト名とデータベース・サービス名が含まれる。 -->問題の回答ではこれも正解となっているのですが、どうして正解なのかよく分かりません。 接続識別子は、接続記述子を識別する為のものですよね? tnsnames.ora.sampleの hsagent = (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)) (CONNECT_DATA=(SID=hsagent)) (HS=) ) 接続識別子は、hsagentで 接続記述子は、(DESCRIPTION=・・・) だと思っているのですが・・・ よろしくお願いします。

  • Oracle
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

接続識別子はあくまで username/password@{接続識別子} というように接続文字列の一番最後に来るものを示すだけであって その記述方法をtnsnames.oraを利用して username/password@hsagentと簡単に書いても良いですし、 tnsnames.oraでマッピングせず usernaem/password@'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=hsagent)))' と直接書いてもかまいません。 上記の場合はもちろん '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=hsagent)))' が接続識別子となります。 ですので 「・接続識別子には、ネットワーク・ホスト名とデータベース・サービス名が含まれる。」も正解となります。

kei2543
質問者

お礼

>tnsnames.oraでマッピングせず >usernaem/password@'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=hsagent)))' >と直接書いてもかまいません。 そうだったんですね! 大変勉強になりました。ありがとうございました!

関連するQ&A

  • データベースに接続できない

    データベースに接続できません!! 「tnsnames.ora」、「listener.ora」、「sqlnet.ora」の内容は以下になっております。いろいろ調べてみて、これでいいとは思うのですが、「ORA-12545 ターゲット・ホストまたはオブジェクトが見つかりません。」というエラーが出てしまい接続できません。 DBはOracle10g Release1を使用しています。 【tnsnames.oraの内容】 ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) ) 【listener.oraの内容】 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = G:\oracle\product\10.1.0\Db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_NAME = orcl) (ORACLE_HOME = G:\oracle\product\10.1.0\Db_1) (SID_NAME = orcl) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) )

  • ORA-12154 TNS:指定された接続識別子を解決できませんでした

    こんにちは、よろしくお願いします。件名のエラーで困っています。 発生しているのはSQLStudio(1.3.10.443)で、データベース接続時に件名のエラーが発生します。(Oracle10g(10.2.0.1.0)) tnsnames.oraの内容とも合致している様子です。 またNet Managerのテストでは問題なく接続できます。 どなたか同様の経験をお持ちの方、いらっしゃいませんか? <tnsnames.ora>------------------------------------------ xxx_SVR = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = server01)(PORT = 1521)) ) (CONNECT_DATA = (SID = sid) ) ) ※server01は、hostsで解決済み <SQL Studioの接続文字列>------------------------------------ Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=userid;Data Source=xxx_SVR ・・・如何でしょうか? ちなみに同様の設定を行っている「ハズ」の同僚は、問題なく接続できています。

  • データベースリンクをする準備としての接続について

    Oracle8(Aとします)のデータベースから8iのデータベース(Bとします)へのデータベースリンクを作成したいと思っております。 その準備段階としてAからBへの接続の設定をNet8 Assistantで行っております。 リスナーのデータベースサービス、リスニング位置についての設定は行い、tnsnames.oraにもBの記述があるのは確認しています。 その状態でSQL*Plusにてユーザ/パス@Bのホスト文字列とすると ORA-12545: 接続に失敗しました。ターゲット・ホストまたはオブジェクトが存在しません。 と接続が出来ず、エラー後はリスナーのサービスが停止してしまいます。 Net8 Assistantでの設定でのBグローバルデータベース名やSIDはBの管理者に確認してもらい正常なことを確認しております。 どこの設定を直したら良いのか分からない状態です。どうか助言をお願い致します。

  • ORA-12545について

    こんにちわ。 windows98でORACLE personal edition8.1.6をインストールしました。 データベースの作成に失敗したため、何度かデータベースの作成を行いました。(削除していないため、3つほどデータベースが出来ている状態です。) Net8 Configuration Assistant で ローカル・ネットサービス名構成をおこないました。 ホスト名にコンピューターの名前を入力して行ったのですが、テストに成功しません。 ORA-12545のエラーが出ます。 ホスト名の指定が間違っているのでしょうか? ネットワークコンピューターのプロパティで設定するコンピューター名ではないのでしょうか? 今機械はLANに接続はしていないのですが、将来接続する予定なので、ネットワークの設定は行っています。 tnsnames.ora において ホスト名をIPアドレスに変更してやってみたのですが、それでもやはり同じ結果でした。 何か原因があるのでしょうか? 申し訳ありませんが、宜しくお願い致します。

  • オラクル:ORA-12154メッセージ

    助けてください。 クライアントからSQL*PLUSを実行しようとすると出ます。 NetConfigurationAssistantのローカル・ネット・サービス名構成でテストすると接続OKです。 過去の投稿を参考にしましたが直りません。 Oracle9iです。 サーバに作ったデータベースはabcです。 ホストマシン名はabc-serverです。 今、tnsnames.oraの中は次の通りです。 abc = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = abc-server)(PORT = 1521)) ) (CONNECT_DATA = (SID = abc) ) )

  • リスナーの構成

    リスナー構成時に指定するデータベース識別情報は、グローバルデータベース名です。 と、Oracle 10g bronze dbaの、Oracleネットワークの構成で書かれているのですが リスナーは、複数のインスタンスで共有できるもので、グローバルデータベース名はいらないと思うのですが・・・ listener.oraを見てみましたがそのような記述はありませんでしたし リスナーの構成を実際にしてみましたが、グローバルデータベース名の設定はしませんでした。 この本の正誤表を見ましたが、載っていませんでした。 どなたかご説明いただけないでしょうか よろしくお願いします

  • デフォルトで共有サーバ接続させるためには

    「tnsnames.ora」に「SERVER」を設定せずにデータベースに接続した場合に、共有サーバ接続(SHARED)にさせたいのですが、専用サーバ接続「DEDICATED」になってしまいます。 データベースの設定としては初期化パラメータに「DISPATCHERS="(PROTOCOL=tcp)(SERVICE=サービス名)」、「SHARED_SERVERS=5」を設定しています。 「tnsnames.ora」に「SERVER=SHARED」を設定すれば共有サーバ接続になります。 「SERVER」を設定せずに共有サーバ接続させる方法をお教えください。 OS : Windows2003 Server Oracle : Oracle9i 9.2.0.5 よろしくお願いします。

  • SQLPLUSの接続に関して

    Oracle Database 11g Express Editionをインストールし、各設定をした後、 SQL-PLUSにて接続を試みています。 その際に、 sqlplus ユーザ名/パスワード@サーバIP の場合接続ができるものの、 sqlplus ユーザ名/パスワード@サービス名(XE) では接続ができません。 エラーの内容としては、  ORA-12154 TNS 指定された接続識別子を解決できませんでした となってしまいます。 “TNSPING XE”、”TNSPING サーバIP”は、いずれも問題なく通ります。 また、tnsnames.ora は、 XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.59)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) ) と記載がある為、問題はないかと思われます。 名前解決がうまくいってない気がしますが、どこを修正すれば良いでしょうか、、、 環境変数は特にいじっていません、、、 初歩的な質問で申し訳ありません。 教えて下さい。 よろしくお願いします。

  • SQLPLUSで接続できない

    新しいWINDOWSマシン(WINDOWS XP)に Oracle・SQL Plusをインストールしましたが、 以下のエラーがでて、接続できません。 > ORA-12154: TNS:could not resolve the connect identifier specified 考えられる原因、解決方法などありましたら、お願いします。 尚、TNSNAMES.ORA 、 SQLNET.ORA は設定済みであり、 SQL Plus の代わりに、Oracle Net Manager を使って、 表示されているツリーから、 ■Oracle Netの構成  の下の ■ローカル  の下の ■サービス・ネーミング   の下に表示されている、該当のサービス名を選んで、 ”サービスのテスト(接続のテスト)”を実行すると、 「接続テストに成功しました。」 という結果になります。 ので、クライアント - サーバ間 のネットワークの通信そのものは、問題ないと思います。 感じとしては、TNSNAMES.ORA の記述内容がSQLPLUSから認識できていない様な気がします。 クライアント、サーバのOS、Oracleのバージョンは以下の通りです。 クライアントOS : WindowsXP SP2 クライアントのOracle製品 : 10.2.0 サーバOS : Solaris8 Oracle : 8.1.7

  • 【sqlplus】USER/PASS@HOSTでログインできない

    SQLPLUSでローカルのOracle10gに接続を試みているのですが コマンドプロンプトで sqlplus USER/PASS では接続できるのですが、 sqlplus USER/PASS@HOST で接続できないんです。 環境は下記となっております。 Windows XP Oracle10g(10.1.0) ======【エラー内容】================================== C:\Documents and Settings\XXXX XXXX>sqlplus USER/PASS@orcl SQL*Plus: Release 10.1.0.2.0 - Production on 火 7月 3 01:56:57 2007 Copyright (c) 1982, 2004, Oracle. All rights reserved. ERROR: ORA-12523: TNS:listener could not find instance appropriate for the client connection ======【listener.ora】================================== # listener.ora Network Configuration File: C:\oracle\product\10.1.0\Db_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = C:\oracle\product\10.1.0\Db_1) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = ORCL) (ORACLE_HOME = C:\oracle\product\10.1.0\Db_1) (PROGRAM = oracle) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) ) ======【sqlnet.ora】================================== # sqlnet.ora Network Configuration File: C:\oracle\product\10.1.0\Db_1\network\admin\sqlnet.ora # Generated by Oracle configuration tools. SQLNET.AUTHENTICAION_SERVICES=NONE NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) ======【tnsnames.ora】================================== # tnsnames.ora Network Configuration File: C:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521) ) (CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = orcl) ) ) ======【tnsping】================================== Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521)) ( CONNECT_DATA = (SERVER = SHARED) (SERVICE_NAME = orcl))) OK (40 msec) ======【LSNRCTL>status】================================== Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROCipc))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))) Services Summary... Service "ORCL" has 1 instance(s). Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service... 実は当初PHPから接続しようと色々やっていたのですが、sqlplusで まともに接続できていないことが判明し、自分でも色々調べてみた のですが、どうしてもうまくいかず質問させていただいた次第です。 初心者ですが、どうかよろしくお願いいたします。