dポイントプレゼントキャンペーン実施中!

SID、(init.SIDora内の)SERVICE_NAMES、GLOBAL_DBNAME、DB_NAME、DB_DOMAINの関係は
どうなっているのでしょうか?以下でいいのでしょうか?

SID =DB_NAME
サービス名=GLOBAL_DBNAME=DB_NAME+DB_DOMAIN

A 回答 (1件)

通常はそのような記述をしますね


違う名前をつけるとあとでわけがわからなくなるので。

まずはSIDとDB_NAMEの関係について
SID:インスタンスのID
DB_NAME:データベースのID
インスタンスとデータベースは別物なのでそれぞれに名前を付けます
インスタンスはデータベースを操作するプロセス群とSGAと呼ばれるメモリ領域を合わせたものです
データベースとはデータファイル、制御ファイル、REDOログファイルなどの物理構成、その中の論理構成をさします
インスタンスとデータベースはほとんどの場合1対1で関連付けされますが、1つのデータベースに対して複数のインスタンスを立ち上げることも可能です(Real Application Clusters)(8iまではパラレルサーバという名前だったような。。。)
というわけで、インスタンス名とデータベース名は別々につけることができるようになっているわけです。

サービス名はインスタンスに接続するための識別子です
Oracle8まではクライアント側のtnsnames.oraに(SID=ORCL)と記述したのですが、Oracle8iからは(SERVICE_NAME=ORACLE.WORLD)と記述するようになりました。(でも古いままでも接続できる)
サービス名は1つのインスタンスに対して複数の名前を付けることができます。別名のようなものですね。

GLOBAL_NAMEはDB_LINKを使用するときに必要だったような。。。すいません、このへんはちょっと詳しくないです。。。

まとめると、クライアントからサービス名をもとにインスタンスに接続し、インスタンスではinitORCL.oraのDB_NAMEをもとにデータベースに接続するという感じでしょうか。
[クライアント]--[サービス名]--[インスタンス]--[データベース]
    • good
    • 0
この回答へのお礼

ありがとうございました。自分でも
もう少し調べてみました。


DB_NAME が同じでもSIDを別にすることで
複数インスタンスを立ち上げることが
できるのですねMTSで使ったり、複数の
試験環境に使ったりするようです

サービス名はホストネーミング、
ローカルネーミング、ORACLE NAMEで
名前解決するための、定義のようですね

リスナーにインスタンスを自動登録する際に
のインスタンス登録名のようなんですが
GLOBAL_NAMEはDB_NAME+DB_DOMAINの様なのですが
いまひとつ理解できてません

お礼日時:2005/02/26 11:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す