3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Autonomous Database Serverless(ADB-S) で Private Endpoint同士の DBLINK を作成する(Oracle Cloud Infrastructure)

3
Posted at

Autonomous Database は Oracle が提供する PaaS型のデータベース・サービスです。この記事では表題の通り Private Endpoint の ADB-S で DBLINK を作成してみますやで。
彡(^)(^)

1. 参考マニュアル

以下のマニュアルを参照しました。

自律型AIデータベースからプライベート・エンドポイント上の自律型AIデータベースへのデータベース・リンクの作成
https://docs.oracle.com/ja-jp/iaas/autonomous-database-serverless/doc/database-links-oracledb-private.html#GUID-0D44ED37-2857-4D8B-AA7B-BC89445D11A4

2. 環境

以下の環境で動作を確認します。ADB-S はそれぞれ Private Endpoint で作成しておきます。
ATP に ALH を参照する DBLINK を作成します。

ADB-S(ATP) → ADB-S(ALH)
│               │
Compute─────────┘

Compute から sqlplus で接続して動作を確認します。

3. Private Endpoint の IPアドレス と hostname を確認

ADB-S のコンソール画面で Private Endpoint の IPアドレス と hostname を確認します。
Networkセクションに必要な情報が記載されています。

こちらは ATP
image.png

こっちは ALH
image.png

4. NSG(Network Security Group)の Security Rule設定

ADB-S の Private Endpoint に適用する Security Rule を設定します。
ATP → ALH に接続するので、ALH に ATP からの接続を許可する Ingress Rule を設定します。

image.png

Egress は今回はラクをして下記を設定

image.png

NSG を Private Endpoint に未適用の場合は該当セクションの Editボタンを押して設定します。

image.png

5. DBLINK用ユーザーの作成

接続先の ADB-S(今回は ALH) に DBLINK用ユーザーを作成します。
DBLINK接続後の権限は接続に使用したユーザーの権限に依存します。今回は DBAロール を付与しました。

CREATE USER AYSHIBAT IDENTIFIED BY xxxxxxxxxxxx
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

GRANT DBA TO AYSHIBAT;

6. DBMS_CLOUDパッケージによる DBLINK作成

接続元の ADB-S(今回は ATP)に DBMS_CLOUDパッケージで DBLINK を作成します。

BEGIN
     DBMS_CLOUD.CREATE_CREDENTIAL(
         credential_name => 'CRED_FOR_DBLINK_TO_AYUALH1',
         username => 'AYSHIBAT',
         password => 'xxxxxxxxxxxx'
         );
END;
/

BEGIN
     DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
         db_link_name => 'DBLINK_TO_AYUALH1',
         hostname => 'xxxxxxxx.adb.ap-tokyo-1.oraclecloud.com',
         port => '1521',
         service_name => 'xxxxxxxx_ayualh1_tp.adb.oraclecloud.com',
         credential_name => 'CRED_FOR_DBLINK_TO_AYUALH1',
         directory_name => NULL,
         private_target => TRUE);
END;
/

結果は以下の通りです。

SQL> BEGIN
  2       DBMS_CLOUD.CREATE_CREDENTIAL(
  3           credential_name => 'CRED_FOR_DBLINK_TO_AYUALH1',
  4           username => 'AYSHIBAT',
  5           password => 'xxxxxxxxxxxx'
  6           );
  7  END;
  8  /

PL/SQL procedure successfully completed.

SQL> BEGIN
  2       DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
  3           db_link_name => 'DBLINK_TO_AYUALH1',
  4           hostname => 'xxxxxxxx.adb.ap-tokyo-1.oraclecloud.com',
  5           port => '1521',
  6           service_name => 'xxxxxxxx_ayualh1_tp.adb.oraclecloud.com',
  7           credential_name => 'CRED_FOR_DBLINK_TO_AYUALH1',
  8           directory_name => NULL,
  9           private_target => TRUE);
 10  END;
 11  /

PL/SQL procedure successfully completed.

SQL>

7. 動作確認

DBLINK先のV$PDBSビューを参照して接続先を確認します。

SELECT NAME FROM V$PDBS@DBLINK_TO_AYUALH1;

結果は以下の通りです。

SQL> SELECT NAME FROM V$PDBS@DBLINK_TO_AYUALH1;

NAME
--------------------------------------------------------------------------------
G3AA9E164378CB1_AYUALH1

SQL>

DBLINK先の PDB名(今回は ALH) を確認できました。

8. まとめ

ADB-S の Private Endpoint で DBLINK を作成できました。
皆さん活用してくださいね彡(^)(^)

3
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?