如何實現Oracle數據庫之間的數據同步?

我們都知道,在Oracle數據庫的管理與開發工作中,總會存在著一些表數據和基礎資料數據,這時需要有效的將這些數據庫進行同步合并,有沒有什么簡單的方法可以實現Oracle數據庫之間的數據同步呢?在此誠愷科技重慶服務器頻道同大家分享利用dblink與merge結合的方法實現Oracle數據庫之間數據同步。
操作環境: 此數據庫服務器ip為192.168.196.76,有center與branch兩個庫,一般需要將center的表數據同步到branch,center為源庫,branch為目標庫,具體步驟如下:
1.在源庫創建到目標庫的dblink
create database link branch     --輸入所要創建dblink的名稱,自定義
connect to dbuser identified by “password”  --設置連接遠程數據庫的用戶名和密碼
using '192.168.196.76/branch';  --指定目標數據庫的連接方式,可用tns名稱

在創建dblink時,要注意,有時候可能會報用戶名和密碼錯誤,但實際上我們所輸入的賬戶信息是正確的,此時就注意將密碼的大小寫按服務器上所設置的輸入,并在賬號密碼前號加上雙引號(服務器版本不同造成的)。
2.成功后驗證dblink
select * from tb_bd_action@branch;

正常情況下,如果創建dblink成功,可采用該方式訪問到遠程數據庫的表.
3.通過merge語句完成表數據同步
此例中需要將center庫中的tb_sys_sqlscripe表同步到branch,簡單的語法如下:
merge into tb_sys_sqlscripe@branch b using tb_sys_sqlscripe c on (b.pk=c.pk)  --從center將表merge到branch,同步的依據是兩個表的pk
when matched then  update set b.sqlscripe=c.sqlscripe,b.author=c.author  --如果pk值是相同則將指定表的值更新到目標表
when not matched then                                --如果pk值不一至,則將源表中的數據整條插入到目標表中
insert values (c.pk, c.fk, c.createtime, c.lastmodifytime,c.author,c.module,c.deleteflag, c.scripttype);
commit;               --記得merge后必須commit,否則更改未能提交

4.為方便每次需要同步時自動完成同步工作,可將該語句做成存儲過程或腳本來定時執行或按要求手動執行,簡單說一下創建腳本的方法:
a.創建merge文件夾
b.先將merge語句寫完整后,存到merge.sql文件中
c.新建merge.bat文件,編輯后寫入以下內容
sqlplus user/password@serverip/database @"%cd%\merge.sql"

當運行merge.bat時就會自動完成所指定不同數據庫間的同步工作。

更我關于服務器、虛擬化、數據庫的相應知識文章可參考重慶誠愷科技官網。
轉自:http://www.cqeis.com/news_detail/newsId=34e12494-e6d5-49ed-b337-39edb7de4c84.html


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443913.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443913.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443913.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c++面試題總結1

內存結構 堆:由程序員手動分配和釋放,完全不同于數據結構中的堆,分配方式類似鏈表。由malloc(c語言)或new(c)來分配,free(c語言)和delete(c&…

JBPM4.4整合SSH2項目

一:導入相應的jar包: *注意事項: (1).與項目中的jar包不能出現沖突 (2).版本應一致 jbpm-bpmn.jar jbpm-console-form-plugin.jar jbpm-console-graphView-plugin.jar jbpm-console-integration.jar jbpm-console-reports.jar jbpm-db.jar jbpm-example…

Linux簡單命令收錄(who,echo,date)【上】

shell嚴格區分輸入命令的大小寫,如who、Who和WHO是不同的,其中只有全小寫——who是正確的Linux命令。 命令與選項和參數之間要用空格或制表符隔開。連續空格會被shell解釋稱單個空格。 選項:對命令的特殊定義,以“-”開始&#…

移動端測試面試題目大全

ADB工作原理 當用戶啟動一個adb客戶端,客戶端首先確認是否已有一個adb服務進程在運行。如果沒有,則啟動服務進程。當服務器運行, adb服務器就會綁定本地的TCP端口5037并監聽adb客戶端發來的命令,所有的adb客戶端都是用端口 5037與…

Linux簡單命令收錄(cal,passwd,clear)【下】

1、cal NAME cal - display a calendar 顯示日歷 SYNOPSIS cal [options] [[[day] month] year] cal [options] [timestamp|monthname] 用法&#xff1a; cal [選項] [[[日] 月] 年] cal [選項] <時間戳|月份名> OPTIONS -1…

web知識點大總結

#第一章 Web基礎知識 Web開發基本概念 1、萬維網是一個由許多相互鏈接的超文本組成的系統&#xff0c;通過互聯網訪問。 2、web&#xff1a;worldwideweb&#xff0c;萬維網&#xff0c;簡稱web&#xff0c;www&#xff0c;通常稱為網頁。 3、web開發&#xff1a;進行網頁頁…

Linux命令集—— cat AND more

1、cat NAME cat - concatenate files and print on the standard output 連接所有指定文件并將結果寫到標準輸出。【經常用來顯示文件的內容&#xff0c;類似DOS的TYPE 命令】 SYNOPSIS cat [OPTION]... [FILE]... cat [選項]... [文件]... With no FILE, or when FILE…

Linux簡單命令集——less

NAME less - opposite of more more的對立面 注意 與more命令類似&#xff0c;less命令也用來分屏顯示文件的內容&#xff0c;但是less命令允許用戶向前或向后瀏覽文件。例如&#xff0c;less命令顯示文件內容時&#xff0c;可以用?鍵和?鍵分別將屏幕內容下移一行和上移一…

《重構-改善既有代

重要列表 1、如果你發現自己需要為程序添加一個特性&#xff0c;而代碼結構使你無法很方便地達成目的&#xff0c;那就先重構哪個程序&#xff0c;使特性的添加比較容易的進行&#xff0c;然后再添加特性 2、重構前&#xff0c;先檢查自己是否有一套可靠的測試機制&#xff0…

Myeclipse 6.5 優化

1、取消自動validation validation有一堆&#xff0c;什么xml、jsp、jsf、js等等&#xff0c;我們沒有必要全部都去自動校驗一下&#xff0c;只是需要的時候才會手工校驗一下&#xff01; 取消方法&#xff1a; windows–>perferences–>MyEclipse Enterprise Workbench–…

Linux簡單命令集——head

NAME head - output the first part of files 輸出文件的第一部分SYNOPSIS head [OPTION]... [FILE]...head [選項]... [文件]...head命令在屏幕上顯示指定文件file的開頭若干行&#xff0c;行數由參數值來確定。顯示行數的默認值是10。-c, --bytes[-]NUM print the firs…

操作系統中避免死鎖的銀行家算法【表面C++實際C語言】一學就廢的菜雞代碼

文章目錄銀行家算法實驗原理數據結構初始化輸出資源分配量安全性算法銀行家算法完整代碼測試數據測試結果第一題第二題銀行家算法 銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進程動態地申請資源&#xff0c;但系統在進行資源分配之前&#xff0c;應先…

GitHub 使用指南

目錄切換分支刪除已有文件只刪除遠程倉庫中的文件&#xff0c;不刪除本地倉庫中的文件同時刪除遠程倉庫和本地倉庫中的文件提交文件git查看本地分支連接的是哪個遠程分支切換分支 查看本地和遠程所有分支 git branch -a當前本地分支為綠色&#xff0c;當前所在分支前帶有“*”號…

百度EBG測試部AI測試工程師面經

百度EBG測試部AI測試工程師 1、自我介紹 自我介紹盡量多說一點&#xff0c;她會問你“還有嗎&#xff1f;” 2、項目介紹 簡歷上的項目都讓介紹了。會問這個項目是做什么的&#xff0c;是由誰開發&#xff0c;項目如何得到的&#xff0c;在測試過程中實現了什么。 3、自己…

一學就廢的并查集它來了

文章目錄題目描述輸入輸出樣例輸入樣例輸出提示算法思想代碼實現尋找根節點匯總連接情況完整代碼關于flag的初值題目描述 某省調查城鎮交通狀況&#xff0c;得到現有城鎮道路統計表&#xff0c;表中列出了每條道路直接連通的城鎮。省政府“暢通工程”的目標是使全省任何兩個城…

一道很簡單的貪心算法題~【貪心:我不要臉的伐?】

文章目錄題目描述輸入輸出樣例輸入樣例輸出C語言代碼實現思路排序處理完整代碼C代碼實現排序完整代碼彩蛋題目描述 小健有一家自己的商店&#xff0c;主營牛奶飲品&#xff0c;最近資金緊張&#xff0c;他想以盡可能低的價格進購足夠的牛奶以供日常的需要。所以小健想要求助你…

Eclipse 中修改java編譯版本

修改方法是&#xff1a; 1&#xff1a;Preferences-->Java-->Compiler->Compiler compliance level&#xff0c;選擇一個需要的版本&#xff0c;比如從默認的1.4改為5.0 2&#xff1a;如果只想修改一個工程的Compiler compliance level,就右單擊工程&#xff0c;選擇屬…

百戰c++(1)

Public和private的區別 public和private是類里的關鍵字&#xff0c;用于規定類內數據或者成員函數的訪問權限。private類型的數據或者函數&#xff0c;只能在相應的類內被訪問&#xff0c;而public類型的數據或者函數被訪問的權限比較寬&#xff0c;還可以在其它類或者其它函數…

一學就廢的三種簡單排序【冒泡、插入、選擇】

文章目錄其他排序算法冒泡排序算法實現代碼實例插入排序算法實現代碼實例選擇排序算法實現代碼實例其他排序算法 一學就廢的歸并排序 冒泡排序 排列順序從前到后或者從后往前都可&#xff0c;本文選擇從后到前的順序&#xff0c;升序排列&#xff1a;比較相鄰兩個元素&#x…

百戰c++(2)

delete 和 delete []的真正區別 delete 對應 new delete[]對應new[]對于簡單類型包括簡單類型數組&#xff0c;delete 與delete[]沒有區別。對于自定義類型數組&#xff0c;delete 只會刪除一個元素&#xff0c;delete 則會刪除所有元素。 指針和數組的區別 野指針是什么 野指…