物理上存放於網路的多個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之間 |