Autonomous AI DBのDBリンク設定と注意点

Database

初めに

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リンクの編集

ADBでは、作成済みのDBリンクを編集することはできません。編集したい場合は、いったんDBリンクを削除し、再作成する必要があります。

付録 - DBリンクの接続パターン

No. 接続パターンドキュメントリンク
1ADB 同士リンク
2ADB ⇒ Oracle DBリンク
3ADB ⇒ Non-Oracle DBリンク
4Oracle DB ⇒ ADBリンク

以上

ドキュメントリンク
SQL Commands: 英語 日本語
Use Database Links with Autonomous Database: 英語 日本語
Summary of DBMS_CLOUD_ADMIN Subprograms: 英語 日本語

タイトルとURLをコピーしました