
摘 要:在原有煙支在線檢測的系統中,運用微軟SQL Server 2005中的數據庫復制功能,建立一個數據庫合并發布訂閱系統。從而實現所有的客戶端之間可以共享配置信息,客戶端的檢測數據可以實時傳送到服務器上。且當客戶端在失去與服務器的連接時,仍能正常工作,所有的配置信息和檢測數據將在網絡恢復后與服務器同步。該技術的運用極大簡化了設備操作,提高了檢測數據的使用效率。
關鍵詞:數據庫復制 檢測系統 發布訂閱
中圖分類號:TP277文獻標識碼:A文章編號:1674-098X(2013)05(b)-0031-02
隨著煙草行業大規模工業化時代的到來,卷煙生產過程對卷煙產品質量控制要求日趨嚴格,因此,很多企業大規模引進具有精度更高,現場適應更強的計量檢測設備來適應這一要求,這樣在使用過程中就會產生大量的過程檢測數據,對于企業來說,就面臨著數據同步備份的問題。
1 總體概況
杭州卷煙廠C2檢測系統是由英國CERULEAN公司設計的第二代質量綜合測試儀器C2組成的檢測系統,主要用于卷煙重量、長度、圓周、吸阻、通風率的檢測。目前,C2檢測系統網絡中共有16臺C2綜合測試臺(以下簡稱C2),平均分布于車間卷煙制造機旁,通過以太網將所有C2的檢測數據上傳至數據采集服務器,服務器端使用的是SQL Server 2005作為后臺數據庫,終端C2本地工控機上使用的是Access作為本地后臺數據庫,這種聯網方式對于大型檢測系統的數據備份以及同步的實現造成了很大的影響。
2 數據庫復制技術原理與分類
2.1 數據庫復制技術原理
數據庫復制是在數據庫之間,對數據和數據庫對象進行復制和分發,并且進行同步以確保其一致性的一種技術。使用數據庫復制技術可以通過網絡將數據分發到不同的位置,可以通過局域網、使用撥號連接、通過Internet分發給遠程或者移動用戶。
在SQL Server 2005中主要是采用發布、訂閱的方式來處理數據庫復制。源數據所在的服務器是發布服務器,負責發布數據。發布服務器把要發布的數據的所有改變情況的拷貝復制到分發服務器。分發服務器包含一個分發數據庫,可接收數據的所有改變,并保存這些改變,再把這些改變分發給訂閱服務器。一般情況下,發布服務器和分發服務器集中在同一服務器上。
2.2 數據庫復制的分類
(1)單向復制與雙向復制
數據庫復制根據訂閱服務器是否更新可劃分為單向復制和雙向復制。
單向復制也稱主從復制,數據庫主從關系確定后就不能改變,只允許從主數據庫復制數據到從數據庫,更新數據的操作只能在主節點進行,從節點上的副本是只讀的。
雙向復制也稱對等式復制,所有參與的數據庫關系平等,即可看作是目標數據庫,也可看作是源數據庫,復制修改可在源數據庫和目標數據兩端進行,這時復制對象的所有副本都可讀可寫的,修改其中任何一個都會最終影響全部副本。
(2)同步復制與異步復制
根據源數據庫更改同步目標數據的傳播時效性,可分為同步復制和異步復制。
同步復制方式要求修改過程和復制過程同時進行,即備份數據副本和源數據在任何時間都應保持一致。異步復制方式允許修改過程和復制過程異步進行,允許兩者之間存在時間延遲。
(3)事務性復制、合并復制和快照復制
SQL Server 2005在分布式應用程序中提供了三種復制類型:事務性、合并、快照。
事務性復制通常從發布數據庫對象和數據的快照開始。創建了初始快照后,接著在發布服務器上所作的數據更改和架構修改,通常在修改發生是時幾乎是實時傳遞給訂閱服務器。數據更改將按照其在發布服務器上發生的順序和事務邊界,應用于訂閱服務器。事務性復制屬于同步復制。
快照復制將數據以特定時刻的瞬時狀態分發,而不監視對數據的更新。發生同步時,將發生完整的快照,并將其發送到訂閱服務器。因為該復制方式是一次復制整個數據集,所以將數據修改傳播到訂閱服務器的時間較長。在數據更改量很大時,但很少發生時,快照復制是最合適的。
合并復制通常也是從發布數據庫對象和數據的快照開始,并且用觸發器跟蹤在發布服務器和訂閱服務器上所做的后續數據更改和架構修改。訂閱服務器在連接到網絡時,將與發布服務器進行同步,以交換自上次同步,以發布服務器和訂閱服務器之間發生更改的所有行。該復制屬于異步復制,減少了對網絡和硬件資源的消耗,對網絡具有更強的適應性,更符合實際應用。
3 數據庫復制技術在C2檢測系統聯網中的應用
3.1 復制拓撲設計思路
在C2檢測系統實際使用過程中,存在以下障礙性問題。
(1)工藝員增加牌號或更改儀器設置時,必須對每臺C2進行操作。
當車間網絡出現問題無法上傳數據時,需要在C2終端重新設置,把數據保存方式改為保存到儀器本地,如不更改,C2將無法繼續進行檢測。
針對以上發現的問題,我們采用雙向、合并復制方式。將發布和分發服務器集中在中央數據采集服務器,將訂閱服務器設置在C2終端本地工控機電腦上。C2是分布在車間的不同部位,由于數據庫的對等性,只要在對任何一臺訂閱服務器上增加牌號或者更改儀器設置,網絡系統將更改的數據傳播到發布服務器和其他訂閱服務器,這樣就不需要對每臺C2進行操作,提高了工作效率,并保證了數據的安全性。在日常使用過程中,某臺C2將檢測數據實時傳送到中央數據采集服務器,并將檢測數據同步傳播到該臺C2本地服務器中,這樣就實現了檢測數據自動備份在本地的功能,如果車間網絡遇到突發問題,無需對C2終端進行設置,檢測數據將自動保存在本地服務器中,這就解決了數據自動備份的問題。C2檢測系統復制拓撲結構設計如圖1所示:
3.2 數據庫復制技術的實施
(1)準備工作
①在中央數據采集服務器和終端C2本地工控機上都創建一個同名的Windows用戶,命名為liqunsql,并設置成相同的密碼,作為發布數據庫快照文件夾的有效訪問用戶。
②在中央數據采集服務器和終端C2本地工控機上安裝SQL Server 2005 數據庫軟件,并在服務器端建立C2檢測系統所需的結果數據庫C2_Results和設置數據庫C2_Settings以及在兩個數據庫建立相關數據表。
③啟動操作系統里管理工具的兩個服務SQL SERVER和SQL BROWSER。
(2)配置發布/分發服務器
①選擇中央數據采集服務器充當自己的分發服務器,由SQL Server來創建分發數據庫和日志。
②將中央數據采集服務器上的SQL Server代理服務配置為自動啟動。
③設置分發數據庫文件的文件夾以及分發數據庫日志文件的文件夾,該數據庫在配置分發服務器的時候形成,分發數據庫名為distribution。
4.配置分發服務器成功。
(3)創建發布物
①選擇要發布的數據庫C2_Results或C2_Settings,以合并發布的方式進行發布。
②選擇訂閱服務器類型為SQL Server 2005。
③選擇要發布的各種表和其他對象。
④立即創建快照,使用發布架構和數據的快照對訂閱進行初始化。
⑤在快照代理安全性方面,選擇進程賬戶liqunsql和設置相應密碼(和之前設置的Windows用戶liqunsql使用相同的密碼)。
⑥創建發布物成功。
(4)訂閱發布
①選擇要訂閱的數據庫C2_Results或C2_Settings。
②選擇推送訂閱,該方式的好處是所有的管理都在中心位置,使得集中管理訂閱同步變得更加簡單。
③在分發安全代理方面,選擇進程賬戶liqunsql和設置相應密碼。
④訂閱發布成功。
至此就完成了對C2檢測系統的數據庫合并發布訂閱功能的所有軟件配置,現該套系統已在杭州卷煙廠卷包車間使用了一年多時間,使用效果良好。通過這個數據系統可以在數據采集服務器與C2 本地工控機之間進行實時的數據雙向同步,這樣既提高了儀器的使用效率,更保證了產品檢測數據的實時性,對于生產車間的質量控制有很大幫助。
4 結語
本文首先對杭州卷煙廠C2檢測系統項目進行了簡要概述,并對數據庫復制技術的原理與分類進行了介紹,繼而針對C2檢測系統現有的數據處理技術問題進行了分析,將SQL Server 2005 數據庫復制技術應用到C2檢測系統中,設計了有實際意義的復制拓撲結構,最后給出了復制技術的具體實施步驟。由于該復制技術的應用具有很強的代表性,因此對煙草行業檢測儀器領域應用數據庫復制技術具有一定的指導意義。
參考文獻
[1]章立民研究室.SQL Server 2005數據庫開發實戰[M].北京:機械工業出版社,2007.
[2]江士方,徐守坤.基于數據庫的復制技術與應用[J].江蘇工業學院學報,2004,16(4):56-59.
[3]王璐.分布式數據庫數據復制技術的應用研究[D].甘肅蘭州:蘭州理工大學,2005.
[4]秋余,王璐.分布式系統中數據復制的研究與應用[J].計算機工程與設計,2005,26(5):1185-1189.
[5]邵佩英.分布式數據庫系統及其應用[M].科學出版社,2000.
[6]Microsoft Corporation,Microsoft SQL Server2000 Distributed Data Operations and Replication[M]. Redmond:Microsoft Press,2001.
[7]汪大為,基于事務的分布式數據庫復制服務器技術[J].撫順石油學院學報,1998,18(2):44-46