• 締切済み
  • すぐに回答を!

データベースへの接続について

サーバーに、OracleDB10gR2を導入し、リスナーの設定まで完了しています。 クライアントの接続情報の設定を、「Net Configuration Assistant」の 「ローカル・ネット・サービス名構成」を使用し設定を行おうと思っています。 設定が完了するとTNSNAMES.ORAが作成され、以下のような内容になると思います。 net_service_name= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=test)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=service_name))) この後以下のコマンドでデータベースへの接続が可能になると思うのですが、 service_nameというのは、何に使用しているのでしょうか? また、net_service_nameに設定される値とservice_nameに設定される値の違いを教えてください。 connect user/password@net_service_name 調べると、以下のような記述を見つけたのですが、 Oracle9iまたはOracle8のデータベースに接続する際に必要なのでしょうか? SERVICE_NAME 用途 パラメータSERVICE_NAMEを使用して、アクセスするOracle9iまたはOracle8データベース・サービスを識別します。値は、初期化パラメータ・ファイルのSERVICE_NAMESパラメータに指定されている値に設定します。

共感・応援の気持ちを伝えよう!

  • Oracle
  • 回答数2
  • 閲覧数388
  • ありがとう数1

みんなの回答

  • 回答No.2
  • entree
  • ベストアンサー率55% (405/735)

以下のような構成を考えてみて下さい。 クライアント     ↓ サーバ ↓  リスナー     ↑  インスタンスfoo(SID=foo) インスタンスbar (SID=bar) 上記の環境では、サーバ上にインスタンスfooとbarの2つが起動していま す。でも、リスナーは独立したプログラムですので、起動した時点で同一 サーバ上にどのようなインスタンスがいるかを知りません。 そこで、 インスタンスfooの初期化パラメータにservice_names=foo.example.com、インスタンスbarの初期化パラメータにservice_names=bar.example.com を設定します。 この動作は、インスタンスfooはリスナーに、「foo.examples.comを指定してクライアントが接続して来た場合、そのコネクションは私宛だから私に渡 してね」とリスナーに指示します。 同様に、インスタンスbarはリスナーに、「bar.examples.comを指定してク ライアントが接続して来た場合、そのコネクションは私宛だから私に渡 その結果、クライアントが service_name=foo.example.comを設定した接続記述子を使ってサーバに 接続した場合、インスタンスfooにつながり、 service_name=bar.example.comを設定した接続記述子を使ってサーバに 接続した場合、インスタンスbarにつながります。 一方、net_service_nameはエイリアスです。 接続するたびに、 scott/tiger@(DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=test)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=service_name)))※ みたいなことを書くのは大変なので、別名net_service_nameを tnsnames.oraに定義しておくことで、 scott/tiger@net_service_name と簡単な記述ができるようになります。 ※このような書き方ができるか否かは分かりませんが、  意味合い的に理解していただければと思います。

共感・感謝の気持ちを伝えよう!

  • 回答No.1

単一のサーバに、複数のオラクルインスタンスを動作させる場合のパラメータです。 1台のサーバに1つのインスタンスしか動かさないのであれば、Net_Service_Name=Service_Nameとするのが分かり易くて良いかと。

共感・感謝の気持ちを伝えよう!

