物理上存放于網(wǎng)絡(luò)的多個ORACLE數(shù)據(jù)庫,邏輯上可以看成一個單個的大數(shù)據(jù)庫。用戶可以通過網(wǎng)絡(luò)對異地數(shù)據(jù)庫中的數(shù)據(jù)同時進(jìn)行存取,而服務(wù)器之間的協(xié)同處理對于工作站用戶及應(yīng)用程序而言是完全透明的:開發(fā)人員無需關(guān)心網(wǎng)絡(luò)的鏈接細(xì)節(jié)、無需關(guān)心數(shù)據(jù)在網(wǎng)絡(luò)接點中的具體分布情況、也無需關(guān)心服務(wù)器之間的協(xié)調(diào)工作過程。
數(shù)據(jù)庫之間的鏈接建立在DATABASE LINK上。要創(chuàng)建一個DB LINK,必須先在每個數(shù)據(jù)庫服務(wù)器上設(shè)置鏈接字符串。
例如,深圳SUN平臺ORACLE數(shù)據(jù)庫,在/var/opt/oracle/tnsnames.ora中有以下一條和北京的數(shù)據(jù)庫鏈接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)建了一個以scott用戶和北京數(shù)據(jù)庫的鏈接beijing,我們查詢北京的scott數(shù)據(jù):
SQL>select * from emp@beijing;
這樣就可以把深圳和北京scott用戶的數(shù)據(jù)做成一個整體來處理。
為了使有關(guān)分布式操作更透明,ORACLE數(shù)據(jù)庫里有同義詞的對象synonym
SQL>create synonym bjscottemp for emp@beijing;
于是就可以用bjscottemp來替代帶@符號的分布式鏈接操作emp@beijing。
查看所有的數(shù)據(jù)庫鏈接,進(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,只更新時間段變動部分 complete 完全刷新,運(yùn)行SQL語句 force 自動判斷刷新,介于fast和complete之間
|