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

Oracle/データベースリンクの設定方法・使用方法 のバックアップ差分(No.2)


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

ローカルDBがあるOracleのtnsnames.oraにリモート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

 CONN system/manager@localdb
 
 GRANT CREATE DATABASE LINK TO localusr;
 ***↓以下、SQL*PLUSなどから実行
 SQL> CONN system/manager@localdb
 SQL> GRANT CREATE DATABASE LINK TO localusr;

データベースリンク名およびリモートDBの接続に使用するユーザー名、パスワードを指定します。
*データベースリンクの作成
次に、データベースリンクの作成を行います。
リンク名、および、リモートDBの接続に使用するユーザー名、パスワードを指定します。
以下の前提で設定しています。
-別DBサーバのDB名:localdb
-別DBサーバのOracle通常ユーザー名:localusr
-別DBサーバのOracle通常ユーザーパスワード:localpwd
-自DBサーバのOracle通常ユーザー名:rmtusr
-別DBサーバの今回接続SID名:RMTDB(上記で設定)

 CONN localusr/localpwd@localdb
 
 CREATE DATABASE LINK testlink CONNECT TO rmtusr IDENTIFIED BY rmtpwd USING 'RMTDB';
 ***↓以下、SQL*PLUSなどから実行
 SQL> CONN localusr/localpwd@localdb
 SQL> CREATE DATABASE LINK testlink CONNECT TO rmtusr IDENTIFIED BY rmtpwd USING 'RMTDB';

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

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

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

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

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

 CREATE DATABASE LINK testlink CONNECT TO rmtusr IDENTIFIED BY rmtpwd USING 'RMTSVR/RMTDBSERV';
 ***↓以下、SQL*PLUSなどから実行
 SQL> CREATE DATABASE LINK testlink CONNECT TO rmtusr IDENTIFIED BY rmtpwd 
 USING 'RMTSVR/RMTDBSERV';

ページ新規作成

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

TOP