數(shù)據(jù)同步是分布式系統(tǒng)常常需要考慮的問題,即把分散的數(shù)據(jù)收集在一起,進(jìn)行匯總統(tǒng)計(jì)。目前主流數(shù)據(jù)庫主要有兩個(gè):SQL Server和Oracle。對于Oracle數(shù)據(jù)庫,有著比較成熟的同步技術(shù),但SQL數(shù)據(jù)庫則沒有太好的解決方案,雖然已經(jīng)有公司研發(fā)了同步程序,但是價(jià)格過于昂貴。 同時(shí),數(shù)據(jù)庫同步技術(shù)是一種常用技術(shù),因此有必要開發(fā)出一套獨(dú)立的數(shù)據(jù)庫同步系統(tǒng),避免重復(fù)勞動。特進(jìn)行“SQL Server數(shù)據(jù)庫同步系統(tǒng)”開發(fā)。
使用說明
客戶端和服務(wù)器端:客戶端使用說明: 本系統(tǒng)分為客戶端和服務(wù)器兩個(gè)部分,其中客戶端承擔(dān)了系統(tǒng)絕大數(shù)事務(wù),服務(wù)器只是簡單的執(zhí)行客戶端傳送的命令,屬于典型的C/S胖客戶端瘦服務(wù)器模式。這樣設(shè)計(jì)的目的是為了減輕服務(wù)器的壓力,讓系統(tǒng)更加流暢。 客戶端負(fù)責(zé)采集分布數(shù)據(jù)庫中的數(shù)據(jù),然后匯總到服務(wù)器??蛻舳诵枰渲玫臄?shù)據(jù)庫連接字符串是指分布數(shù)據(jù)庫的連接字符串,連接成功后才可以向主數(shù)據(jù)庫同步數(shù)據(jù)。例如,有A、B、C三個(gè)分布數(shù)據(jù)庫,需要把數(shù)據(jù)匯總到D數(shù)據(jù)庫,那么需要三個(gè)客戶端,分別連接A、B、C數(shù)據(jù)庫,客戶端運(yùn)行在哪無所謂,只要能連接數(shù)據(jù)庫即可。 服務(wù)器使用說明: 服務(wù)器功能比較簡單,負(fù)責(zé)收集客戶端發(fā)送過來的同步數(shù)據(jù),然后添加到主數(shù)據(jù)庫中,只需設(shè)置主數(shù)據(jù)庫的連接字符串即可,成功連接后服務(wù)器啟動。服務(wù)器會自動保存成功連接的主數(shù)據(jù)庫連接字符串。服務(wù)器對同步不做任何記錄。 使用說明 設(shè)置好數(shù)據(jù)庫連接字符串后,點(diǎn)擊啟動服務(wù),如果連接成功,服務(wù)自動啟動。 同時(shí),界面上顯示正在同步的客戶端數(shù)量,正在同步客戶端數(shù)量不為0時(shí),無法關(guān)閉服務(wù)器,如果強(qiáng)行關(guān)閉,造成的一切后果自行負(fù)責(zé)。 補(bǔ)充說明 理論上應(yīng)該先啟動服務(wù)器,再啟動客戶端。
注意事項(xiàng)
1.必須確保您的數(shù)據(jù)庫沒有修改主鍵的操作。由于修改主鍵會引起很多問題,如果一定要修改主鍵,建議把修改拆分成刪除→添加。 2.必須確保您的數(shù)據(jù)庫沒有使用自增長的字段,因?yàn)樽栽鲩L字段本程序無法干涉。 3.支持所有SQL數(shù)據(jù)類型(除SQL2008新增的geography、geometry、hierarchyid)。 4.數(shù)據(jù)庫連接字符串一旦成功設(shè)置,不能更改!如需更改,需要重新安裝程序。 運(yùn)行環(huán)境: 程序采用.NET 4.0開發(fā),因此只能運(yùn)行于Windows操作系統(tǒng),同時(shí)需要【.net framework4.0簡體中文版】的支持。 程序中使用了SQLite本地?cái)?shù)據(jù)庫系統(tǒng),但已經(jīng)自行支持,無需安裝其他組件。 程序針對SQL Server數(shù)據(jù)庫開發(fā),因此只支持SQL Server數(shù)據(jù)庫,目前已知支持SQL Server 2003、SQL Server 2005、SQL Server 2008。