客先常駐SESとしてOracleを触る中で、
「DBLink の作り方どれだっけ…?」
「シノニムの文法、毎回忘れる…」
と何度も検索してしまうことがあります。
この記事では、現場で頻出する DBLink と シノニム(SYNONYM)の確認・作成・削除 を、
自分用の備忘録も兼ねて分かりやすくまとめました。
- 基本的な SELECT は理解している
- Oracle 環境で作業している
- 客先常駐でサクッと確認したい
という人向けです。
■ DBLink(データベースリンク)
外部DBに接続し、リモートのオブジェクトにアクセスするためのリンク。
現場で使うのに忘れやすいので、確認・作成・削除を整理。
▼ DBLink の確認
SELECT * FROM DBA_DB_LINKS; SELECT * FROM ALL_DB_LINKS;
DBA_DB_LINKS:DBA権限がある場合に利用ALL_DB_LINKS:一般ユーザでも確認できる範囲
FROM の後ろがなぜか毎回出てこないのでメモ。
▼ DBLink の作成
CREATE [PUBLIC] DATABASE LINK <DBLINK_NAME> CONNECT TO <USER_NAME> IDENTIFIED BY <PASSWORD> USING '<DB_CONNECTION_NAME>';
● ここが詰まりポイント
USINGの DB接続名は tnsnames.ora に記述- 現場だとこのファイルの場所が分かりづらいことが多い
- そのため DB接続名 = DBLink名 にして覚えやすくする運用もあり(可だが要チーム方針)
▼ DBLink の削除
DROP DATABASE LINK <DBLINK_NAME>;
削除作業は少ないものの、DATABASE LINK をフルで打つので咄嗟にでてこないことが多い。
■ シノニム(SYNONYM)
別名をつけてオブジェクトにアクセスしやすくする仕組み。
DBLink と組み合わせる現場が多い。
▼ シノニムの確認
SELECT * FROM ALL_SYNONYMS;
SYNONYM のスペルが毎回怪しくなるのでメモ…。
▼ シノニムの作成
● ローカルオブジェクトへのシノニム
CREATE OR REPLACE SYNONYM <SYNONYM_NAME> FOR <SCHEMA_NAME>.<OBJECT_NAME>;
● DBLink 経由のシノニム(現場で一番使う)
CREATE OR REPLACE SYNONYM <SYNONYM_NAME> FOR <SCHEMA_NAME>.<OBJECT_NAME>@<DBLINK_NAME>;
DBLink を張り → シノニムを貼る流れはSES現場で鉄板。
この組み合わせを忘れるので記事化。
▼ シノニムの削除
DROP SYNONYM <SYNONYM_NAME>;
こちらは削除する機会も多いので覚えておくと便利。
■ よくある詰まりポイント(SESあるある)
● ① tnsnames.ora の場所が分からない
環境によって場所がバラバラなので、
チームの標準化ドキュメントかインフラ担当に確認するのが最速。
● ② PUBLIC と PRIVATE の使い分け
- チーム全体で使う →
PUBLIC DATABASE LINK - 個人のみで使う → 通常の
DATABASE LINK
客先環境では勝手に PUBLIC を作らないよう注意。
● ③ 権限不足で作成できない
CREATE DATABASE LINKCREATE SYNONYM
あたりはロールに含まれていないことが多い。
■ まとめ(実務で使う最短メモ)
- DBLink と シノニムは 現場で頻出だが忘れやすい
- DBLink の USING 句は tnsnames.ora の名称が必要
- シノニムは DBLink と組み合わせることが多い
- 確認・作成・削除のSQLだけ覚えておけば大体対応できる
SESは現場によって環境が全然違うので、
こういった基礎は自分の中でテンプレ化しておくとめちゃくちゃ楽です。



コメント