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セクションに必要な情報が記載されています。
4. NSG(Network Security Group)の Security Rule設定
ADB-S の Private Endpoint に適用する Security Rule を設定します。
ATP → ALH に接続するので、ALH に ATP からの接続を許可する Ingress Rule を設定します。
Egress は今回はラクをして下記を設定
NSG を Private Endpoint に未適用の場合は該当セクションの Editボタンを押して設定します。
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 を作成できました。
皆さん活用してくださいね彡(^)(^)




