1. 程式人生 > >SqlServer資料庫同步方案詳解(包括跨網段)

SqlServer資料庫同步方案詳解(包括跨網段)

下載網站:www.SyncNavigator.CN 

 ----------------------------------------------------------

HKROnline SyncNavigator 8.4.1 非破解版 註冊機 授權啟用教程

 

 

 

最近一直在研究資料庫同步的問題,在網上查了很多資料,也請教了很多人,找到了一種通過快照複製的方法。研究了一番後發現之前就是用的這個方法,效果不是很好,果斷放棄。經過了一番尋覓和他人指點,最後從一位熱心網友那裡得知一款很好用的軟體—— SyncNavigator。

 

 

好東西就要拿出來跟大家分享,所以今天向大家介紹一下這款軟體,及其一些使用方法。下面先看看它有什麼強大的功能吧!

 

SyncNavigator的基本功能:

SqlServer資料庫同步是專案中常用到的環節,若一個專案中的資料同時存在於不同的資料庫伺服器中,而這些資料庫需要被多個不同的網域呼叫時,配置SqlServer資料庫同步是個比較好的解決方案。SqlServer資料庫同步的配置比較煩鎖,下面對其配置詳細步驟進行介紹:

一、 資料複製前提條件

1. 資料庫故障還原模型必需為完全還原模型。

2. 所有被同步的資料表都必須要用主鍵。

3. 釋出伺服器、分發伺服器和訂閱伺服器必須使用計算機名稱來進行SQLSERVER伺服器的註冊。

4. SQLSERVER必需啟動代理服務,且代理服務必需以本地計算機的帳號執行。

二、 解決前提條件實施步驟

1. 將資料庫故障還原模型調整為完全還原模型。具體步驟如下:

開啟SQLSERVER企業管理器à選擇對應的資料庫à單擊右鍵選擇屬性à選擇”選項”à 故障還原模型選擇完全還原模型。

2. 所有被同步的資料表都必須要用主鍵。(主要指事務複製)如果沒有主鍵的資料表,增加一個欄位名稱為id,型別為int 型,標識為自增1的欄位。

3. 釋出伺服器、分發伺服器和訂閱伺服器必須使用計算機名稱來進行SQLSERVER伺服器的註冊。

在企業管理器裡面註冊的伺服器,如果需要用作釋出伺服器、分發伺服器和訂閱伺服器,都必需以伺服器名稱進行註冊。不得使用IP地址以及別名進行註冊,比如LOCAL, “.”以及LOCALHOST等。

clip_image002

如果非同一網段或者遠端伺服器,需要將其對應關係加到本地系統網路配置檔案中。檔案的具體位置在%systemroot%\system32\drivers\etc\hosts

配置方式: 用記事本開啟hosts檔案,在檔案的最下方新增IP地址和主機名的對應關係。如圖:

clip_image002[4]

SQLSERVER必需啟動代理服務,且代理服務必需以本地計算機的帳號執行。

啟動SQLSERVER代理的方法:我的電腦à單擊右鍵”管理”à服務à SQLSERVERAGENT 將其設為自動啟動。如圖:

clip_image004

以本地計算機帳戶執行的配置方法: 開啟SQLSERVER企業管理器,選擇管理SQLSERVER代理。單擊右鍵屬性。將系統帳戶更改為本地帳戶且此本地帳號要求有系統管理員的許可權。一般設定為administrator這個帳戶。

clip_image006

以上前提條件滿足以後,就可以配置資料庫複製服務了。

三、瞭解複製配置概念和原理

1. 資料複製角色

clip_image002[6]

複製服務有三個角色,分別是釋出伺服器,分發伺服器和訂閱伺服器。他們分別做不同的工作。就像我們日常買書和報紙的概念是一樣的。

釋出伺服器: 也稱為出版伺服器,主要負責資料的釋出和出版工作。這個角色就好比我們的出版社或者報社。

分發伺服器: 主要負責將釋出伺服器的內容分發給訂閱者。他是連線釋出伺服器和訂閱伺服器的橋樑。這個角色就好比我們的郵遞員,將書和報紙送到我們的手裡。

訂閱伺服器: 主要負責接收發布的內容。這個角色就好比我們自己訂閱書和報紙,是一個訂閱者的角色。

2. 資料訂閱模式

資料訂閱的模式有推式訂閱和拉式訂閱兩種。推式訂閱主要是分發伺服器將資料推給訂閱伺服器。 拉式訂閱是訂閱伺服器主動向分發伺服器取資料。

