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

Posted Code_World_Final

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两台服务器不同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

 

以上是关于两台服务器不同oracle数据库使用dblink+merge实现数据同步的主要内容,如果未能解决你的问题,请参考以下文章

使用 DBlink 进行 oracle 插入

Oracle使用dblink连接SqlServer

两台数据库服务器 如何进行数据同步操作

Oracle不同数据库之间同步处理方案

Oracle使用dblink连接SqlServer

Oracle跨服务器访问使用dblink