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

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


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


#contents()

*「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 」という名前のデータベースリンクが張られました。
ffff
*データベースリンクの利用方法
実際にリモート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';

ページ新規作成

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

TOP