首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DBLINK+TRIGGER实现不同数据库间数据同步

生产环境中,经常会有一些关键数据表,数据量较小且不会经常发生变化,如用户信息表(本文以t_admin为例),可以使用DBLINK+TRIGGER的方法来实现不同数据库间数据同步,将关键表数据自动备份到备份服务器。

一、创建dblink,语法如下:

CREATE [PUBLIC] DATABASE LINK link

CONNECT TO username IDENTIFIED BY password

USING ‘connectstring’

或者直接在pl/sql devloper中创建dblink:

使用语句如下:

create public database link TESTMMS1

connect to TEST

using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.0.101)(PORT = 1521)))(CONNECT_DATA =(SID =ORCL )))';

二、创建TRIGGER,如下:

CREATE OR REPLACE TRIGGER tr_admin

AFTER INSERT OR UPDATE OF USERTYPE

ON yw17.T_admin

FOR EACH ROW

DECLARE v_count NUMBER;

BEGIN

SELECT COUNT(*) INTO v_count FROM YW18.T_admin@testmms1 WHERE USERNAME = :new.USERNAME;

IF v_count=0 THEN

INSERT INTO yw18.T_admin@testmms1 (USERNAME,PASSWORD,USERTYPE,LASTLOGINTIME,CREATIME,STATUS,RIGHT) VALUES(:NEW.USERNAME,:NEW.PASSWORD,:NEW.USERTYPE,:NEW.LASTLOGINTIME,:NEW.CREATIME,:NEW.STATUS,:NEW.RIGHT);

ELSE

UPDATE yw18.T_admin@testmms1

SET password=:NEW.PASSWORD,userType=:NEW.USERTYPE,status=:NEW.STATUS,right=:NEW.RIGHT

WHERE userName=:NEW.USERNAME;

END IF;

END;

以上,当本地表yw17.t_admin有insert或update时,触发器会自动更新yw18.t_admin,实现数据同步。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171223G00KCW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券