Oracle/データベースリンクの設定方法・使用方法 のバックアップ(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Oracle/データベースリンクの設定方法・使用方法 へ行く。
- 1 (2014-02-14 (金) 21:28:58)
- 2 (2015-04-10 (金) 09:19:04)
- 3 (2018-04-04 (水) 19:15:04)
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
***↓以下、SQL*PLUSなどから実行 SQL> CONN system/manager@localdb SQL> GRANT CREATE DATABASE LINK TO 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';