一、“復制”簡介
復制是將數據或數據庫對象從一個數據庫復制和分發到另外一個數據庫,並進行數據同步,從而使源數據庫和目標數據庫保持一致。使用復制,可以在局域網和廣域網、撥號連接、無線連接和Internet上將數據分發到不同位置以及分發給遠程或移動用戶。
一組SQL Server 2005復制有發布服務器、分發服務器、訂閱服服務器(圖1:復制服務器之間的關系圖)組成,它們之間的關系類似於書報行業的報社或出版社、郵局或書店、讀者之間的關系。
以報紙發行為例說明,發布服務器類似於報社,報社提供報刊的內容並印刷,是數據源;分發服務器相當於郵局,它將各報社的報刊送(分發)到訂戶手中;訂閱服務器相當於訂戶,從郵局那裡收到報刊。在實際的復制中,發布服務器是一種數據庫實例,它通過復制向其他位置提供數據,分發服務器也是一種數據庫實例,它起著存儲區的作用,用於復制與一個或多個發布服務器相關聯的特定數據。每個發布服務器都與分發服務器上的單個數據庫(稱作“分發數據庫”)相關聯。分發數據庫存儲復制狀態數據和有關發布的元數據,並且在某些情況下為從發布服務器向訂閱服務器移動的數據起著排隊的作用。在很多情況下,一個數據庫服務器實例充當發布服務器和分發服務器兩個角色,這稱為“本地分發服務器”。訂閱服務器是接收復制數據的數據庫實例。一個訂閱服務器可以從多個發布服務器和發布接收數據。
圖1
復制有三種類:事務復制、快照復制、合並復制。
1、事務復制:事務復制是將復制啟用後的所有發布服務器上發布的內容在修改時傳給訂閱服務器,數據更改將按照其在發布服務器上發生的順序和事務邊界,應用於訂閱服務器,在發布內部可以保證事務的一致性。
2、快照復制:快照復制將數據以特定時刻的瞬時狀態分發,而不監視對數據的更新。發生同步時,將生成完整的快照並將其發送到訂閱服務器。
3、合並復制:合並復制通常是從發布數據庫對象和數據的快照開始,並且用觸發器跟蹤在發布服務器和訂閱服務器上所做的後續數據更改和架構修改。訂閱服務器在連接到網絡時將與發布服務器進行同步,並交換自上次同步以來發布服務器和訂閱服務器之間發生更改的所有行。
二、復制實例
這裡以配置一個事務復制來說明復制配置過程 。
試驗在同一台機器的二個實例間進行,實例名分別是SERVER01、SERVER02。將SERVER01配置發布服務器和分發服務器(也就是前面提到的“本地分發服務器”),SERVER02配置為訂閱服務器。在本例中將SERVER01中一個DBCoper庫中person表作為發布的數據,在發布前請確保person表有主鍵、SQL Server 代理自動啟動、發布數據庫是日志是完整模式。
第一步:完全備份SERVER01 DBCopy數據庫,在SERVER02上恢復DBCopy數據庫(復制前的同步,使用發布的源和目標數據一致)。
第二步:在SERVER01上設置發布和分發。
A、在SERVER01的復制節點-->本地發布右鍵選擇新建訂閱(如圖2)。
圖2
B、在新建發布向導中首先要求選擇分發服務器,本例選擇本機作為分發服務器,選擇默認值(如圖3)。
圖3
C、向導第三步要求選擇快照的路徑,一般情況下選擇默認路徑。
D、向導第四步選擇發布的數據庫(如圖四),選擇DBCopy。
圖4
E、接著選擇發布的類型,這裡選擇事務復制(如圖5)。
圖5
F、選擇發布的內容(PERSON),這裡不僅可以發表,還可以發布其他的數據庫對象,比如函數。在選擇某一個表之後還可以選擇發布某一列或幾列。在這個步驟下一個界面中可以選擇要發布的行。
圖6
G、設置發布的內容之後設置運行SQL代理的賬號。設置如下:
圖7
H、設置上一步之後,給復制起個名字PersonCopy。到此為止,發布和分發已配置成功(如圖8)。
第三步:配置訂閱
訂閱有兩種方種,一種是由發布服務器向訂閱服務器“推”數據,由訂閱服務器去請求訂閱數據。本例在SERVER02上設置請求訂閱。
A、第一步在SERVER02復制節點右擊訂閱,新建訂閱(圖9)。
圖9
B、選擇發布服務器,在下拉列表框中選擇查找SQL Server 發布服務器,選擇SERVER01,就可以看到剛才新建的發布PersonCopy(如圖10)。
圖10
C、選擇訂閱方式(如圖11), 這裡選擇請求訂閱。
圖11
D、選擇訂閱的本地數據庫(如圖12)。
圖12
E、設置完本地數據庫之後要求設置運行代理的安全性,設置成SQL 代理賬號。完成以上設置後,訂閱已設置完成。
在SERVER01表中插入一條新記錄後,在SERVER02中去檢查是否同步過來。一般來說,幾乎SERVER01執行完了,SERVER02就可以看到更新後的數據。