OracleDBにおけるサービスとは
OracleにおけるDBサービスとは何なのか、整理してみる。
DBサービスとは平たく言うとデータベース名と同義である。
ただこれはデフォルトの状態であれば正しいが、ユーザでサービスを追加できることを考えると誤り。
【デフォルトのサービスとは】
デフォルト、つまりDBを構築・起動しただけの状態だと下記のデフォルトサービスが起動している状態になる。
DB_UNIQUE_NAME.DB_DOMAIN(定義されている場合)
DB_DOMAINが定義されていると厳密にはデータベース名とは異なるが、基本的には
デフォルトのサービス名はデータベース名(DB_UNIQUE_NAME)である。
参考:SERVICE_NAMESパラメタ
ただ単純に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のこと)
上のコマンド例はマルチテナント構成の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以前を使っている人も少ないと思うので問題ないと思うが)