Oracleのデータベース・リンク

データベースリンクとは、他のデータベース上のオブジェクトにアクセスできるスキーマオブジェクトである。データベースリンクを使用すると、別のインスタンスのオブジェクトにアクセスすることができる。

データベースリンク名

Oracleデータベースにおいて、オブジェクト名の長さは最大30バイトまでである。ただし、例外的にデータベース・リンク名の長さは最大128バイトまでである。

SELECT * FROM emp@example_database_link.segakuin.com

データベース・リンクを使用する際、ネットワークドメインの部分は省略できる。

SELECT * FROM emp@example_database_link

ネットワーク・ドメインを省略した場合、グローバル・データベース名のドメインがデータベース・リンクのドメインと見なされる。たとえば、グローバル・データベース名が sales.segakuin.com の場合、データベース・リンク example_database_link は example_database_link.segakuin.com と見なされる。

データベースリンクの種類

データベース・リンクには、次に示す2種類がある。

プライベート・データベース・リンク
データベース・リンクを作成したユーザーのみがアクセスすることができるデータベース・リンク
パブリック・データベース・リンク
全てのユーザーがアクセスできるデータベース・リンク

データベースリンクの同時使用数

ひとつのセッションで同時に使えるデータベース・リンクの数には制限がある。この数はopen_links初期化パラメータで設定されており、SHOWコマンドで確認できる。

SQL> SHOW PARAMETER OPEN_LINKS
NAME                     TYPE     VALUE
------------------------ -------- --------
open_links               integer  4
open_links_per_instance  integer  4

ひとつのセッションで同時に使えるデータベース・リンク数の制限を超えると、「ORA-02020:使用中のデータベース・リンクが多すぎます。」のエラーが発生する。

使用中のデータベース・リンクをクローズするには、COMMIT又はROLLBACKを行う。

SQL文

データベース・リンクを操作するSQL文の一覧を次に示す。

CREATE DATABASE LINK
データベース・リンクを作成する。
ALTER DATABASE LINK
データベース・リンクを変更する。
DROP DATABASE LINK
データベース・リンクを削除する。

システム権限

データベース・リンクを操作するために必要なシステム権限の一覧を次に示す。

ALTER DATABASE LINK
プライベート・データベース・リンクを変更できる。
ALTER PUBLIC DATABASE LINK
パブリック・データベース・リンクを変更できる。
CREATE DATABASE LINK
プライベート・データベース・リンクを作成および削除できる。
CREATE PUBLIC DATABASE LINK
パブリック・データベース・リンクを作成できる。
DROP PUBLIC DATABASE LINK
パブリック・データベース・リンクを削除できる。

データ・ディクショナリ

データベース・リンクに関するデータ・ディクショナリ・ビューの一覧を次に示す。

ALL_DB_LINKS
現在のユーザがアクセスできるデータベース・リンク
DBA_DB_LINKS
Oracleデータベース内すべてのデータベース・リンク
GLOBAL_NAME
グローバル・データベース名
USER_DB_LINKS
現在のユーザが所有するデータベース・リンク

データベースリンクの疎通確認

データベース・リンクの疎通確認を簡単に行うには、DUAL表を問い合わせる。

SQL> SELECT * FROM DUAL@dblink.segakuin.com;

D
-
X

SQL>