這就好比我們自己訂閱雜誌和報紙一樣,如果人家送貨上門,這就是推式訂閱,消耗的是分發伺服器的資源,也就是消耗送貨人員的資源。如果是拉式訂閱,我們就需要自己到書店去購買,這樣消耗的就是我們自己的資料。消耗的是訂閱伺服器的資源。

3.資料釋出型別

資料釋出型別可發為三種(SQL2000):

A. 快照複製

clip_image004[7]

clip_image006[6]

當符合以下一個或多個條件時,使用快照複製本身是最合適的:

· 很少更改資料。

· 在一段時間內允許具有相對釋出伺服器已過時的資料副本。

· 複製少量資料。

· 在短期內出現大量更改

B. 事務複製

clip_image008

clip_image010

事務性複製通常用於伺服器到伺服器環境中,在以下各種情況下適合採用事務性複製:

· 希望發生增量更改時將其傳播到訂閱伺服器。

· 從釋出伺服器上發生更改,至更改到達訂閱伺服器,應用程式需要這兩者之間的滯後時間較短。

· 應用程式需要訪問中間資料狀態。例如,如果某一行更改了五次,事務性複製將允許應用程式響應每次更改(例如,激發觸發器),而不只是響應該行最終的資料更改。

· 釋出伺服器有大量的插入、更新和刪除活動。

C. 合併複製

clip_image012

clip_image014

合併複製通常用於伺服器到客戶端的環境中。合併複製適用於下列各種情況:

· 多個訂閱伺服器可能會在不同時間更新同一資料,並將其更改傳播到釋出伺服器和其他訂閱伺服器。

· 訂閱伺服器需要接收資料,離線更改資料,並在以後與釋出伺服器和其他訂閱伺服器同步更改。

· 每個訂閱伺服器都需要不同的資料分割槽。

· 可能會發生衝突,並且在衝突發生時,您需要具有檢測和解決衝突的能力。

· 應用程式需要最終的資料更改結果,而不是訪問中間資料狀態。例如,如果在訂閱伺服器與釋出伺服器進行同步之前,訂閱伺服器上的行更改了五次,則該行在釋出伺服器上僅更改一次來反映最終資料更改(也就是第五次更改的值)。

 

 

四、資料複製實施步驟

A. 配置釋出伺服器

開啟SQLSERVER企業管理器à選擇已註冊的SQL伺服器à工具à嚮導

clip_image002[8]

彈出選擇嚮導後,選擇“配置釋出和分發嚮導”後,出現如下向導:

clip_image004[9]

點選”下一步”

clip_image006[8]

選擇此伺服器作為分發伺服器和分發伺服器,點選下一步

clip_image008[4]

選擇快照資料夾,注意此處必段要使用網路路徑。

點選下一步,

clip_image010[4]

使用預設設定,點選下一步後點擊完成, 出現正在配置對話方塊,如下圖:

clip_image012[4]

配置完成後出現如下對話方塊:

clip_image014[4]

此時,說明我們的釋出服器配置成功了!

點選確定後,會談出如下視窗。如下圖:

clip_image016

此時SQLSERVER企業管理器中多了一項複製監視器。如下圖:

clip_image018

釋出伺服器配置成功以後,我們可以開始來配置釋出伺服器了。

B.配置分發伺服器

分發可以配置在分發伺服器上,也可以配置到其他的SQLSERVER

伺服器上。此處我們將分佈伺服器和分發伺服器配置在同一臺伺服器上。下面是需要釋出資料庫的配置步驟:

開啟SQLSERVER企業管理器à選擇已註冊的SQL伺服器à工具à嚮導

彈出選擇嚮導後,點選”複製”選擇”建立釋出嚮導”,選擇需要釋出的資料庫。如下圖:

clip_image020

點選“建立釋出”後,出現嚮導,點選“下一步”出現如下介面:

clip_image022

此介面要求確認選擇需要釋出的資料庫,系統會自動選中第一次選擇的資料庫,只需要點選“下一步”後出現如下介面:

clip_image024

此時需要選擇釋出的型別,跟據我們對釋出型別的描述和網路頻寬情況,選擇合適的釋出型別,比較常用的是快照發布和事務釋出。下面就以這兩個釋出為例進行配置。首先我們選擇快照發布,點選“下一步”, 出現如下介面:

clip_image026

