![]() DBSync是一款數據比較與同步工具,能比較出數據庫之間的差異,能實時同步差異數據,從而使雙方始終保持一致。用于系統間數據對接、數據分發、數據對比等。 DBSync提供了大量功能功能,例如交互式(GUI)模式/命令行模式,可切換會話,插入,更新和刪除包含的同步類型,任務計劃程序調度,數據過濾,可能的轉換錯誤的預驗證等。用戶可以通過配置幾個選項,并通過向導界面或命令行模式進行一些同步自定義來轉換和同步MySQL與MySQL或MySQL。添加到調度功能的命令行參數使您能夠定期自動同步或轉換數據,而無需用戶輸入和輔助設置。 數據比較與同步工具DBSync特色1.支持各種數據源 數據比較與同步工具DBSync主界面介紹打開軟件后進入主界面,顯示同步任務列表,如下圖所示: ![]() 說明:任務是執行同步的基本單位,一個任務負責一對數據表之間的同步,多個任務可并發執行。 數據比較與同步工具DBSync注意事項*同步前做好數據備份:數據同步將直接更改目標數據庫,請做好目標數據庫的備份工作,以防數據丟失。 數據比較與同步工具DBSync使用教程要比較與同步數據,必須先設置一個任務,在任務里指定源數據表、目標數據表,以及同步方式、同步頻度等。Click主界面上的“新增”按鈕,即可新增一個同步任務,進入Step1。 Step1:選擇源數據庫、目標數據庫 要設置同步任務,首先要選定源數據庫、目標數據庫,如下圖所示: ![]() 說明:本界面的用途是設置源數據庫及目標數據庫的連接字符串,使得能連接雙方數據庫。其中,界面上打星號(*)的欄位是必填的。 *關于OLE DB連接字符串: 本軟件采用 OleDbConnection (.NET) 連接數據庫,因此,連接字符串一欄需填寫 OLE DB 形式的連接字符串。如何拼寫OLE DB連接字符串,詳見本文7.1章節。 填寫完成后,請Click標簽2,進入Step2。 Step2:選擇源數據表、目標數據表 ![]() 說明:本界面的用途是選擇源數據表及目標數據表。 選擇完成后,請Click標簽3,進入Step3。 Step3:選擇字段對應關系 ![]() 說明:本界面的用途是選擇字段對應關系,為需要同步的源字段指定對應的目標字段。其中的數據類型是指OleDbType類型,不同的數據庫有不同的數據類型定義,但這里統一體現為OleDbType,詳細資料請參見本文7.2章節 *關于主鍵字段: 如果您需要做增量同步,這里必須選擇主鍵字段。主鍵字段是記錄的唯一標志,它用于判別同步雙方是否存在對應記錄。 選擇完成后,請Click標簽4,進入Step4。 Step4:選擇同步方式及頻度 ![]() 說明:本界面的用途是選擇同步方式及頻度。 (1)同步方式: *全部新增(Insert)至目標表:是指將源數據表中的數據全部Insert到目標數據表。 *僅同步增量數據:是指以主鍵字段為記錄標識,只同步差異部分(即增量部分),而相同的部分不作同步。增量分3種:一是新增,是指對于源數據表存在而目標表不存在的記錄,視作源庫新增的,因此應新增(Insert)到目標庫;二是刪除,是指對于目標數據表存在而源數據表不存在的記錄,視作已從源庫刪除,因此應從目標庫中刪除(Delete);三是修改,是指源數據表與目標數據表均存在的記錄,但雙方數據有差異,視作源庫已做修改,因此需用源庫數據修改(Update)目標庫。 (2)執行頻度: *手動點擊“開始”執行:是指每次同步都由用戶Click任務列表中的“?”來執行 *手動,然后自動重復執行:是指由用戶Click“?”開始第一次執行,同步結束后,程序會按照預定的時間間隔自動重復執行。只要程序不關閉,同步操作就會一直持續下去,從而實現無人值守同步。 (3)同步范圍: 屬于高級選項,可填寫Select * From...Where... 形式的 SQL 語句,進一步限定參與同步的數據范圍。主要用于3種場合: *一是總庫與分庫之間的同步,需要限定總庫的數據范圍。很多單位的數據庫是分布式的,有總庫、分庫之分,總庫數據多,分庫數據少,它們之間在數據范圍上是不對等的。總庫與分庫進行同步時就應限制總庫的范圍,使得雙方在數據范圍上是對等的,在對等的基礎上進行同步。舉例: 某集團公司有多個分公司,集團公司的數據庫是總庫,包含所有客戶信息,分公司的數據庫是分庫,只包含當地客戶信息。假如總庫與天津分庫做同步,就可以填寫這樣的SQL語句限定總庫范圍:SELECT * FROM Customer where Area=”TianJin”,使總庫的同步范圍僅限于天津數據,雙方就是對等的,防止其它數據混串。 *二是挑選有用數據進行同步,其它數據不同步。舉例: 某公司有一套銷售管理系統,其中的訂單信息有3種狀態:草擬、已簽約、已付款。這些訂單需要同步至財務系統,對于財務來說只需已付款的訂單信息,此時就可以填寫這樣的SQL語句限定數據范圍:SELECT * FROM Order where Status=3。其中,Status=3代表已付款的訂單。 *三是為了提高同步速度,將同步范圍限定于增量部分。同步程序的工作機制是,先掃描、比較雙方數據,找出相互間的差異(即增量),再將增量同步過去,從而使雙方保持一致。雙方的數據量如果很大,比較所需的時間就越長,同步速度就越慢。提速思路就是,限制每次同步所涉及的源數據量,分別處理新增、修改、刪除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 字段記有上次同步的完成時間。由于同步是定期執行的,兩次同步間的增量非常有限,所需的比較量就很少,速度自然就很快。 B、對于刪除增量,另安排一個同步任務單獨執行。由于該任務只比較雙方的主鍵,不比較其它數據,即使不限定數據范圍,速度也很快。 (4)同步后處理: 可填寫 Update SQL 語句,每次同步后會執行,可實現同步之外的數據轉換、公式計算等額外任務。 *SQL實例1:UPDATE dbsync set syncDate=date() where tablename=' Customer'。該SQL語句將同步完成時間記入數據庫,可用于下次同步時限定同步范圍,減少數據掃描及比較量,提高同步速度。 *SQL實例2:UPDATE Customer set [性別]=’男’ where Sex=1;UPDATE Customer set [性別]=’女’ where Sex=0。該SQL語句根據同步過來的“Sex” 字段,進一步計算“性別”字段。 系統軟件一般是在計算機系統購買時隨機攜帶的,也可以根據需要另行安裝。 |