兩台服務器不同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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM