东凤镇做网站公司,什么是标记型网页制作工具,php可视化网站开发工具,wordpress难用搞了几天数据同步的程序#xff0c;写完之后觉得很浪费#xff0c;因为oracle自身的数据库联机备份功能已经相当强大。不过关键一点是我们应用场景跟联机备份有很大差别。虽然这次没用上oracle自身备份功能#xff0c;但是有一个通过建立db link 来实现同步倒也很简单#…搞了几天数据同步的程序写完之后觉得很浪费因为oracle自身的数据库联机备份功能已经相当强大。不过关键一点是我们应用场景跟联机备份有很大差别。虽然这次没用上oracle自身备份功能但是有一个通过建立db link 来实现同步倒也很简单查询了网上资料之后自己也实现了这一功能。具体步骤如下场景数据库版本oracle9i默认情况下两个数据库服务器都是刚建好的局域网或广域网上两台能互联的数据库服务器一个是main一个是ass现在每往main中某一表test增删改一条记录时ass中test表通过main库中触发器来增删改哦对了两个test结构一样我现在实现的是局域网内的数据同步:预热先建表*****************************************************************-- Create tablecreate table TEST(USERNAME VARCHAR2(20),PASSWORD VARCHAR2(10))tablespace SYNTESTpctfree 10initrans 1maxtrans 255storage(initial 64Kminextents 1maxextents unlimited);*****************************************************************1先构建一下ass数据库实例的连接符先备份一个%oracle_home%--ora92--network--admin--tnsnames.ora然后用UltraEdit打开添加如下*****************************************************************ass100 (DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST 192.168.0.100)(PORT 1521)))(CONNECT_DATA (SERVICE_NAME syntest)))*****************************ok************************************注意:ass100是用于网络连接用的名称2中要用到2建立db_link*****************************************************************create public database link syntest100connect to syntestidentified by syntestusing ass100*****************************************************************注意syntest100是db link 名称可以随便起名ass100就是1中的建立的连接符名称3如果2执行通过的话就可以建立同义synonym*****************************************************************create or replace synonym syn100 for*****************************************************************注意syntest100就是2中的db link 名称syntest.test是ass中的实例名.表名小提示执行完3后可以在本地执行select * from syn100,这时得出来的结果是ass数据库中表test的数据。4如果以上都正确的话现在可以为本地表test建触发器我写了3个触发器增加删除修改*****************************************************************--增加create or replace trigger syninsafter insert on testfor each rowbegininsert into syn100 (USERNAME,Password) values (:NEW.USERNAME,:NEW.password);end;--执行完可以测试一下/*添加本机一条记录insert into test (username,password) values (murphy,1234)查看ass表testselect * from syn100可以吧我这里是ok的。*/--修改create or replace trigger synupdafter update on testfor each rowdeclarebeginupdate syn100 set password :new.password where username :old.username;end synupd;--执行完可以测试一下/*修改本机一条记录update test set password 123 where username murphy查看ass表testselect * from syn100*/--删除create or replace trigger syndelafter delete on testfor each rowdeclare-- local variables herebegindelete from syn100 where username:old.username;end syndel;--执行完可以测试一下/*删除一条本地记录delete from test where username murphy查看ass表testselect * from syn100*/****************************全文完*************************************本文分享 CSDN - 田维常。如有侵权请联系 supportoschina.cn 删除。本文参与“OSC源创计划”欢迎正在阅读的你也加入一起分享。