LoginSignup
2
1

Oracle Base DBのサービス名を取得する

Last updated at Posted at 2021-07-28

本ブログは、オラクル・クラウドの個人シリーズ・ブログの1つです。

初めに
クライアントより、OCI上のOracle Base DB (旧称:DBCS)に接続する時、サービス名を聞かれることがあります。サービス名を取得する方法がいくつがありますので、簡単にご紹介いたします。

DB version: Oracle DB 19c Standard Edition (シングル・インスタンス)
タイプ: VM

1. OCIコンソールから取得

DB Systemsの詳細画面より、DB名をクリックし、DBの詳細画面に入ります。
image.png

"DB Connection"(DB接続)をクリックします。
image.png

下記の画面に、"Easy Connect"(簡易接続)"Long"(長)の二つ接続文字列が表示されます。どちらでもサービス名の取得ができます。
image.png

"SHOW"(表示)をクリックしたら、サービス名が表示されます。
"簡易接続"の場合、ポート番号1521の後ろの部分となります。
"長"の場合、"SERVICE_NAME"で明確に書いています。
image.png

サービス名の構成:
<一意のデータベース名>.<ホスト・ドメイン名>

一意のデータベース名の構成:
<DB名>_<リージョン・キー><自動に振り分けられた文字>
DB名:DBシステムを作成する際に、指定したものです。
リージョン・キー:OCIリージョンを一意する文字列です。東京リージョンは、"nrt"となります(一覧表は、ここをご参照)。

ホスト・ドメイン名の構成:
<Subnet_DNS_label>.<VCN_DNS_label>.oraclevcn.com

上記のサービス名は、CDB接続用です。PDBに接続したい場合、以下の2つ方法で、PDBのサービス名が取得できます。

  1. <一意のデータベース名>の文字列にDB名をPDB名で置き換えると、OKです。
  2. PDB接続画面に入り、"Easy Connect"(簡易接続)と"Long"(長)の文字列を確認してください。
    Database Details -> Pluggable Database Details -> PDB Connection
    image.png

※一意のデータベース名とホスト・ドメイン名は、それぞれ"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に接続する

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1