
「データベースリンク」とは?
複数のデータベースが分散する環境で、データ統合のために用いられる仕組み
複数のデータベースに分散するデータを、あたかも一つのデータベースとして扱わせることができる仕組み。
メリット
クライアントアプリケーションが、複数データベースを利用する場合でも、1回セッションを確立すれば、複数データベースを利用することができる。
動作の仕組み
下記の二つの要素が、「Oracle Net」によって通信が実施されます。
特に、アプリを利用するクライアント側での設定は必要ないという認識は持っておきましょう。
ローカルデータベース
「データベースリンクの接続元データベース」のことです。
こちら側に、データベースリンクの定義を設定します。
また、こちらから、リモートデータベースに接続できるように、「Oracle Net Serviceの構成」も必要になります。
リモートデータベース
「データベースリンクの接続先データベース」のことです。
こちら側では、データベースリンクの定義は不要です。
データベースリンクの設定方法
データベースリンクを作成する
下記のSQLを実行します。
1 2 3 |
CREATE [PUBLIC] DATABASE LINK <データベースリンク名> [CONNECT TO <ユーザー名> IDENTIFIED BY <パスワード>] ←リモートデータベースに接続するためのユーザー情報を指定します。 USING <リモートデータベースに対応したネットサービス名>; |
PUBLICを付ける場合とつけない場合の違い
PUBLICを指定すると「パブリックデータベースリンク」になり、全てのユーザーが利用できるデータベースリンクになります。
指定しない場合は、「プライベートデータベースリンク」になり、データベースリンクを作成したユーザーだけが使用できます。
データベースリンクの確認方法
全てのデータベースリンクを確認したい場合
データベース内に存在する全てのデータベースリンクを下記で確認できます。
1 |
SELECT * FROM DBA_DB_LINKS; |
接続ユーザーが所有するデータベースリンクを確認したい場合
1 |
SELECT * FROM USER_DB_LINKS; |
アプリ側での実装方法
アプリ側では、オブジェクト名に「<オブジェクト名>@<データベースリンク名>」と指定する。
この記事へのコメントはありません。