两台服务器不同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