程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 詳解SqlServer數據庫同步數據處理

詳解SqlServer數據庫同步數據處理

編輯:關於SqlServer

SqlServer數據庫同步是項目中常用到的環節,若一個項目中的數據同時存在於不同的數據庫服務器中,而這些數據庫需要被多個不同的網域調用時,配置SqlServer數據庫同步是個比較好的解決方案。SqlServer數據庫同步的配置比較煩鎖,下面對其配置詳細步驟進行介紹:
一、 數據復制前提條件

1. 數據庫故障還原模型必需為完全還原模型。

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

3. 發布服務器、分發服務器和訂閱服務器必須使用計算機名稱來進行SQLSERVER服務器的注冊。

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

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

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

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

2. 所有被同步的數據表都必須要用主鍵。(主要指事務復制)如果沒有主鍵的數據表,增加一個字段名稱為id,類型為int 型,標識為自增1的字段。

3. 發布服務器、分發服務器和訂閱服務器必須使用計算機名稱來進行SQLSERVER服務器的注冊。

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

如果非同一網段或者遠程服務器,需要將其對應關系加到本地系統網絡配置文件中。文件的具體位置在%systemroot%\system32\drivers\etc\hosts

配置方式: 用記事本打開hosts文件,在文件的最下方添加IP地址和主機名的對應關系。如圖:

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

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

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

以上前提條件滿足以後,就可以配置數據庫復制服務了。

三、了解復制配置概念和原理

1. 數據復制角色

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

發布服務器: 也稱為出版服務器,主要負責數據的發布和出版工作。這個角色就好比我們的出版社或者報社。

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

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

2. 數據訂閱模式

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

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

3.數據發布類型

數據發布類型可發為三種(SQL2000):

A. 快照復制

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

・ 很少更改數據。

・ 在一段時間內允許具有相對發布服務器已過時的數據副本。

・ 復制少量數據。

・ 在短期內出現大量更改

B. 事務復制

事務性復制通常用於服務器到服務器環境中,在以下各種情況下適合采用事務性復制:

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

・ 從發布服務器上發生更改,至更改到達訂閱服務器,應用程序需要這兩者之間的滯後時間較短。

・ 應用程序需要訪問中間數據狀態。例如,如果某一行更改了五次,事務性復制將允許應用程序響應每次更改(例如,激發觸發器),而不只是響應該行最終的數據更改。

・ 發布服務器有大量的插入、更新和刪除活動。

C. 合並復制

合並復制通常用於服務器到客戶端的環境中。合並復制適用於下列各種情況:

・ 多個訂閱服務器可能會在不同時間更新同一數據,並將其更改傳播到發布服務器和其他訂閱服務器。

・ 訂閱服務器需要接收數據,脫機更改數據,並在以後與發布服務器和其他訂閱服務器同步更改。

・ 每個訂閱服務器都需要不同的數據分區。

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

・ 應用程序需要最終的數據更改結果,而不是訪問中間數據狀態。例如,如果在訂閱服務器與發布服務器進行同步之前,訂閱服務器上的行更改了五次,則該行在發布服務器上僅更改一次來反映最終數據更改(也就是第五次更改的值)。

四、數據復制實施步驟

A. 配置發布服務器

打開SQLSERVER企業管理器à選擇已注冊的SQL服務器à工具à向導

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

點擊”下一步”

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

選擇快照文件夾,注意此處必段要使用網絡路徑。

點擊下一步,

使用默認設置,點擊下一步後點擊完成, 出現正在配置對話框,如下圖:

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

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

點擊確定後,會談出如下窗口。如下圖:

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

發布服務器配置成功以後,我們可以開始來配置發布服務器了。

B.配置分發服務器

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

服務器上。此處我們將分布服務器和分發服務器配置在同一台服務器上。下面是需要發布數據庫的配置步驟:

打開SQLSERVER企業管理器à選擇已注冊的SQL服務器à工具à向導

彈出選擇向導後,點擊”復制”選擇”創建發布向導”,選擇需要發布的數據庫。如下圖:

點擊“創建發布”後,出現向導,點擊“下一步”出現如下界面:

此界面要求確認選擇需要發布的數據庫,系統會自動選中第一次選擇的數據庫,只需要點擊“下一步”後出現如下界面:

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

此時向導提示我們選擇訂閱 服務器的類型。由於我們現在用的都是

SQL SERVER 2000, 所以此時我們只選擇“運行SQL Server 2000的服務器”即可(系統默認選項),然後點擊“下一步”,出現如下界面:

此時出現選擇數據庫對象進行發布,我們可以全部選擇,也可只選擇需要發布的表、存儲過程、視圖以及自定義函數等。我們點擊表的“全部發布”,點擊“下一步”,出現如下界面:

由於我們采用的是快照復制,所以會出現一個”IDENTITY屬性未傳輸到訂閱服務器的問題(就是指不會轉輸int類型為自增1的屬性,但是數據會進行傳輸)”,此時我們點擊下一步, 出現如下界面:

出現以上界面後,我們再次點擊“下一步”,會出現如下對話框:

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

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

發布服務器創建完成後,會出現如下界面:

致此,發布服務器的配置就完成了。

此時我們可以通過復制監視器來查看現有服務器的各項復制代理的工作情況。如下圖:

當發布服務器配置完成以後,我們可以被發布的數據庫多了一個手托著的圖標。如下圖:

注:如果需要對某數據庫進行事務復制,只需要在分布類型中選擇“事務發布”就可以了。如下圖:

其他操作與快照復制相同。需要注意的是“事務復制”要求數據表必需要有主鍵,否則無法對表進行發布。

發布服務器配置完成以後,我們可能進行訂閱服務器的配置了。

C. 配置訂閱服務器

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

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

① 對網絡的考慮 比如外網遠程服務器需要訂閱本地數據,由於本地服務器沒有公網IP,則需要采取由本地向遠程服務器進行推式訂閱,即強制訂閱的形式。

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

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

打開SQLSERVER企業管理器à選擇已注冊的SQL服務器工具向導復制創建強制訂閱向導。如下圖:

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

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

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

此時,創建一個適合的數據庫名點“浏覽或創建”就可以選擇現

有的數據庫或者創建一個新的數據庫了。如下圖:

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

新建完數據庫之後,點擊“下一步”如下圖:

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

可以選擇使用調度,此時我們選擇連續池(默認設置),然後點擊”下一步”, 出現如下界面:

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

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

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

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved