天天看點

建立dblink(database link)

database linke是建立一個資料庫到另一個資料庫的路徑的對象,通過database link可以允許查詢遠端表,我了解可以算作一種分布式資料庫的用法。

database link是單向連接配接,既然它是一種對象,那自然可以在xxx_objects表中查詢到相關的資訊。建立database link前需要明确幾個事情:

1、确認從建立方的server可以通路遠端資料庫。

2、需要在建立方的tnsnames中配置遠端資料庫連接配接串。

3、隻有在服務端配置的連接配接才能在dblink中使用,如果僅是在用戶端配置的連接配接是不能在dblink中使用,我這裡就犯了這個錯誤,執行時就報錯:

select * from t@dblinktest

                *

ERROR at line 1:

ORA-12154: TNS:could not resolve service name

很明顯,相當于服務端未配置tnsname,是以找不到遠端資料庫的service name配置。

建立過程:

1、建立方的服務端配置遠端資料庫的tnsname配置。

2、tnsping 遠端資料庫tnsnames配置名稱,可以通。

3、sqlplus登入後執行:

SQL> create database link dblinktest connect to user identified by passwd using ‘ceshi‘;

其中:

dblinktest是database link的名稱。

user是遠端資料庫的使用者名。

passwd是遠端資料庫的密碼。

ceshi是資料庫服務端配置的tnsnames中名稱。

4、執行:

SQL> select owner,object_name from dba_objects where object_type=‘DATABASE LINK‘;

OWNER           OBJECT_NAME

--------------- -------------------------

OPEN               DBLINKTEST

可以看到已經建立了這個database link。

5、執行:

SQL> select * from t@dblinktest;

        ID

----------

         2

         3

         4

         5

當然也可以執行insert語句:

SQL> insert into t@dblinktest values(1);

1 row created.

另外database link分為public和private的,預設是private,隻有目前使用者可用,如果是create public database link ...,則所有使用者都可以使用這個名稱的database link。