一个成功的增量SNAPSHOT 例子

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企业版的高级复制,也能实行基本的简单复制,满足一般业务要求

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus