數據復制就是在物理上完全不同的數據庫之間共享數據。當應用程序在任一數據庫中修改共享數據時,就會將所做的更改傳播到復制系統中的其它數據庫。數據復制系統的一大優點是,可以在本地訪問數據,而不用通過與單個中心數據庫之間的連接(可能占用很多資源、可靠性較低並且速度很慢)來獲取數據。即使沒有與中心服務器之間的任何連接,也可以在本地訪問數據,這樣,在遠程網絡連接中斷時,仍然可以訪問數據。
Sybase提供不同的復制技術:
MobiLink 是一種基於會話的技術,用來在中心統一數據庫和大量遠程數據庫間進行雙向數據復制。它支持多種統一數據庫服務器,其中包括非 Sybase 數據庫。遠程站點的管理和資源要求已降到了最低限度,因此,它非常適於各種移動數據庫。每個同步會話結束後,這些數據庫就會保持一致。
復制服務器 是一種基於連接的技術,用於雙向事務復制。它非常適於使用高速網絡連接的少量企業數據庫間進行的復制,通常每個站點有一個管理員。在這類系統中,有可能將延遲時間縮短到幾秒鐘。
MobiLink是SQL Anywhere中的一個組件,可用於具有以下要求的復制系統:
大量數據庫 MobiLink 用於支持大量的遠程數據庫。在單個系統中,可支持數以千計的遠程數據庫。
不定時連接 MobiLink 支持不定時連接到或間接連接到服務器所在網絡的數據庫。MobiLink 的可伸縮性僅受統一數據庫管理系統可伸縮性的限制。
靈活同步調度 通常,應用程序按指定的間隔(幾分鐘、幾小時或幾天)進行連接和同步。
低到中等容量 每次只能給遠程站點中的一個准備下載信息。在 MobiLink 系統中,如果數據量很大,就會造成較長的連接時間,因為遠程站點在同步完成之前不能斷開連接。
異構數據庫 MobiLink 支持將許多常用的關系數據庫用作統一數據庫(Oracle, IBM DB2, MS SQL Server, Sybase ASE)。遠程站點的模式可以與統一數據庫的模式不同,因為可通過編寫腳本來控制同步過程。
MobiLink 的工作方式是:將遠程數據庫上的多個事務的結果合並成一個更改集,然後應用到統一數據庫中。因為同步始終在事務邊界進行的,所以保持了參照完整性。不保留在組件事務過程中所做的各個更改的順序:因為從不復制未提交的數據,所以保留了數據完整性。同樣,MobiLink在數據傳輸的過程中通過用戶授權、數據壓縮加密等手段保證數據在傳輸過程中的安全性。
由MobiLink組成的同步系統主要分為以下幾個部分:
統一數據庫 是指企業的中心數據庫,此數據庫包括同步系統中所有信息的集中副本。
統一數據庫服務器 管理統一數據庫的服務器或 DBMS。此服務器可以是 Sybase 產品,如 Adaptive Server Anywhere 或 Adaptive Server Enterprise,也可以是其它公司生產的受支持系統。例如Oracle、IBM DB2和MS SQL Server。
ODBC 連接 MobiLink 同步服務器和統一數據庫之間的所有通信都通過一個 ODBC 連接進行。ODBC 使同步服務器可以使用多種統一數據庫系統。
MobiLink 同步服務器 此服務器管理同步過程並提供所有 MobiLink 客戶端與統一數據庫服務器之間的接口。
網絡 MobiLink 同步服務器 dbmlsrv9 與 MobiLink 客戶端 dbmlsync 或 UltraLite 之間的連接,可以使用多種協議,比如TCP/IP、HTTP、HotSync和ActiveSync等。
MobiLink 客戶端 客戶端可以安裝在以下設備上:手持式設備(如 Palm Pilot 或 PocketPC)、服務器、桌上型計算機或者嵌入式設備(如手機或自動售貨機)。支持兩種類型的客戶端:UltraLite 數據庫與 Adaptive Server Anywhere 數據庫。在一個 MobiLink 安裝中可以同時使用上述兩種或其中一種客戶端。
同步是 MobiLink 客戶端和同步服務器之間的雙向數據交換過程。在此過程中,客戶端必須建立並維護與同步服務器的連接。如果成功,此會話將使遠程數據庫和統一數據庫保持相互一致的狀態。
一般由客戶端開始進行同步過程。它開始於與 MobiLink 同步服務器建立的連接。MobiLink的同步主要分為三個階段:
上載流 MobiLink 客戶端自動跟蹤記錄在上一次成功同步之後遠程數據庫中插入、更新和刪除了哪些行。連接一旦建立,MobiLink 客戶端將一個列出所有這些更改的列表上載到同步服務器。
上載流由遠程數據庫中被修改的各行的新行值和舊行值組成。如果某行被更新或刪除,舊行值是指上次成功同步後時的那些值。如果某一行被插入或更新,新行值是指當前的行值。即使在到達當前狀態之前,行已經更改過數次,也不會發送任何中間值。
MobiLink 同步服務器接收上載流並將更改應用於統一數據庫中。所有的更改一般都在一次事務中完成應用。此後,MobiLink 同步服務器將提交該事務。
下載流 MobiLink 同步服務器將使用您創建的同步邏輯編譯在 MobiLink 客戶端插入、更新或刪除的一組行。它將這些行下載到MobiLink 客戶端。為了對該列表進行編譯,MobiLink 同步服務器將在統一數據庫中打開一個新事務。
MobiLink 客戶端接收下載流。當下載流到達時,MobiLink 客戶端認為統一數據庫已成功應用所有上載的更改,並將確保這些更改不會再發送到統一數據庫中。
接下來,MobiLink 客戶端將自動對下載流進行處理,刪除舊行、插入新行以及更新已更改的行。所有的更改將在遠程數據庫中的一個事務中完成應用。此後,MobiLink 同步服務器將提交該事務。
可選的下載確認 MobiLink 客戶端可以將一個簡短確認消息發送給 MobiLink 同步服務器。
MobiLink 同步服務器接收到確認消息。該消息讓同步服務器知道客戶端已經接收並處理了所有下載的更改。作為響應,同步服務器將提交上一步的下載事務。