發(fā)表時間:2023-08-02 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
DBSync是一款數(shù)據(jù)比較與同步工具,能比較出數(shù)據(jù)庫之間的差異,能實時同步差異數(shù)據(jù),從而使雙方始終保持一致。用于系統(tǒng)間數(shù)據(jù)對接、數(shù)據(jù)分發(fā)、數(shù)據(jù)對比等。 DBSync提供了大量功能功能,例如交互式(GUI)模式/命令行模式,可切換會話,插入,更新和刪除包含的同步類型,任務(wù)計劃程序調(diào)度,數(shù)據(jù)過濾,可能的轉(zhuǎn)換錯誤的預(yù)驗證等。用戶可以通過配置幾個選項,并通過向?qū)Ы缑婊蛎钚心J竭M行一些同步自定義來轉(zhuǎn)換和同步MySQL與MySQL或MySQL。添加到調(diào)度功能的命令行參數(shù)使您能夠定期自動同步或轉(zhuǎn)換數(shù)據(jù),而無需用戶輸入和輔助設(shè)置。
1.支持各種數(shù)據(jù)源
既支持常規(guī)數(shù)據(jù)庫,如Access、SQL Server、Oracle、MySQL、DB2等,又支持Excel、txt、csv等文件中的數(shù)據(jù),任何可用OLE DB連接的數(shù)據(jù),均可參與同步。
2.異型數(shù)據(jù)庫同步
既支持相同類型數(shù)據(jù)庫之間的同步,如Access到Access、SQL Server到SQL Server,又支持異型數(shù)據(jù)庫之間的同步,如Excel到Access、Access到SQL Server、SQL Server到Oracle等。
3.無人值守同步
軟件具有定期自動同步的功能,只需預(yù)先設(shè)置好時間間隔,就可長期自動同步,從而實現(xiàn)無人值守同步。
4.支持增量同步
既支持簡單的全部復(fù)制式同步(Insert),又支持增量同步。軟件能快速掃描數(shù)據(jù)庫,找出相互間的差異(即增量),只對增量進行同步。
5.秒級實時同步
重復(fù)同步的時間間隔最短可設(shè)置為1秒,源數(shù)據(jù)庫發(fā)生增、刪、改后,1秒后就立即同步過去,幾乎等同于實時同步。
6.支持同步后處理
可設(shè)置同步后的SQL執(zhí)行語句,實現(xiàn)同步之外的數(shù)據(jù)轉(zhuǎn)換、公式計算等額外任務(wù)。
打開軟件后進入主界面,顯示同步任務(wù)列表,如下圖所示:
說明:任務(wù)是執(zhí)行同步的基本單位,一個任務(wù)負責一對數(shù)據(jù)表之間的同步,多個任務(wù)可并發(fā)執(zhí)行。
數(shù)據(jù)比較:Click任務(wù)列表中的“○”按鈕,進入掃描并比較界面。
數(shù)據(jù)同步:Click任務(wù)列表中的“?”按鈕,立即開始同步。
執(zhí)行狀態(tài):實時顯示同步進度信息,包括:已掃描的記錄數(shù)、已同步(增刪改)的記錄數(shù)等。
開始時間、結(jié)束時間、下次開始時間:顯示每個任務(wù)的執(zhí)行時間信息。
日志:Click任務(wù)列表中的“日志”按鈕,可查看該任務(wù)的操作日志。
設(shè)置:Click任務(wù)列表中的“修改”按鈕,可修改任務(wù)設(shè)置。
*同步前做好數(shù)據(jù)備份:數(shù)據(jù)同步將直接更改目標數(shù)據(jù)庫,請做好目標數(shù)據(jù)庫的備份工作,以防數(shù)據(jù)丟失。
*同步方式選擇增量同步時,要注意雙方在數(shù)據(jù)范圍上的對等性。同步程序工作時,需要先掃描、比較雙方數(shù)據(jù),找到相互間的差異,再做同步。如果雙方在數(shù)據(jù)范圍上不對等,比較就失去意義,結(jié)果自然也是錯誤的。
*增量同步時,主鍵字段用于唯一地標識一條記錄,其值應(yīng)該非空且唯一,同步時如遇到空值或者重復(fù)的,將直接跳過,不作處理。
*如何實現(xiàn)雙向同步:每個任務(wù)的同步方向是單向的,即將源庫數(shù)據(jù)同步至目標庫,使得目標庫與源庫保持一致。如果需要雙向同步,可另建一個任務(wù)用于反方向的同步。
*同步至文件時的限制:除了常規(guī)數(shù)據(jù)庫間的同步外,有些用戶需要將數(shù)據(jù)同步到單一文件中,由于文件機制本身的限制,有些增量同步不支持,具體情況是:
同步至txt、csv等文本文件:支持新增(Insert)同步,不支持刪(Delete)、修改(Update)同步。
同步至Excel文件:支持新增(Insert)、修改(Update)同步,不支持刪(Delete)同步。
要比較與同步數(shù)據(jù),必須先設(shè)置一個任務(wù),在任務(wù)里指定源數(shù)據(jù)表、目標數(shù)據(jù)表,以及同步方式、同步頻度等。Click主界面上的“新增”按鈕,即可新增一個同步任務(wù),進入Step1。
Step1:選擇源數(shù)據(jù)庫、目標數(shù)據(jù)庫
要設(shè)置同步任務(wù),首先要選定源數(shù)據(jù)庫、目標數(shù)據(jù)庫,如下圖所示:
說明:本界面的用途是設(shè)置源數(shù)據(jù)庫及目標數(shù)據(jù)庫的連接字符串,使得能連接雙方數(shù)據(jù)庫。其中,界面上打星號(*)的欄位是必填的。
*關(guān)于OLE DB連接字符串:
本軟件采用 OleDbConnection (.NET) 連接數(shù)據(jù)庫,因此,連接字符串一欄需填寫 OLE DB 形式的連接字符串。如何拼寫OLE DB連接字符串,詳見本文7.1章節(jié)。
填寫完成后,請Click標簽2,進入Step2。
Step2:選擇源數(shù)據(jù)表、目標數(shù)據(jù)表
說明:本界面的用途是選擇源數(shù)據(jù)表及目標數(shù)據(jù)表。
選擇完成后,請Click標簽3,進入Step3。
Step3:選擇字段對應(yīng)關(guān)系
說明:本界面的用途是選擇字段對應(yīng)關(guān)系,為需要同步的源字段指定對應(yīng)的目標字段。其中的數(shù)據(jù)類型是指OleDbType類型,不同的數(shù)據(jù)庫有不同的數(shù)據(jù)類型定義,但這里統(tǒng)一體現(xiàn)為OleDbType,詳細資料請參見本文7.2章節(jié)
*關(guān)于主鍵字段:
如果您需要做增量同步,這里必須選擇主鍵字段。主鍵字段是記錄的唯一標志,它用于判別同步雙方是否存在對應(yīng)記錄。
選擇完成后,請Click標簽4,進入Step4。
Step4:選擇同步方式及頻度
說明:本界面的用途是選擇同步方式及頻度。
(1)同步方式:
*全部新增(Insert)至目標表:是指將源數(shù)據(jù)表中的數(shù)據(jù)全部Insert到目標數(shù)據(jù)表。
*僅同步增量數(shù)據(jù):是指以主鍵字段為記錄標識,只同步差異部分(即增量部分),而相同的部分不作同步。增量分3種:一是新增,是指對于源數(shù)據(jù)表存在而目標表不存在的記錄,視作源庫新增的,因此應(yīng)新增(Insert)到目標庫;二是刪除,是指對于目標數(shù)據(jù)表存在而源數(shù)據(jù)表不存在的記錄,視作已從源庫刪除,因此應(yīng)從目標庫中刪除(Delete);三是修改,是指源數(shù)據(jù)表與目標數(shù)據(jù)表均存在的記錄,但雙方數(shù)據(jù)有差異,視作源庫已做修改,因此需用源庫數(shù)據(jù)修改(Update)目標庫。
(2)執(zhí)行頻度:
*手動點擊“開始”執(zhí)行:是指每次同步都由用戶Click任務(wù)列表中的“?”來執(zhí)行
*手動,然后自動重復(fù)執(zhí)行:是指由用戶Click“?”開始第一次執(zhí)行,同步結(jié)束后,程序會按照預(yù)定的時間間隔自動重復(fù)執(zhí)行。只要程序不關(guān)閉,同步操作就會一直持續(xù)下去,從而實現(xiàn)無人值守同步。
(3)同步范圍:
屬于高級選項,可填寫Select * From...Where... 形式的 SQL 語句,進一步限定參與同步的數(shù)據(jù)范圍。主要用于3種場合:
*一是總庫與分庫之間的同步,需要限定總庫的數(shù)據(jù)范圍。很多單位的數(shù)據(jù)庫是分布式的,有總庫、分庫之分,總庫數(shù)據(jù)多,分庫數(shù)據(jù)少,它們之間在數(shù)據(jù)范圍上是不對等的?値炫c分庫進行同步時就應(yīng)限制總庫的范圍,使得雙方在數(shù)據(jù)范圍上是對等的,在對等的基礎(chǔ)上進行同步。舉例:
某集團公司有多個分公司,集團公司的數(shù)據(jù)庫是總庫,包含所有客戶信息,分公司的數(shù)據(jù)庫是分庫,只包含當?shù)乜蛻粜畔。假如總庫與天津分庫做同步,就可以填寫這樣的SQL語句限定總庫范圍:SELECT * FROM Customer where Area=”TianJin”,使總庫的同步范圍僅限于天津數(shù)據(jù),雙方就是對等的,防止其它數(shù)據(jù)混串。
*二是挑選有用數(shù)據(jù)進行同步,其它數(shù)據(jù)不同步。舉例:
某公司有一套銷售管理系統(tǒng),其中的訂單信息有3種狀態(tài):草擬、已簽約、已付款。這些訂單需要同步至財務(wù)系統(tǒng),對于財務(wù)來說只需已付款的訂單信息,此時就可以填寫這樣的SQL語句限定數(shù)據(jù)范圍:SELECT * FROM Order where Status=3。其中,Status=3代表已付款的訂單。
*三是為了提高同步速度,將同步范圍限定于增量部分。同步程序的工作機制是,先掃描、比較雙方數(shù)據(jù),找出相互間的差異(即增量),再將增量同步過去,從而使雙方保持一致。雙方的數(shù)據(jù)量如果很大,比較所需的時間就越長,同步速度就越慢。提速思路就是,限制每次同步所涉及的源數(shù)據(jù)量,分別處理新增、修改、刪除3種增量:
A、對于新增、修改增量,每次同步完成時,記住完成時間;下次同步時,將同步范圍限定于該時間后的增量。SQL實例:
SELECT a.* FROM Customer AS a,(SELECT syncDate FROM dbsync WHERE tablename='Customer') AS b where b.SyncDate is null or a.CreateTime>=b.SyncDate or a.UpdateTime >=b.SyncDate
其中,dbsync 表的syncDate 字段記有上次同步的完成時間。由于同步是定期執(zhí)行的,兩次同步間的增量非常有限,所需的比較量就很少,速度自然就很快。
B、對于刪除增量,另安排一個同步任務(wù)單獨執(zhí)行。由于該任務(wù)只比較雙方的主鍵,不比較其它數(shù)據(jù),即使不限定數(shù)據(jù)范圍,速度也很快。
(4)同步后處理:
可填寫 Update SQL 語句,每次同步后會執(zhí)行,可實現(xiàn)同步之外的數(shù)據(jù)轉(zhuǎn)換、公式計算等額外任務(wù)。
*SQL實例1:UPDATE dbsync set syncDate=date() where tablename=' Customer'。該SQL語句將同步完成時間記入數(shù)據(jù)庫,可用于下次同步時限定同步范圍,減少數(shù)據(jù)掃描及比較量,提高同步速度。
*SQL實例2:UPDATE Customer set [性別]=’男’ where Sex=1;UPDATE Customer set [性別]=’女’ where Sex=0。該SQL語句根據(jù)同步過來的“Sex” 字段,進一步計算“性別”字段。
騰訊視頻官方版 | 45.34MB
愛奇藝視頻官方正式版 | 35.10MB
暴風影音最新版下載 | 50.3MB
QQ音樂官方正式版 | 24.2MB
酷狗音樂2022下載 | 37MB