2013年11月8日 星期五

[Tips]如何建立Database Link

Oracle Database中,當我們想要查詢其它資料庫的時候,可以利用Database Link來達成目的。

CREATE DATABASE LINK 
DBlink_Name
CONNECT TO user IDENTIFIED BY "password"
using 'Service_Name';
user為連結的帳號,password為連結的密碼,user必須要授予CONNECT角色,才能具有ALTER SESSIONCREATE CLUSTER/DATABASE LINK/SEQUENCE/SESSION/SYNONYM/VIEW的權限。

GRANT CONNECT to user;

using
的部分,輸入下面tnsnames.ora建立的SERVICE_NAME

為了要從本機端去查詢遠端資料庫的內容,因此我們必須先修改tnsnames.ora,增加連線到遠端的位址。

tnsnames.ora
位置通常在\product\11.2.0\dbhome_1\NETWORK\ADMIN裡面。

1.
增加遠端資料庫的Service Name(orcl)
PRODUCT =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.x.x)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

2.
建立Database Link
CREATE DATABASE LINK orcl_dblink
CONNECT TO scott IDENTIFIED BY "tiger"
using 'orcl';

3.查詢遠端資料庫(orcl)的內容
SELECT * FROM scott.emp@orl_dblink

@orl_dblink
代表這段查詢是要透過Database Link來完成。

4.
移除Database Link
DROP DATABASE LINK orl_dblink;

5.
查詢Database Link情況
SELECT * FROM v$dblink;