您的位置:首页 > 数据库 > Oracle

oracle两个数据库间数据同步

2014-04-18 19:24 232 查看
公司所有测试服务器都有两套,所以两套测试数据库之间的数据同步,显得尤为重要:
假设数据库A 和 B,现要求如果A中数据有更新,则同时更新B数据库

首先一下所有操作都在A中进行:

(1)在A中建立到B的DBlink,
create public databASE link test
connect to user identified by "passwd" using 'test';

(2)在A中建立synonym(同义)
create or replace synonym abc for user.om_employee@test;

建好后,就可以用select * from abc查询B数据库中的数据,相当于select * from om_employee@test

(3)建立触发器
当A中的testable表变化时,就会触发向远程的B库的testable也插入相应的数据:

create or replace trigger tongbu after insert or update or delete on om_employee for each row
begin
if inserting then
insert into abc (id,empcode,userid) values (:new.id,:new.empcode,:new.userid);
end if;
if deleting then
delete from abc where id=:old.id;
end if;
if updating then
update abc set name=:new.name where id=:old.id;
end if;
end;

建好以上脚本后,在A数据库中的om_employee中插入或者删除数据,就会及时同步到B数据库中。

本文出自 “tenjhon” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: