DBSync提供數(shù)據(jù)庫比較和同步功能,可以在軟件連接到數(shù)據(jù)庫,從而分析兩個數(shù)據(jù)庫之間的數(shù)據(jù)差異,從而執(zhí)行增量同步功能,將新增的數(shù)據(jù)完全同步到數(shù)據(jù)庫使用,保證兩個數(shù)據(jù)庫的內(nèi)容完全一致,避免數(shù)據(jù)缺失導(dǎo)致部分業(yè)務(wù)無法執(zhí)行,軟件界面還是比較簡單的,可以在軟件添加多個同步任務(wù),可以在軟件連接
oracle、mysql、SQL
Server、access等類型的數(shù)據(jù)庫,可以自定義數(shù)據(jù)表,可以設(shè)置字段對應(yīng)的關(guān)系,可以掃描差異數(shù)據(jù)并手動點擊同步,需要就可以下載體驗!
非侵入式,獨立運行
非侵入式,無需改動數(shù)據(jù)庫,無需注入腳本或觸發(fā)器,不影響現(xiàn)有系統(tǒng)運行。只需連接上即可同步,獨立運行,簡單易用。
支持各種數(shù)據(jù)庫
支持 Oracle、MySQL、SQL Server、Access、PostgreSQL、DB2、SQLite、Firebird...等關(guān)系型數(shù)據(jù)庫,MongoDB、 Elasticsearch 等 NoSQL 數(shù)據(jù)庫,以及 excel、txt、csv 等文件數(shù)據(jù),適用范圍廣泛。
支持異構(gòu)同步
既支持同構(gòu)數(shù)據(jù)庫之間的同步,如 Oracle 到 Oracle、MySQL 到 MySQL,又支持異構(gòu)同步,如 Oracle 到 SQL Server、sql server 到 MySQL、MySQL 到 MongoDB、Elasticsearch 等。
支持異地同步、跨平臺同步
既支持局域網(wǎng)內(nèi)同步,又支持異地同步,如云端與本地之間的同步;既支持同構(gòu)平臺同步,如 Windows 到Windows,Linux 到 Linux,又支持跨平臺同步,如 Windows 到 Linux,Linux 到 Unix 等。
支持增量同步
既支持全量同步(全部復(fù)制 Copy To),又支持增量同步。軟件能快速掃描數(shù)據(jù)庫,找出相互間的差異數(shù)據(jù)(即增量),只對增量進(jìn)行同步,從而提高速度、節(jié)省帶寬。
支持雙向同步
參與同步的數(shù)據(jù),可根據(jù)需要分成多個區(qū)塊,各區(qū)塊分別指定同步方向,從而實現(xiàn)整體上的雙向同步,滿足分布式系統(tǒng)的同步要求。
支持一對多同步
有些單位的數(shù)據(jù)包含一個總庫、若干分庫,總庫可向分庫分發(fā)數(shù)據(jù),分庫也可向總庫匯總數(shù)據(jù),1 對 N、N對 1 同步均可。
數(shù)據(jù)過濾與處理
參與同步的范圍,可以是整個庫,也可以是個別表,或者表中部分字段、部分?jǐn)?shù)據(jù)行,可按需任意過濾;可設(shè)置同步后 SQL 更新語句,實現(xiàn)額外數(shù)據(jù)處理。
支持二進(jìn)制字段
有些字段的數(shù)據(jù)類型為 binary、byte[]、image、object 等,它們是用于存放圖片、文件等二進(jìn)制數(shù)據(jù)的,這類字段也可進(jìn)行同步
1、DBSync可以比較用戶設(shè)置的數(shù)據(jù)表,如果有差異的數(shù)據(jù)就可以同步
2、可以在掃描結(jié)果界面查看哪些數(shù)據(jù)是新增的,從而執(zhí)行同步
3、支持?jǐn)?shù)據(jù)表查詢功能,連接到數(shù)據(jù)庫就可以加載數(shù)據(jù)表
4、源數(shù)據(jù)表和目標(biāo)數(shù)據(jù)表都可以在軟件界面顯示,自動比較數(shù)據(jù)內(nèi)容
5、支持多種同步方案設(shè)置,可以將掃描到的全部新增數(shù)據(jù)同步到目標(biāo)表
6、也可以僅僅同步增量的數(shù)據(jù),新增的、刪除的、修改的數(shù)據(jù)都會顯示
7、比較完畢的數(shù)據(jù)都可以在軟件預(yù)覽,從而立即同步多個任務(wù)
8、使用DBSync可以讓您的數(shù)據(jù)庫資源保持一致,如果你的數(shù)據(jù)庫需要同步數(shù)據(jù)就可以下載使用
1、打開軟件顯示案例內(nèi)容,點擊右上角的新增按鈕就可以添加新的數(shù)據(jù)
2、輸入任務(wù)的名字,可以在軟件設(shè)置源數(shù)據(jù)庫,可以設(shè)置目標(biāo)數(shù)據(jù)庫
3、數(shù)據(jù)庫選擇功能,可以選擇Oracle、MySQL、SQL Server、SQL ServerCE
4、說明:本程序可采用32位OLEDB或ODBC字串連接數(shù)據(jù)庫,請根據(jù)自己情況填寫。
5、數(shù)據(jù)查看界面,在這里選擇您需要轉(zhuǎn)換的數(shù)據(jù)表內(nèi)容
6、設(shè)置字段對應(yīng)的關(guān)系,字段名稱、數(shù)據(jù)類型、允許空、最大長度、主鍵字段
7、同步設(shè)置,可以選擇僅僅同步增量數(shù)據(jù),提示:選擇增里同步方式時,必須選擇主鍵字段,請回到標(biāo)簽3選擇
8、可以在軟件設(shè)置間隔時間,手動,然后自動重復(fù)執(zhí)行,時間間隔:
9、同步范圍(可填寫Select SQL語句,限定參與同步的數(shù)據(jù)范圍):
10、同步后處理(可填寫UpdateSQL語句,每次同步后自動執(zhí)行)如果你會SQL就在這里輸入語句
11、掃描完畢就可以點擊同步功能,同步前,最好備份目標(biāo)數(shù)據(jù)庫,以防數(shù)據(jù)丟失。您確定要同步嗎?
12、DBSync掃描與比較掃描并預(yù)覽增量數(shù)據(jù)。執(zhí)行狀態(tài):完成,掃描6/6,找到增里:增1,刪1,改1
6.1 局部同步
有時候,我們不需要同步表中所有數(shù)據(jù),只需要同步其中的部分?jǐn)?shù)據(jù),此時,可以在任務(wù)設(shè)置中限定參與同步的數(shù)據(jù)范圍。
范圍限定有兩個維度,一是限定記錄范圍,也就是限定數(shù)據(jù)行 Rows。利用任務(wù)設(shè)置 Step4 的同步范圍限定即可實現(xiàn)。例如:某公司有一套銷售管理系統(tǒng),其中的訂單信息有 3 種狀態(tài):草擬、已簽約、已付款,訂單需要同步至財務(wù)系統(tǒng)。對財務(wù)來說,只需要已付款的訂單信息,此時可以填寫這樣的 SQL 語句限定記錄范圍:SELECT * FROM Order where Status=3(Status=3 代表已付款的訂單),該任務(wù)就只同步已付款的訂單,其它訂單不同步。
另一個維度是限定字段范圍,也就是限定數(shù)據(jù)列 Fields。在任務(wù)設(shè)置 Step3 的字段對應(yīng)關(guān)系處,需要同步的字段就選擇目標(biāo)字段;不需要同步的,目標(biāo)字段留空,就不會同步了。
6.2 雙向同步
首先解釋什么是雙向同步。假如有數(shù)據(jù)庫 A 和 B,雙方都包含 T1、T2、T3、T4 四個數(shù)據(jù)表,其中,T1、T2 需要從 A 同步到 B,T3、T4 需要從 B 同步到 A,對數(shù)據(jù)庫來說就是一種雙向同步。同理,對于某個數(shù)據(jù)表 T,假如劃分成 Part1、Part2、Part3、Part4 四個區(qū)塊,其中,Part1、Part2 需要從 A 同步到 B,Part3、Part4 需要從 B 同步到 A,對數(shù)據(jù)表 T 來說也是一種雙向同步。至于區(qū)塊劃分方式,既可以按字段劃分,也可以按記錄劃分。
實例說明:某公司有銷售、財務(wù)兩套系統(tǒng),它們都包含訂單信息表,雙方都能錄入數(shù)據(jù),但按字段做了責(zé)任分工,涉及銷售的字段由銷售系統(tǒng)錄入,涉及付款的字段由財務(wù)系統(tǒng)錄入,這本質(zhì)上就是一種分布式的處理。要完整同步此表,就需要按區(qū)塊分別設(shè)置同步任務(wù):對于銷售字段,設(shè)置任務(wù) 1,由銷售系統(tǒng)同步至財務(wù)系統(tǒng);對于付款字段,另設(shè)置任務(wù) 2,由財務(wù)同步至銷售,就訂單整體而言,就實現(xiàn)了雙向同步。
因此,DBSync 雙向同步的實現(xiàn)方式是,按表或區(qū)塊對信息進(jìn)行切分,明確各自的數(shù)據(jù)源頭,再分別設(shè)置同步任務(wù)、分別指定同步方向,能滿足分布式系統(tǒng)的同步要求。
6.3 總庫分庫間同步
很多單位的數(shù)據(jù)有總庫、分庫之分,它們之間在數(shù)據(jù)范圍上是不對等的,同步時應(yīng)限制總庫端的同步范圍,
使得雙方在數(shù)據(jù)上是對等的,在對等基礎(chǔ)上進(jìn)行同步。
例如,某集團公司有多個分公司,集團公司的數(shù)據(jù)庫是總庫,包含所有客戶資料,分公司的數(shù)據(jù)庫是分庫,
只包含當(dāng)?shù)乜蛻糍Y料。假如總庫與天津分庫做同步,就可以在任務(wù)設(shè)置的 Step4 填寫這樣的 SQL 語句,限
定總庫端的數(shù)據(jù)范圍:SELECT * ROM Customer where Area=”TianJin”,使總庫端參與同步的僅限于天津數(shù)
據(jù),再與天津分庫進(jìn)行同步,防止其它地區(qū)數(shù)據(jù)參與進(jìn)來,造成混串。同理,假如總庫還需要與北京分庫
同步,就另設(shè)一個任務(wù),限定總庫端的數(shù)據(jù)范圍于北京,再與北京分庫進(jìn)行同步。
這種將總庫數(shù)據(jù)進(jìn)行切分,并各自與分庫進(jìn)行同步的方式,能實現(xiàn)分庫向總庫的數(shù)據(jù)匯總,也能實現(xiàn)總庫
向分庫的數(shù)據(jù)分發(fā),一對多、多對一同步均可。
6.4 同步提速策略
數(shù)據(jù)庫同步的一個重要指標(biāo)就是速度,影響速度的因素有很多,但最主要的還是數(shù)據(jù)量與處理邏輯。
如果同步方式為“全部新增(Insert)至目標(biāo)表”,它相當(dāng)于數(shù)據(jù)復(fù)制,速度取決于源表數(shù)據(jù)量以及目標(biāo)表的插入速度,量大就慢,量少就快,這其實沒有多少提升空間。
但如果同步方式為“僅同步增量數(shù)據(jù)”,不同的增量識別方式,速度會有差異,可根據(jù)需要進(jìn)行提速。DBSync默認(rèn)采取全表掃描的識別方式,其優(yōu)點是簡單,但如果數(shù)據(jù)量很大(記錄數(shù)達(dá)億級或以上),速度就會變慢。
此時,您可以根據(jù)數(shù)據(jù)的時間信息做局部掃描,每次同步僅掃描上次同步后的變化量。由于同步是重復(fù)執(zhí)行的,兩次同步間的變化量很小,掃描量就很小,速度就很快。
要實施局部掃描,數(shù)據(jù)要有 CreateTime、UpdateTime 時間信息;如果沒有,也可增加一個時間戳字段,用它充當(dāng)時間信息,每當(dāng)新增、修改記錄時,數(shù)據(jù)庫會自動為它賦予最新時間戳值。具體設(shè)置辦法如下:
●單獨設(shè)置一個任務(wù),專門處理新增、修改增量,且在 Step4 的同步范圍處填寫 Select 語句,限定源數(shù)據(jù)掃描范圍,而目標(biāo)數(shù)據(jù)范圍一般無需限定。比如,您的同步是每 10 分鐘一次,就可以僅掃描此前 10 分鐘插入或修改的數(shù)據(jù)。以 SQL Server 為例,Select 語法如下: select * from t where DATEDIFF(n,CreateTime,getdate())<=10 or DATEDIFF(n,UpdateTime,getdate())<=10
●如果刪除增量也需要同步,可另設(shè)一個任務(wù),該任務(wù)只比較雙方主鍵,不提取比較其它數(shù)據(jù),因此,即使不限定數(shù)據(jù)范圍,速度也很快。
網(wǎng)友評論