CREATE DATABASE LINK KDB.WORLD
CONNECT TO USER01 IDENTIFIED BY
USING 'K-DB1'
/
上記のデータベースリンクがあり、
以前は
select * from test@KDB
といった形式でアクセスしていたのですが、
select * from test@KDB.WORLD
といったようにドメイン名を入れないと接続できなくなりました。
以前のようにドメイン名を省略してリモートDBにアクセスしたいのですが、
どうすればよいでしょうか?
<回答内容>
データベースリンクのドメインが global_name と同じ場合は、データベース
リンク使用時にドメイン名を省略した書式(@
可能となります。
例えば次のような場合です。
まずドメイン名を省略したいデータベースリンクを確認します。
SQL> select owner,db_link from dba_db_links;
OWNER DB_LINK
-------------------- --------------------
SYSTEM DB1.WORLD
~~~~~~
ドメイン名を省略したいデータベースリンクが存在しているデータベース
の global_name を調べます。
SQL> select * from global_name;
GLOBAL_NAME
-----------------------------------------
DB2.WORLD
~~~~~~
上記のデータベースリンクのドメイン名は global_name と同じドメイン名
"WORLD" のため データベースリンク "DB1.WORLD" を使用する場合に
"select * from v$instance@db1" のように省略することが可能となります。
お客様の環境では以前にドメイン名を省略できていたとのことですので
global_name の変更が行われた可能性がございます。
global_name の変更は下記のalter database文にて可能ですが
global_name を変更した目的や変更しても問題なかなどをDBA管理者または
global_name を変更された方へ確認したのちに変更されることをお奨め致します。
-----------------------------------------
ALTER DATABASE RENAME GLOBAL_NAME TO db_name.db.domain;
-----------------------------------------
参考情報
MetaLink#117759.1 DATABASE LINK (DBLINK) TROUBLESHOOTING
KROWN#85279 GLOBAL_NAME をドメインなしの名前に変更できない
No comments:
Post a Comment