兩臺服務器不同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實現數據同步