公司所有测试服务器都有两套,所以两套测试数据库之间的数据同步,显得尤为重要:

假设数据库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数据库中。