関連する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)) ) )

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

    「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 よろしくお願いします。

  • Oracle10gExpressをインストールした後、Oracle8iの接続ができなくなった(ORA-12154)

    お世話になります。 Oracle8iクライアントがインストールされている環境に、 Oracle10gExpressをインストールしました。 Oracle8iでインストールした、SQL Plusからは問題なく接続できるのですが、 AccessにODBC接続させていた、Oracleへの接続がうまくいかなくなりました。 よくわかっていないのですが、 どうも、Oracle10gのtnsnamesを参照しにいっているような気がします。 でも、oracle8iのtnsnames.oraの内容をそのまま、 10gのtnsnames.oraにコピーしましたが、だめでした。 何かご存知の方アドバイスいただけないでしょうか? よろしくお願いいたします。 ●8iのtnsnames.oraでうまくいっていた内容を、10gにコピーした内容です。(内容は変更せずにそのままコピーしました) test.xxx.CO.JP = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.xxx.xxx)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) ) )

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

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

  • Oracle9iにて接続ホストを変更したい場合

    あるデータベース兼アプリサーバに接続しているクライアントより、 テスト環境用として構築した全く同じ環境の別サーバに接続させようと思い、 以下のtnsnames.oraの「(HOST= )」をテスト用サーバのホスト名に変更しましたが、「ORA-12535: TNS: 操作はタイムアウトしました。」が発生します。 AAAAAAA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = BBBBBBB) (PORT = 1521) ) ) (CONNECT_DATA = (SERVICE_NAME = CCCCCCC) ) ) AAAAAAA_ADMIN = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = BBBBBBB) (PORT = 1521) ) ) (CONNECT_DATA = (SERVICE_NAME = CCCCCCC) (SERVER = dedicated) ) ) 他に何か変更するファイルがありましたでしょうか? ご存知の方がおられればご教示いただけませんでしょうか? 宜しくお願いします。

  • Oracle10g から 11g へ接続しようとしていますが、

    Oracle10g から 11g へ接続しようとしていますが、 「ORA-12541: TNS: リスナーがありません。」 と表示されます。 例)以下の環境で、「SQL/PLUS」を使用して、 ユーザ名/パスワード@NEWDB でログオンすると発生。 原因が分かる方がいらっしゃれば御教授願います。 (サーバ側は新規で11gをインストールしました。) 現在の tnsnames は以下のようになっていますが、 「localhost」などの記述に問題ありでしょうか? ■サーバ側:11g(O/S:XP) ※IP 192.168.0.1 WENDY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = WENDY.com) ) ) LISTENER_WENDY = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ■クライアント側:10g(O/S:XP) NEWDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = WENDY.com) ) )

  • ドメイン変更によるデータベースへの影響

    はじめまして。 皆さんご教授の程宜しくお願い致します。 ドメイン(ActiveDirectory)のメンバーサーバにOracle9iをインストールしてデータベースを構築したのですが、管理の関係でそのサーバを別ドメインのメンバーサーバに変更しなければなりません。 その際、ドメインを変更した後もデータベースは使用できるのでしょうか? ドメインを変更したらOracleを再インストールしないといけないのでしょうか? それとも初期化パラメータファイルやTNSNAMES.ORAなどの設定を変更すれば使用できるのでしょうか? ドメイン変更による影響範囲や変更に伴うOracleの設定変更などの必要がございましたら、ご教授願いますでしょうか? よろしくお願い致します。

  • Oracle10gclientで接続不能

    ローカルマシンにOracle10gclientをインストールし SQLPLUSにてサーバーのDB環境へ接続を試みたところ、以下のメッセージが表記され 接続が不可となります。 「ORA-12154: TNS:could not resolve the connect identifier specified」 Enter user-name : ちなみに、Net Configuration Assistantでは、接続可能となります。 バージョンは10.2.0.1です。 Cドライブにインストールしておりますが、 パスは以下となっています。 C:\oracle\product\10.2.0\client_1 C:\oracle\product\10.2.0\client_2 C:\oracle\product\10.2.0\client_2\NETWORK\ADMIN\の配下に 以下のファイルが存在しています。 listener.ora sqlnet.ora tnsnames.ora サイトでも調べているのですが、なかなか解決に至っておりません。 上記内容で何か考えられる原因等ございましたら アドバイスいただけると幸いです。 以上、よろしくお願い申し上げます。

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

    『PHP5逆引き大全500の極意』にあるサンプルスクリプトで PHPとMYSQLと学んでいます。 XAMPPもインストールし、スタンドアロンでMysqlを操作しようと しています。 しかし、どのサンプルスクリプトをいじっても接続できません。 require("config.php"); header("Content-Type: text/plain; charset=EUC-JP"); $db = odbc_connect(ODBC_CONNECT_DSN, ODBC_CONNECT_USER, ODBC_CONNECT_PASS) or die("データソースに接続できません!\n"); でエラーがでています。 ちなみにconfig.phpの内容 // DSN define("ODBC_CONNECT_DSN", "DSN=sample_db;"); // ユーザー名 define("ODBC_CONNECT_USER", "username"); // パスワード define("ODBC_CONNECT_PASS", "password"); // テーブル名 define("ODBC_TABLE_NAME", "php500"); となっています。SQL文を実行し、テーブルを作りましたが、 上手く言っているかどうか・・・。 文字コードをちゃんと設定していないせいか、????????のような データがカラムに入っています。 サンプルスクリプト上、データベースが自動作成されるスクリプトも あるのですが・・・。 1.useename、userpassの設定 2.phpMyAdminでデータベースを作成する方法 3.データベース作成時の文字コードの設定。utf?sjis? についてヒント頂けたら幸いです。

    • ベストアンサー
    • MySQL
  • データベースへ接続できない

    Windows2000端末からデータベースへ、SQLPlusやJDBCエクスプローラからの接続を行なおうとすると、以下のようなエラーメッセージが表示され、接続できません。 ---------------------------------------------- ●SQLPlus(ヴァージョン Oracle8i(8.1.6)) ERROR ORA-12545 接続に失敗しました。ターゲット・ホストまたはオブジェクトが存在しません。 ●JDBC(ヴァージョン 4) The Network Adapter could not establish the connection. ---------------------------------------------- 同じユーザ名、パスワードで、以前は接続出来ていたのですが、急に出来なくなりました。 他の者も使用しているパソコンなので誰かが設定をかえたのかもしれませんが・・。 設定をし直せばいいとは思うのですが、方法が分からないので教えて頂けないでしょうか? よろしくお願いします。