ITPub博客

首页 > 数据库 > Oracle > 通过创建oracle dblink 实现数据库之间的同步

通过创建oracle dblink 实现数据库之间的同步

Oracle 作者:verstand 时间:2014-03-08 23:16:24 0 删除 编辑

实现可分为四步。

一:在本地tnsnames.ora(该配置文件一般在"oracle主目录/ora90/network/ADMIN"中)里面配置一个服务命名,用于连接远程数据库。
oracle   = //dblink
的连接的服务名
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
   (PROTOCOL = TCP) //采用tcp/ip协议
  (HOST = xx.xx.xx.xx) //远程oracle 服务器主机名称或IP地址

   (PORT = 1521)) //网络端口
1521
)
(CONNECT_DATA =
  (SERVICE_NAME = oracle) //安装ORACLE采用的sid,即远程数据库服务名

)
)

二:建立dblink 

:

create  database  link   dbtest

connect  to xx  (xx 代表远程服务器用户名)

identified by yy(yy 代表远程服务器密码)

using 'oracle'(oracle 为上面添加的服务)

 

三:创建同义:

create  or  replace   synonym   sysxxx(同义词名称)

for  xx@dbtest(xx 代表需要同步的表)

:创建触发器

增、删、改需要建立触发器。

create or replace trigger TRI_GRADING
after INSERT OR DELETE OR UPDATE
ON GRADING
  //本地数据库表

FOR EACH ROW
BEGIN
IF inserting THEN
insert into SYN_GRADING (ID, DEVICEID, GRADE, INTHEYEAR, GRADINGMAN, CARID, STATE, DEPTNAME, DEPTNO)
values (:NEW.ID, :NEW.DEVICEID, :NEW.GRADE, :NEW.INTHEYEAR, :NEW.GRADINGMAN, :NEW.CARID, :NEW.STATE, :NEW.DEPTNAME, :NEW.DEPTNO);
ELSIF updating THEN
update SYN_GRADING set DEVICEID = :NEW.DEVICEID, GRADE = :NEW.GRADE, INTHEYEAR = :NEW.INTHEYEAR, GRADINGMAN = :NEW.GRADINGMAN, CARID = :NEW.CARID, STATE = :NEW.STATE, DEPTNAME = :NEW.DEPTNAME, DEPTNO = :NEW.DEPTNO
where id = :old.id;
ELSIF deleting THEN
delete from SYN_GRADING where id = :old.id;
END IF;
END TRI_GRADING;

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23125228/viewspace-1115537/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-01-03