一、數(shù)據(jù)庫(kù)鏈路的建立:
1、數(shù)據(jù)庫(kù)鏈路的建立語(yǔ)法一般是:CREATE DATABASE LINK [db_link_name] CONNECT TO
[user_name] IDENTIFIED BY [password] USING '[tns_name]';
其中:
[DB_LINK_NAME]:是所要連接的數(shù)據(jù)庫(kù)的服務(wù)名,也就是該數(shù)據(jù)庫(kù)的真實(shí)名稱(通常就是SID)。
[USRE_NAME]:是所要連接的用戶名稱。
[PASSWORD]:是所要連接的用戶的密碼。
[TNS_NAME]:是所要連接的數(shù)據(jù)庫(kù)的服務(wù)命名,也就是在本機(jī)上建立的NET8服務(wù)命名。
2、當(dāng)使用當(dāng)前用戶做為連接者時(shí),語(yǔ)法可以是:CREATE DATABASE LINK [db_link_name] CONNECT TO CURRENT_USER USING '[tns_name]' (某些情況下這種方法建立的數(shù)據(jù)庫(kù)鏈路都未處于活動(dòng)狀態(tài),不知道是不是語(yǔ)法有誤,暫不推薦使用)。
3、當(dāng)使用已連接用戶做為連接者時(shí),語(yǔ)法可以是:CREATE DATABASE LINK [db_link_name]
USING '[tns_name]' 。
4、要建立公共的數(shù)據(jù)庫(kù)鏈路語(yǔ)法可以是:只要在CREATE后加PUBLIC關(guān)鍵字就可以了。
5、假如你在init.ora文件里的global_names = true只能用上面的方法,如果global_names =false,[DB_LINK_NAME]不一定要是數(shù)據(jù)庫(kù)的真實(shí)名稱,可以是一個(gè)隨意的名字。也就是說(shuō),當(dāng)global_names = true時(shí),數(shù)據(jù)庫(kù)的每一個(gè)用戶只能有一個(gè)數(shù)據(jù)庫(kù)鏈路,而當(dāng)global_names = false時(shí),每一個(gè)用戶都可以建立N多個(gè)鏈路,但一般情況下是沒(méi)有意義的。
二、數(shù)據(jù)庫(kù)鏈路的使用:
1、數(shù)據(jù)庫(kù)鏈路的主要用途就是實(shí)現(xiàn)對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的訪問(wèn),你可以通過(guò)數(shù)據(jù)庫(kù)鏈路直接對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)
的表進(jìn)行讀寫,也可以在本地建立遠(yuǎn)程數(shù)據(jù)庫(kù)的視圖和同意詞,另外在進(jìn)行雙機(jī)熱備份時(shí)也要用到數(shù)據(jù)庫(kù)鏈路。
2、直接訪問(wèn):SELECT * FROM [user_name].[table_name]@[db_link_name];INSERT,UPDATE,DELETE等也同樣適用。
3、建立同義詞:CREATE SYNONYM [user_name].[synonym_name] FOR [user_name].[table_name]@
[db_link_name] ; 視圖也是一個(gè)道理。
4、由于雙機(jī)熱備是另一個(gè)復(fù)雜的問(wèn)題,本文暫不贅述。如果想在兩個(gè)數(shù)據(jù)庫(kù)間實(shí)現(xiàn)幾個(gè)表的同步,做一個(gè)雙機(jī)太復(fù)雜,可以考慮用觸發(fā)器來(lái)解決,在觸發(fā)器中用以上方法引用遠(yuǎn)程表,對(duì)其進(jìn)行插入,刪除也可以做到同步。
參考示例如下:
數(shù)據(jù)庫(kù)之間的鏈接建立在DATABASE LINK上。要?jiǎng)?chuàng)建一個(gè)DB LINK,必須先在每個(gè)數(shù)據(jù)庫(kù)服務(wù)器上設(shè)置鏈接字符串。
1、鏈接字符串即服務(wù)名,首先在本地配置一個(gè)服務(wù)名,地址指向遠(yuǎn)程的數(shù)據(jù)庫(kù)地址,服務(wù)名取為將來(lái)你要使用的數(shù)據(jù)庫(kù)鏈名:
2、創(chuàng)建數(shù)據(jù)庫(kù)鏈接,
進(jìn)入系統(tǒng)管理員SQL>操作符下,運(yùn)行命令:
SQL>create public database link beijing connect to scott identified by tiger using 'tobeijing';
則創(chuàng)建了一個(gè)以scott用戶和北京數(shù)據(jù)庫(kù)的鏈接beijing,我們可以查詢北京的scott數(shù)據(jù):
SQL>select * from emp@beijing;
這樣就可以把深圳和北京scott用戶的數(shù)據(jù)做成一個(gè)整體來(lái)處理。
1、數(shù)據(jù)庫(kù)鏈路的建立語(yǔ)法一般是:CREATE DATABASE LINK [db_link_name] CONNECT TO
[user_name] IDENTIFIED BY [password] USING '[tns_name]';
其中:
[DB_LINK_NAME]:是所要連接的數(shù)據(jù)庫(kù)的服務(wù)名,也就是該數(shù)據(jù)庫(kù)的真實(shí)名稱(通常就是SID)。
[USRE_NAME]:是所要連接的用戶名稱。
[PASSWORD]:是所要連接的用戶的密碼。
[TNS_NAME]:是所要連接的數(shù)據(jù)庫(kù)的服務(wù)命名,也就是在本機(jī)上建立的NET8服務(wù)命名。
2、當(dāng)使用當(dāng)前用戶做為連接者時(shí),語(yǔ)法可以是:CREATE DATABASE LINK [db_link_name] CONNECT TO CURRENT_USER USING '[tns_name]' (某些情況下這種方法建立的數(shù)據(jù)庫(kù)鏈路都未處于活動(dòng)狀態(tài),不知道是不是語(yǔ)法有誤,暫不推薦使用)。
3、當(dāng)使用已連接用戶做為連接者時(shí),語(yǔ)法可以是:CREATE DATABASE LINK [db_link_name]
USING '[tns_name]' 。
4、要建立公共的數(shù)據(jù)庫(kù)鏈路語(yǔ)法可以是:只要在CREATE后加PUBLIC關(guān)鍵字就可以了。
5、假如你在init.ora文件里的global_names = true只能用上面的方法,如果global_names =false,[DB_LINK_NAME]不一定要是數(shù)據(jù)庫(kù)的真實(shí)名稱,可以是一個(gè)隨意的名字。也就是說(shuō),當(dāng)global_names = true時(shí),數(shù)據(jù)庫(kù)的每一個(gè)用戶只能有一個(gè)數(shù)據(jù)庫(kù)鏈路,而當(dāng)global_names = false時(shí),每一個(gè)用戶都可以建立N多個(gè)鏈路,但一般情況下是沒(méi)有意義的。
二、數(shù)據(jù)庫(kù)鏈路的使用:
1、數(shù)據(jù)庫(kù)鏈路的主要用途就是實(shí)現(xiàn)對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的訪問(wèn),你可以通過(guò)數(shù)據(jù)庫(kù)鏈路直接對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)
的表進(jìn)行讀寫,也可以在本地建立遠(yuǎn)程數(shù)據(jù)庫(kù)的視圖和同意詞,另外在進(jìn)行雙機(jī)熱備份時(shí)也要用到數(shù)據(jù)庫(kù)鏈路。
2、直接訪問(wèn):SELECT * FROM [user_name].[table_name]@[db_link_name];INSERT,UPDATE,DELETE等也同樣適用。
3、建立同義詞:CREATE SYNONYM [user_name].[synonym_name] FOR [user_name].[table_name]@
[db_link_name] ; 視圖也是一個(gè)道理。
4、由于雙機(jī)熱備是另一個(gè)復(fù)雜的問(wèn)題,本文暫不贅述。如果想在兩個(gè)數(shù)據(jù)庫(kù)間實(shí)現(xiàn)幾個(gè)表的同步,做一個(gè)雙機(jī)太復(fù)雜,可以考慮用觸發(fā)器來(lái)解決,在觸發(fā)器中用以上方法引用遠(yuǎn)程表,對(duì)其進(jìn)行插入,刪除也可以做到同步。
參考示例如下:
數(shù)據(jù)庫(kù)之間的鏈接建立在DATABASE LINK上。要?jiǎng)?chuàng)建一個(gè)DB LINK,必須先在每個(gè)數(shù)據(jù)庫(kù)服務(wù)器上設(shè)置鏈接字符串。
1、鏈接字符串即服務(wù)名,首先在本地配置一個(gè)服務(wù)名,地址指向遠(yuǎn)程的數(shù)據(jù)庫(kù)地址,服務(wù)名取為將來(lái)你要使用的數(shù)據(jù)庫(kù)鏈名:
2、創(chuàng)建數(shù)據(jù)庫(kù)鏈接,
進(jìn)入系統(tǒng)管理員SQL>操作符下,運(yùn)行命令:
SQL>create public database link beijing connect to scott identified by tiger using 'tobeijing';
則創(chuàng)建了一個(gè)以scott用戶和北京數(shù)據(jù)庫(kù)的鏈接beijing,我們可以查詢北京的scott數(shù)據(jù):
SQL>select * from emp@beijing;
這樣就可以把深圳和北京scott用戶的數(shù)據(jù)做成一個(gè)整體來(lái)處理。

