本ブログは、オラクル・クラウドの個人ブログ一覧の1つです。
初めに
Autonomous Database(以下、Autonomous DB)でデータベースリンク(DBリンク)を利用する際には、通常のOracle Databaseとは異なる点に注意が必要です。本記事では、DBリンクの作成・管理に関する注意点や手順について解説します。
※、リンク先がAutonomous DBである場合、事前にリンク先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リンクの作成
Autonomous DBでは、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 <表名>@<DBリンク名>;
- SQL Developerでの確認
a). 接続名を展開
b).「データベース・リンク」を選択
c). 対象のリンクを右クリック →「データベース・リンクのテスト」→ 適用
成功すると、以下のようなメッセージが表示されます:
データベース・リンク"<リンク名>"が正常にテストされました
2-3. DBリンクの削除
DROP DATABASE LINK
コマンドもAutonomous DBでは使用できません。代わりに、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 を使用している場合、Autonomous DBでは、DBリンクを右クリックして「削除」を選択する方法では削除できません。
2-4. DBリンクの編集
Autonomous DBでは、作成済みのDBリンクを編集することはできません。編集したい場合は、いったんDBリンクを削除し、再作成する必要があります。
付録 - DBリンクの接続パターン
No. | 接続パターン | ドキュメントリンク |
---|---|---|
1 | Autonomous DB同士 | リンク |
2 | Autonomous DB ⇒ Oracle DB | リンク |
3 | Autonomous DB ⇒ Non-Oracle DB | リンク |
4 | Oracle DB ⇒ Autonomous DB | リンク |
以上
ドキュメントリンク
SQLコマンド
Use Database Links with Autonomous Database
Summary of DBMS_CLOUD_ADMIN Subprograms