Case: 上海有一个数据库,北京有另一个数据库,都是oracle9i 标准版. 在上海的数据库里,需要复制北京的一个表. 每天定时复制一次.由于数据量 较大,不能采用全备份恢复的方法. 故采用增量snapshot Procedure:
Step1: 在上海市服务器端,建立网络服务名Beijing
$HOST$= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=$Beijing_Server$)(Port=1521)) ) (CONNECT_DATA=(SERVER_NAME=$BJORA$)) ) 此步骤可以用oracle的网络配制,也可以直接修改TNSNAMES.ORA在上海市服务器 端. (提问?在UNIX下,哪种方式比较普遍, 直接修改TNSNAMES.ORA?)
Step2: 上海市服务器,建立连接北京的DBLINK Create PUBLIC Database LINK $DBLINK$ Connect to $UserName$ IDENTIFIED By $PASSWORD$ USING '$HOST$'
Step3. 在北京的服务器上建立SNAPSHOT LOG Create SNAPSHOT LOG ON $TAB$ WITH PRIMARY KEY; Step4 在上海的服务器上建立SNAPSHOT Create SNAPSHOT $TAB$ BUILD IMMEDIATE REFRESH FAST NEXT sysdate + $x$/24 AS SELECT * FROM $TAB$@$DBLIST$
Step5 如果手工刷新 EXEC DBMS_SNAPSHOT.REFRESH('$TAB$');
以上经过验证,Master 数据的增删改都能快速通过.
如果不用oracle企业版的高级复制,也能实行基本的简单复制,满足一般业务要求 
|