物理上存放于網絡的多個ORACLE數據庫,邏輯上可以看成一個單個的大數
據庫。用戶可以通過網絡對異地數據庫中的數據同時進行存取,而服務器之間
的協同處理對于工作站用戶及應用程序而言是完全透明的:開發人員無需關心
網絡的鏈接細節、無需關心數據在網絡接點中的具體分布情況、也無需關心服
務器之間的協調工作過程。
數據庫之間的鏈接建立在DATABASE LINK上。要創建一個DB LINK,必須先
在每個數據庫服務器上設置鏈接字符串。
例如,深圳SUN平臺ORACLE數據庫,在/var/opt/oracle/tnsnames.ora中有以下
一條和北京的數據庫鏈接tobeijing,格式如下:
鏈接字符串的設置 |
說 明 |
tobeijing=(description= | database link名稱:tobeijing |
(address=(protocol=tcp) | 采用tcp/ip協議 |
(host=www.bj.col.com.cn) | 欲鏈接主機名稱或IP地址 |
(port=1521)) | 網絡端口1521 |
(connect_data=(sid=oracle7))) | 安裝ORACLE采用的sid |
然后進入系統管理員SQL>操作符下,運行命令:
SQL>create public database link beijing connect to scott identified by tiger
using 'tobeijing';
則創建了一個以scott用戶和北京數據庫的鏈接beijing,我們查詢北京的scott數據:
SQL>select * from emp@beijing;
這樣就可以把深圳和北京scott用戶的數據做成一個整體來處理。
為了使有關分布式操作更透明,ORACLE數據庫里有同義詞的對象synonym
SQL>create synonym bjscottemp for emp@beijing;
于是就可以用bjscottemp來替代帶@符號的分布式鏈接操作emp@beijing。
查看所有的數據庫鏈接,進入系統管理員SQL>操作符下,運行命令:
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 | 完全刷新,運行SQL語句 |
force | 自動判斷刷新,介于fast和complete之間 |