Oracleデータベースリンクの使い方(作成・確認・削除)

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

目次

  1. データベースリンク名
  2. データベースリンクの種類
    1. プライベート・データベース・リンク
    2. パブリック・データベース・リンク
  3. SQL文
    1. CREATE DATABASE LINK
    2. ALTER DATABASE LINK
    3. DROP DATABASE LINK
    4. SELECT
      1. データベースリンクの疎通確認
  4. SQL*Plus
    1. SHOW
      1. データベースリンク同時使用数の確認
  5. システム権限
    1. ALTER DATABASE LINK
    2. ALTER PUBLIC DATABASE LINK
    3. CREATE DATABASE LINK
    4. CREATE PUBLIC DATABASE LINK
    5. DROP PUBLIC DATABASE LINK
  6. データ・ディクショナリ
    1. ALL_DB_LINKS
    2. DBA_DB_LINKS
    3. GLOBAL_NAME
    4. USER_DB_LINKS

データベースリンク名

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種類がある。

プライベート・データベース・リンク

プライベート・データベース・リンクは、データベース・リンクを作成したユーザーのみがアクセスすることができるデータベース・リンクである。

パブリック・データベース・リンク

パブリック・データベース・リンクは、全てのユーザーがアクセスできるデータベース・リンクである。

SQL文

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

CREATE DATABASE LINK

CREATE DATABASE LINK は、データベース・リンクを作成するSQL文である。

ALTER DATABASE LINK

ALTER DATABASE LINK は、データベース・リンクを変更するSQL文である。

DROP DATABASE LINK

DROP DATABASE LINK は、データベース・リンクを削除するSQL文である。

SELECT

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

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

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

D
-
X

SQL>

SQL*Plus

データベース・リンクに関する SQL*Plus コマンドを以下に示す。

SHOW

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

ひとつのセッションで同時に使えるデータベース・リンクの数には制限がある。この数は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を行う。

システム権限

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

  1. ALTER DATABASE LINK
  2. ALTER PUBLIC DATABASE LINK
  3. CREATE DATABASE LINK
  4. CREATE PUBLIC DATABASE LINK
  5. DROP PUBLIC DATABASE LINK

ALTER DATABASE LINK

ALTER DATABASE LINK は、プライベート・データベース・リンクを変更できるシステム権限である。

ALTER PUBLIC DATABASE LINK

ALTER PUBLIC DATABASE LINK は、パブリック・データベース・リンクを変更できるシステム権限である。

CREATE DATABASE LINK

CREATE DATABASE LINK は、プライベート・データベース・リンクを作成および削除できるシステム権限である。

CREATE PUBLIC DATABASE LINK

CREATE PUBLIC DATABASE LINK は、パブリック・データベース・リンクを作成できるシステム権限である。

DROP PUBLIC DATABASE LINK

DROP PUBLIC DATABASE LINK は、パブリック・データベース・リンクを削除できるシステム権限である。

データ・ディクショナリ

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

ALL_DB_LINKS

ALL_DB_LINKS は、現在のユーザがアクセスできるデータベース・リンクを示す。

DBA_DB_LINKS

DBA_DB_LINKS は、Oracleデータベース内すべてのデータベース・リンクを示す。

GLOBAL_NAME

GLOBAL_NAME は、グローバル・データベース名を示す。

USER_DB_LINKS

USER_DB_LINKS は、現在のユーザが所有するデータベース・リンクである。