• 締切済み

SID、SERVICE_NAMES、GLOBAL_DBNAME、DB_NAME、DB_DOMAINの関係

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

みんなの回答

  • hot2cool
  • ベストアンサー率100% (1/1)
回答No.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をもとにデータベースに接続するという感じでしょうか。 [クライアント]--[サービス名]--[インスタンス]--[データベース]

katu_ueda
質問者

お礼

ありがとうございました。自分でも もう少し調べてみました。 DB_NAME が同じでもSIDを別にすることで 複数インスタンスを立ち上げることが できるのですねMTSで使ったり、複数の 試験環境に使ったりするようです サービス名はホストネーミング、 ローカルネーミング、ORACLE NAMEで 名前解決するための、定義のようですね リスナーにインスタンスを自動登録する際に のインスタンス登録名のようなんですが GLOBAL_NAMEはDB_NAME+DB_DOMAINの様なのですが いまひとつ理解できてません

関連するQ&A