データベース備忘録

※自分調べ

OracleDBにおけるサービスとは

OracleにおけるDBサービスとは何なのか、整理してみる。

 

DBサービスとは平たく言うとデータベース名と同義である。

ただこれはデフォルトの状態であれば正しいが、ユーザでサービスを追加できることを考えると誤り。

 

 

【デフォルトのサービスとは】

デフォルト、つまりDBを構築・起動しただけの状態だと下記のデフォルトサービスが起動している状態になる。

DB_UNIQUE_NAME.DB_DOMAIN(定義されている場合)

 

DB_DOMAINが定義されていると厳密にはデータベース名とは異なるが、基本的には

デフォルトのサービス名はデータベース名(DB_UNIQUE_NAME)である。

 

参考:SERVICE_NAMESパラメタ

docs.oracle.com

 

ただ単純にDBを繋ぎたい、という場合はこのデフォルトのサービス名を使用してtnsnames.oraに記載すれば良い。

ちなみにマルチテナント構成のPDBもサービスを持っているので、PDBにつなぎたい場合はPDBのデフォルトのサービス名を使用してTNSに記載すれば接続可能。

 

 

 

【ユーザ追加のサービス】

デフォルトのサービス以外にサービスを作成することもできる。

例えば、業務用・保守用にNWセグメントを分けていて、負荷や耐障害性、セキュリティの問題それぞれに別サービスを用意しておきたい、といった場合がある

 

srvctl add service -db ora19c -service ora19c_srvAP -netnum netAP

srvctl add service -db ora19c -service ora19c_srvMNT -netnum netMNT

 

※ネットワークをあらかじめリソース登録しておく必要があるので注意

(上の例だとnetAP・netMNTのこと

 

docs.oracle.com

 

上のコマンド例はマルチテナント構成のCDBのサービス登録だが、PDBのサービス登録も可能

 

srvctl add service -db ora19c -service ora19c_srvAP -pdb 19cpdb -netnum netAP

srvctl add service -db ora19c -service ora19c_srvMNT -pdb 19cpdb -netnum netMNT

 

 

ちなみにgridを使用している前提の説明。

(今時9i以前を使っている人も少ないと思うので問題ないと思うが)