標籤:style blog http io ar os sp on 檔案
對於資料庫的複製功能一直也沒有用過,正好這次需要做資料庫之間的資料同步,就把資料庫複寫同步整理了一下。資料庫同步可以是同一個伺服器之間不同資料庫之間資料同步,也可以是區域網路內不同伺服器間資料庫的同步。因為這次做的就是區域網路內兩台伺服器上資料庫間資料的同步,對於不是在同一區域網路內的兩台或多台伺服器資料庫同步是否可以實現,暫時沒有做測試,也沒有深入的瞭解,所以也不知道是否可以實現了。有不到之處望多多指教。
下面具體說一下步驟,首先我們說一下發行伺服器上的準備工作和條件,先把Sql Server代理設定為自啟動;對事務發布,確保資料庫表要有主鍵;建立一個檔案夾,設定為共用。
首先我們設定一下配置分發,如果之前做過配置分發設定,就是右邊的效果,可以直接建立本地發布。
接著,一直下一步即可,在快照檔案夾出注意一下
下一步,如果一開始沒有設定Sql Server代理為自啟動,就會提示這個
下一步,這個地方填寫一開始建立好的共用資料夾地址,如F:\ShareFolder
下一步,預設填寫
下一步,勾選配置分發
點完成,可以看到:
至此配置分發已經好了,接著就是建立本地發布了,
下一步選擇要同步的資料庫
這個地方選擇事務發布,具體的每個發布可以看說明,後面也會講到
下一步,如果你的資料庫中有視圖等,也會顯示出來,勾選你要同步的對象
下一步,添加篩選項,如果需要就添加,不需要直接下一步,添加的介面右圖
這裡不做添加,下一步,勾選第一項
下一步,點安全設定,如下設定:
確定後如下:
下一步,勾選建立發布,下一步,填寫一個發布名稱
點完成
至此本地發布就建立好了,這時再展開複製-本地發布可以看到剛剛建立好的本地發布test
建立好了本地發布就要建立訂閱了,為了方便就在本機做訂閱,如果在其他伺服器上做訂閱流程是一樣的只是在選擇發行伺服器時有點區別,下面會講到
同樣下一步,如果這地方是在本機訂閱,則直接選擇資料庫和發布test,如果是訂閱其他伺服器上的發布,可以展開發布伺服器,選擇“尋找sql server 發行伺服器”
這個時候會彈出資料庫登入介面,這裡需要注意一下,伺服器登入要用電腦名稱,不能用IP地址或別名,還要注意,這個地方要連結發行伺服器,因為確保發行伺服器上資料庫允許遠程連結。連結上之後會在剛才的介面展示這個伺服器上的發布,選擇好發布,下一步即可,勾選第一項。
下一步,勾選上訂閱伺服器,選擇訂閱資料庫,只要選擇建立資料庫就可以了。這時會彈出建立資料庫對話方塊,建立一個資料庫,
下一步,設定安全性
確定,下一步,同步計劃選連續運行,初始化時間選擇立即
下一步,選擇立即建立訂閱,一直下一步即可,至完成。這個時候展開複製下的本地發布和本機訂閱,可以看到發布和訂閱都存在了。而且剛才建立的訂閱資料庫TestDataDY在資料庫中也存在了。
所有的工作都已經做好了,下面就是測試了。因為我們是把TestData作為發布的資料庫,TestDataDY是訂閱的資料庫,因此我們在TestData資料庫的表中添加或修改資料庫,看TestDataDY資料庫中的資料是否也跟著響應的改變。測試的過程可以自己手動的做一下。
接下來我們說一下其他的東西,第一個就是一開始我們建立的共用資料夾,他叫快照檔案夾,顧名思義就是用來存放快照的。我們可以找到這個檔案夾並開啟看一下,一開始是空的檔案夾,當我建立了發布和訂閱以後,在此開啟可以看到,有四個以發布的資料庫命名的檔案。這些就是資料庫TestData中的表的初始架構和資料。
回顧上面建立訂閱的時候建立的訂閱資料庫,我們只是建立了資料庫,而資料庫中的表、欄位等我們沒有建立,當我們建立好訂閱以後,這些表和欄位都自動的建立好了,就是通過快照檔案夾中的初始架構和資料來完成的。
還有一個就是散發資料庫distribution,他是可以找到的,他存在系統資料庫中。
可以看到這個資料就一張表和一個欄位,這個資料庫主要的作用是用來儲存記錄、錯誤和新事務。
接著就是發布類型了,發布類型有快照發布,事務發布,具有可更新訂閱的事務發布和合并發布。
快照發布:發行伺服器按照預定的時間間隔向訂閱伺服器發送已發佈資料的快照。他的工作機制是:發行伺服器,將要發布的資料庫整個做一個快照;訂閱伺服器的快照代理程式把發行伺服器的快照讀取過來,放在本地的快照檔案夾內;訂閱伺服器的發布代理程式把快照檔案夾中的快照發布到訂閱伺服器上。記錄和快照記錄在散發者中。
事物發布:在訂閱伺服器收到已發佈資料的初始快照集後,發行伺服器將事務串流到訂閱伺服器。他的基本原理:初始資料和架構(通過快照式複寫來完成),從這裡可以體現出來快照式複寫,是所有複製的基礎 。快照式複寫在訂閱伺服器上建立了訂閱資料庫;發行伺服器的資料修改後,寫交易記錄;散發者的日誌讀取代理讀取發生改變的資料的交易記錄,把這些交易記錄儲存在發行伺服器的發行集資料庫中;散發者的分發代理程式 將散發資料庫中的交易記錄分發到各個訂閱伺服器上,然後把記錄和錯誤記錄在散發資料庫中。
具有可更新訂閱的事務發布: SQL Server 訂閱伺服器收到已發佈資料的初始快照集後,發行伺服器將事務串流到訂閱伺服器。來自訂閱伺服器的事務被應用於發行伺服器。
合并發布:在訂閱伺服器收到已發佈資料的初始快照集後,發行伺服器和訂閱伺服器可以獨立更新已發佈資料。更改會定期合并。Microsoft SQL Server Compact Edition 只能訂閱合并發布。
這幾個發布的區別是:
1、快照發布和事務發布是單向的,即A->B;合并發布是雙向的,A->B,B->A。
2、快照式複寫是複製所有的資料,而事務複製和合併式複寫是複製資料的更改。
以上就是複製的整個流程了,不過這個只是簡單是資料同步,實際的項目中可以根據需求來選擇發布類型以及配置。以上有不到之處望多多指教。
Sql Server 2008 R2資料庫之複製同步資料