Top/Oracle/データベースリンクの設定方法・使用方法

Oracle/データベースリンクの設定方法・使用方法

OracleにはDatabaseLinkという、別DBサーバのDB(リモートDB)を自分のDBサーバのDB(ローカルDB)からそのまま操作できる機能があります。
設定方法および使用方法について簡単にまとめました。

「tnsnames.ora」の編集

まず、自分のDBサーバ内の「tnsnames.ora」に「リモートDBへの接続情報」を追記します。
以下の前提で設定しています。

  • 別DBサーバのホスト名:RMTSVR (IPアドレスでも可)
  • 別DBサーバのOracleポート:1521
  • 別DBサーバの今回接続SID名:RMTDB(他とかぶらない範囲で自由に命名)
  • サービス名:RMTDBSERV (他とかぶらない範囲で自由に命名)
***↓自分のDBサーバ内の「tnsnames.ora」に以下を追記
RMTDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = RMTSVR)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = RMTDBSERV)
    )
  )

データベースリンク作成権限の付与

次に、別DBサーバのほうにログインし、ユーザーにデータベースリンクを作成する権限を与えます。
以下の前提で設定しています。

  • 別DBサーバのDB名:localdb
  • 別DBサーバのsystemユーザーパスワード:manager
  • 別DBサーバのOracle通常ユーザー名:localusr

データベースリンクの作成

次に、データベースリンクの作成を行います。
リンク名、および、リモートDBの接続に使用するユーザー名、パスワードを指定します。
以下の前提で設定しています。

  • 別DBサーバのDB名:localdb
  • 別DBサーバのOracle通常ユーザー名:localusr
  • 別DBサーバのOracle通常ユーザーパスワード:localpwd
  • 自DBサーバのOracle通常ユーザー名:rmtusr
  • 別DBサーバの今回接続SID名:RMTDB(上記で設定)
***↓以下、SQL*PLUSなどから実行
SQL> CONN localusr/localpwd@localdb
SQL> CREATE DATABASE LINK testlink CONNECT TO rmtusr IDENTIFIED BY rmtpwd USING 'RMTDB';

これで「testlink 」という名前のデータベースリンクが張られました。

データベースリンクの利用方法

実際にリモートDBに接続しにいく場合はテーブル名の後に@{データベースリンク名}を付加します。
自DBサーバから見に行く場合の例です。

***↓以下、SQL*PLUSなどから実行
SQL> SELECT * FROM rmttbl@testlink;

なお、ロールバックやコミットについてもローカルDBと同じようにできます。

「tnsnames.ora」を編集しない方法

また、tnsnames.oraを編集しないで済む方法もあります。

***↓以下、SQL*PLUSなどから実行
SQL> CREATE DATABASE LINK testlink CONNECT TO rmtusr IDENTIFIED BY rmtpwd 
USING 'RMTSVR/RMTDBSERV';
このページを共有:
  • このページをはてなブックマークに追加 このページを含むはてなブックマーク
  • このページをlivedoor クリップに追加 このページを含むlivedoor クリップ
  • このページをYahoo!ブックマークに追加
  • このページを@niftyクリップに追加
  • このページをdel.icio.usに追加
  • このページをGoogleブックマークに追加

このページのURL:

ページ新規作成

新しいページはこちらから投稿できます。

TOP