本ブログは、オラクル・クラウドの個人シリーズ・ブログの1つです。
初めに
クライアントより、OCI上のOracle Base DB (旧称:DBCS)に接続する時、サービス名を聞かれることがあります。サービス名を取得する方法がいくつがありますので、簡単にご紹介いたします。
DB version: Oracle DB 19c Standard Edition (シングル・インスタンス)
タイプ: VM
1. OCIコンソールから取得
DB Systemsの詳細画面より、DB名をクリックし、DBの詳細画面に入ります。
"DB Connection"(DB接続)をクリックします。
下記の画面に、"Easy Connect"(簡易接続)と"Long"(長)の二つ接続文字列が表示されます。どちらでもサービス名の取得ができます。
"SHOW"(表示)をクリックしたら、サービス名が表示されます。
"簡易接続"の場合、ポート番号1521の後ろの部分となります。
"長"の場合、"SERVICE_NAME"で明確に書いています。
サービス名の構成:
<一意のデータベース名>.<ホスト・ドメイン名>
一意のデータベース名の構成:
<DB名>_<リージョン・キー><自動に振り分けられた文字>
DB名:DBシステムを作成する際に、指定したものです。
リージョン・キー:OCIリージョンを一意する文字列です。東京リージョンは、"nrt"となります(一覧表は、ここをご参照)。
ホスト・ドメイン名の構成:
<Subnet_DNS_label>.<VCN_DNS_label>.oraclevcn.com
上記のサービス名は、CDB接続用です。PDBに接続したい場合、以下の2つ方法で、PDBのサービス名が取得できます。
- <一意のデータベース名>の文字列にDB名をPDB名で置き換えると、OKです。
-
PDB接続画面に入り、"Easy Connect"(簡易接続)と"Long"(長)の文字列を確認してください。
Database Details -> Pluggable Database Details -> PDB Connection
※一意のデータベース名とホスト・ドメイン名は、それぞれ"DB Systems"の詳細画面にも、表示されていますけど、一括にDB接続文字列の表示画面から取得するのは、早いです。
OCIコンソールだけではなく、VMにログインすれば、簡単にDBサービス名の取得ができます。これから、各種な取得方法を紹介します。
2. Base DBのVMから取得
2-1 ファイル"tnsnames.ora"より取得
oracleユーザに切り替え、以下のコマンドを実行します。
コマンド例:
cat $ORACLE_HOME/network/admin/tnsnames.ora
結果は、以下のようです。"SERVICE_NAME"の行を確認してください。
DB19C_NRT1RQ =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db19c)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = db19c_nrt1rq.publicsubnet1.vcn1.oraclevcn.com)
)
)
2-2 コマンド"lsnrctl status"で取得
oracleユーザに切り替え、リスナーは起動中の状態で、以下のコマンドを実行します。
コマンド例:lsnrctl status
以下は、結果の抜粋です。
Service "db19c_nrt1rq.publicsubnet1.vcn1.oraclevcn.com" has 1 instance(s).
Instance "db19c", status READY, has 2 handler(s) for this service...
Service "db19c_pdb1.publicsubnet1.vcn1.oraclevcn.com" has 1 instance(s).
Instance "db19c", status READY, has 2 handler(s) for this service...
The command completed successfully
※この方法の利点は、CDBとPDBの両方のサービス名が取得できます。
2-3 SQLコマンド"show parameter"で取得
DB管理者ユーザで、SQL PLUSにログインし、以下のコマンドを実施してください。
コマンド例:show parameter service
SQL> show parameter service;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string db19c_nrt1rq.publicsubnet1.vcn
1.oraclevcn.com
SQL>
以上です。
関連記事
オラクル・クラウドの個人シリーズ・ブログ
SQL Developerで様々なDBに接続する方法
OCI Bastion経由でプライベート・サブネット内のOracle DBに接続する