两台服务器不同oracle数据库使用dblink+merge实现数据同步

目标:两台服务器两个oracle数据库   

 主服务器:192.168.0.1   主数据库:center    

 目标服务器:192.168.0.2 目标数据库:branch

//首先保证两台服务器可以ping通

--1、在主数据库中创建dblink ,branch为dblink名称,用户名和密码写自己的,192.168.0.2为目标服务器,orcl为目标数据库

create database link branch connect to 用户名 identified by "密码" using '192.168.0.2/branch';    

--2、验证dblink,branch为dblink名称
select * from 目标数据库中任意一个表名称@branch;

--3、通过merge语句完成表数据同步, 通过主键进行判断,如果两张表主键相同就进行数据更新,否则进行数据插入

merge into 目标数据库需要同步的表名称@branch b using 主数据库需要同步的表名称 c on(b.id=c.id)
when matched then
  update set b.name=c.name,b.age=c.age
when not matched
  then insert values(c.id,c.name,c.age);
commit;
exit;

//4、可以创建bat文件来执行merge.sql文件

创建merge.bat文件,log.txt(存储日志信息)

@echo off
sqlplus 用户名/密码@主数据库名称 @G:\java\merge\merge.sql > log.txt
exit

 

posted @ 2018-09-20 16:25  Code_World_Final  阅读(2700)  评论(0编辑  收藏  举报