初めに
Autonomous AI Database(旧称 Autonomous DB、以下はADBと略)でデータベースリンク(DBリンク)を利用する際には、通常のOracle Databaseとは異なる点に注意が必要です。本記事では、DBリンクの作成・管理に関する注意点や手順について解説します。
※、リンク先もADBである場合、事前にリンク先ADBのWalletファイルを所定のディレクトリに保存する必要があるケースもあります。本記事ではそのケースは扱っておりませんので、予めご了承ください。
1. 作成前の事前準備
1-1. 権限付与
管理者(ADMIN)以外のユーザーがDBリンクを作成する場合は、以下の権限を事前に付与する必要があります。
DBMS_CLOUDの実行権限:クレデンシャル作成に必要
DBMS_CLOUD_ADMINの実行権限:DBリンク作成に必要
コマンド例:(ADMINユーザーによる実行)
GRANT EXECUTE ON DBMS_CLOUD TO <DBユーザー名>;
GRANT EXECUTE ON DBMS_CLOUD_ADMIN TO <DBユーザー名>;1-2. クレデンシャルの作成
接続先のデータベースにアクセスするために、あらかじめクレデンシャルを作成しておきます。これにより、ユーザー名やパスワードなどの接続情報を安全に管理できます。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => '<クレデンシャル名>',
username => '<DBユーザー名>',
password => '<パスワード>'
);
END;
/2. DBリンクの利用
2-1. DBリンクの作成
ADBでは、Oracle DBの CREATE DATABASE LINK SQL文は使用できません。このコマンドを実行しようとすると、次のようなエラーが表示されます:
ORA-01031: insufficient privileges代わりに、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKプロシージャを使用してください。
詳細な使用方法については、公式マニュアルを参照してください。
2-2. DBリンクの確認
ビューからの確認
作成されたDBリンクは以下のビューから確認できます:
- 一般ユーザー:ALL_DB_LINKS, USER_DB_LINKS
- 管理者ユーザー(ADMIN):DBA_DB_LINKS (上記2つのビューも参照可能)
select * from ALL_DB_LINKS;動作確認
- SQLコマンドでの確認例えば、リンク先のデータベースにある特定テーブルの件数を確認するには、このSQLを実行します:
select count(*) from Table_Name@DBLink_Name; - SQL Developerでの確認
- a) 接続名を展開
- b)「データベース・リンク」を選択
- c) 対象のリンクを右クリック →「データベース・リンクのテスト」→ 適用
成功すると、データベース・リンク"<リンク名>"が正常にテストされましたが表示されます。
2-3. DBリンクの削除
DROP DATABASE LINKコマンドもADBでは使用できません。代わりに、DBMS_CLOUD_ADMIN.DROP_DATABASE_LINKを使用してください。
実行例:
BEGIN
DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
db_link_name => '<DBリンクの名前>' );
END;
/
PL/SQL procedure successfully completed.※、SQL Developer を使用している場合、ADBでは、DBリンクを右クリックして「削除」を選択する方法では削除できません。
2-4. DBリンクの編集
付録 - DBリンクの接続パターン
以上
ドキュメントリンク
SQL Commands: 英語 日本語
Use Database Links with Autonomous Database: 英語 日本語
Summary of DBMS_CLOUD_ADMIN Subprograms: 英語 日本語