此時嚮導提示我們選擇訂閱 伺服器的型別。由於我們現在用的都是

SQL SERVER 2000, 所以此時我們只選擇“執行SQL SERVER 2000的伺服器”即可(系統預設選項),然後點選“下一步”,出現如下介面:

clip_image028

此時出現選擇資料庫物件進行釋出,我們可以全部選擇,也可只選擇需要釋出的表、儲存過程、檢視以及自定義函式等。我們點選表的“全部發布”,點選“下一步”,出現如下介面:

clip_image030

由於我們採用的是快照複製,所以會出現一個”IDENTITY屬性未傳輸到訂閱伺服器的問題(就是指不會轉輸int型別為自增1的屬性,但是資料會進行傳輸)”,此時我們點選下一步, 出現如下介面:

clip_image032

出現以上介面後,我們再次點選“下一步”,會出現如下對話方塊:

clip_image034

可以選擇對定義資料的篩選,比如進行垂直(資料的列)或者水平(資料的行)的篩選。此處我們選擇否(系統預設),然後點選”下一步”, 如下圖:

clip_image036

出現配置完成的介面,點選完成即可。如下圖:

clip_image038

釋出伺服器建立完成後,會出現如下介面:

clip_image040

致此,釋出伺服器的配置就完成了。

此時我們可以通過複製監視器來檢視現有伺服器的各項複製代理的工作情況。如下圖:

clip_image042

當釋出伺服器配置完成以後,我們可以被髮布的資料庫多了一個手託著的圖示。如下圖:

clip_image044

注:如果需要對某資料庫進行事務複製,只需要在分佈型別中選擇“事務釋出”就可以了。如下圖:

clip_image046

其他操作與快照複製相同。需要注意的是“事務複製”要求資料表必需要有主鍵,否則無法對錶進行釋出。

釋出伺服器配置完成以後,我們可能進行訂閱伺服器的配置了。

C. 配置訂閱伺服器

訂閱伺服器有兩種方式。一種是推式訂閱,一種是拉式訂閱。

具體選擇那一種訂閱方式。需要考慮幾方面的因素:

① 對網路的考慮 比如外網遠端伺服器需要訂閱本地資料,由於本地伺服器沒有公網IP,則需要採取由本地向遠端伺服器進行推式訂閱,即強制訂閱的形式。

② 對伺服器效能的考慮 比如訂閱伺服器和分發伺服器都是外網IP地址或者內網IP地址。但是要求複製過程中不會對分發伺服器產生過大的壓力。此時,我們可以採取拉式訂閱的方式。拉式訂閱消耗的是訂閱伺服器的資源,而不會對分發伺服器的效能產生大的影響。

推式訂閱的具體配置如下:

開啟SQLSERVER企業管理器à選擇已註冊的SQL伺服器工具嚮導複製建立強制訂閱嚮導。如下圖:

clip_image048

選擇需要強制訂閱的資料庫,單擊“強制新訂閱“後出現了強制新訂閱的歡迎向導。如下圖:

clip_image050

點選“下一步”,選擇需要訂閱伺服器,如下圖:

clip_image052

單擊“下一步”,出現訂閱資料庫的名稱, 如下圖:

clip_image054

此時,建立一個適合的資料庫名點“瀏覽或建立”就可以選擇現

有的資料庫或者建立一個新的資料庫了。如下圖:

clip_image056

如果需要新建一個數據庫,我們可以點選“新建”,出現了新建資料庫的對話方塊。如下圖:

clip_image058

新建完資料庫之後,點選“下一步”如下圖:

clip_image002[10]

選擇分發代理何時更新訂閱內容,可以使用最短的滯後時間,也

可以選擇使用排程,此時我們選擇連續池(預設設定),然後點選”下一步”, 出現如下介面:

clip_image004[11]

點選“下一步”進行初始化架構和資料, 此時系統會檢測SQLSERVER代理服務的工作狀態。如下圖:

clip_image006[10]

如果狀態是“正在執行”,可點選“下一步”,如果狀態是未知,則需要檢查一下SQLSERVER代理服務是否啟動,如果沒有,則需要啟動一下SQLSERVER的代理服務。點選”下一步”之後,

出現配置完成介面,如下圖:

clip_image008[6]

點選“完成”,並開始配置訂閱了。如下圖:

clip_image010[6]

至此推式訂閱配置完成。(拉式訂閱配置與此基本相同,需要在訂閱伺服器上通過複製嚮導配置請求訂閱即可)