生产环境中,经常会有一些关键数据表,数据量较小且不会经常发生变化,如用户信息表(本文以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,实现数据同步。
领取专属 10元无门槛券
私享最新 技术干货