物理上存放于網(wǎng)絡(luò)的多個(gè)ORACLE數(shù)據(jù)庫(kù),邏輯上可以看成一個(gè)單個(gè)的大數(shù)據(jù)庫(kù)。用戶可以通過網(wǎng)絡(luò)對(duì)異地?cái)?shù)據(jù)庫(kù)中的數(shù)據(jù)同時(shí)進(jìn)行存取,而服務(wù)器之間的協(xié)同處理對(duì)于工作站用戶及應(yīng)用程序而言是完全透明的:開發(fā)人員無需關(guān)心網(wǎng)絡(luò)的鏈接細(xì)節(jié)、無需關(guān)心數(shù)據(jù)在網(wǎng)絡(luò)接點(diǎn)中的具體分布情況、也無需關(guān)心服務(wù)器之間的協(xié)調(diào)工作過程。
數(shù)據(jù)庫(kù)之間的鏈接建立在DATABASE LINK上。要?jiǎng)?chuàng)建一個(gè)DB LINK,必須先在每個(gè)數(shù)據(jù)庫(kù)服務(wù)器上設(shè)置鏈接字符串。
例如,深圳SUN平臺(tái)ORACLE數(shù)據(jù)庫(kù),在/var/opt/oracle/tnsnames.ora中有以下一條和北京的數(shù)據(jù)庫(kù)鏈接tobeijing,格式如下:
鏈接字符串的設(shè)置 說明 tobeijing=(description= database link名稱:tobeijing (address=(protocol=tcp) 采用tcp/ip協(xié)議 (host=www.bj.col.com.cn) 欲鏈接主機(jī)名稱或IP地址 (port=1521)) 網(wǎng)絡(luò)端口1521 (connect_data=(sid=oracle7))) 安裝ORACLE采用的sid
然后進(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è)整體來處理。
為了使有關(guān)分布式操作更透明,ORACLE數(shù)據(jù)庫(kù)里有同義詞的對(duì)象synonym
SQL>create synonym bjscottemp for emp@beijing;
于是就可以用bjscottemp來替代帶@符號(hào)的分布式鏈接操作emp@beijing。
查看所有的數(shù)據(jù)庫(kù)鏈接,進(jìn)入系統(tǒng)管理員SQL>操作符下,運(yùn)行命令:
SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';
建ORACLE快照日志: SQL>create snapshot log on table3 with primary key;
建快照: SQL>create snapshot table3beijing refresh force start with sysdate next sysdate+1/24 with primary key as select * from table3@beijing;
ORACLE的快照刷新方式refresh有三種:
fast 快速刷新,用snapshot log,只更新時(shí)間段變動(dòng)部分 complete 完全刷新,運(yùn)行SQL語句 force 自動(dòng)判斷刷新,介于fast和complete之間
|