1. 程式人生 > >SqlServer2005 資料庫釋出、訂閱配置圖文詳解

SqlServer2005 資料庫釋出、訂閱配置圖文詳解

一:準備條件
<1>軟體準備條件
機器A端:SqlServer2005 Management Studio + WinServer 2003 Enterprise (作為釋出伺服器)
機器B端:Sqlserver2005 Management Studio Express + WinXP(作為訂閱伺服器)
(可以用別的,不過訂閱伺服器版本不得高於釋出伺服器版本)
<2>資料庫複製準備條件

1. 所有被同步的資料表儘量要用主鍵,如果沒有主鍵也沒有關係,SqlServer會提示為表自動生成主鍵

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

3. SQLSERVER必需啟動代理服務,且代理服務必須以本地計算機的帳號執行。 不得使用IP地址以及別名進行註冊,比如LOCAL, “.”以及LOCALHOST等。

4.如果非同一網段或者遠端伺服器,或者只能用IP,不能用計算機名的,為對方註冊伺服器別名。將其對應關係加到本地系統網路配置檔案中。檔案的具體位置在C:\Windows\system32\drivers\etc\hosts,這裡的配置和linux下類似:

192.168.0.1 server
192.168.0.2 client

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

6.釋出伺服器和訂閱伺服器都要設定MSDTC ,允許網路訪問控制面板--->管理工具--->元件服務--->計算機--->我的電腦(Win7繼續找 -->Distributed Transaction Coordinator--->本地DTC),右鍵屬性,找到MSDTC選項卡,點選安全設定,按如下設定即可:


確定,重啟MSDTC服務。

二:準備工作的詳細操作步驟

1、啟動SQL代理(SQLSERVERAGENT)服務。
2、開啟SQL Server 2005的網路協議TCP/IP和管道命名協議並重啟網路服務(在SQL Server Configuration Manager裡頭配置)。

3、設定SQL SERVER 身份驗證為混合驗證SQL Server和WINDOWS(釋出、訂閱伺服器均設定)
4、釋出伺服器和訂閱伺服器互相註冊
步驟如下:檢視---單擊已註冊伺服器---右擊 資料庫引擎---新建伺服器註冊----填寫要註冊的遠端伺服器名稱----身份驗證選“SQL Server驗證“----使用者名稱(sa) 密碼,對於只能用IP,不能用計算機名的,為其註冊伺服器別名,見上。

準備工作完成,接下來我們進行釋出和訂閱的操作
三:釋出和訂閱
  釋出
(1)首先我們在釋出伺服器上(winserver2003)開啟SqlServer2005 Management Studio (企業版)。在“物件資源管理器”中找到複製節點,右鍵--->新建釋出(注:如果你的SqlServer是express版本的話,是沒有釋出這一功能的,只有訂閱功能!)


(2)接下來選擇要釋出的資料庫,下一步,選擇“釋出型別”,我這裡選擇“合併釋出”,

我本人理解的幾種釋出型別:

  • 快照複製:快照複製只在某一時刻給出版資料庫中的出版資料照相,然後將資料複製到訂閱者的伺服器上,快照複製較為簡單,其所複製的只是某一時刻資料庫的瞬間資料,因此實時性差,而且值得注意的是快照複製並不是不停地監視出版資料庫中發生的變化情況,它是對出版資料庫進行異性掃描,把所有出版資料中的資料從源資料庫送至目標資料庫,而不僅僅是變化的資料。如果資料量很大,那麼要複製的資料就很多。因此對網路資源要求很高,不僅要有較快的傳輸速度,而且要保證傳輸的可靠性。快照複製是最簡單的一種複製型別,能夠在出版者和訂閱者之間保證資料的一致性,快照複製通常使用在以下場合:在一定時間內出現大量的更改操作,但資料總量不大,變化週期較長。
  • 事務複製:快照複製是將整個資料集傳送給訂閱伺服器,由於體積大而造成複製週期較長,會形成複製滯後問題。那麼事務複製使用事務日誌來生成將複製到訂閱伺服器的事務,因為它只複製事務也就是變化,所以滯後也比快照複製低得多,因為將不斷地在訂閱伺服器處得到及時應用。
    事務複製有三個元件:
    快照代理,它生成架構,資料以及跟蹤複製過程所需的資料;
    分發代理:它分發快照和隨後的命令;
    日誌讀取器代理:它讀取釋出資料的事務日誌。在事務複製中,當出版資料庫發生變化時,這種變化就會立即傳遞給訂閱者。並在較短時間內完成(幾秒),而不是像快照複製那樣要經過很長一段時間間隔。因此,事務複製是一種接近實時地從源到目標分發資料的方法。由於某種原因事務複製的頻率較高。所以必須保證在訂閱者與出版者之間要有可靠的網路連線。
  • 合併複製:合併複製是為移動使用者設計的,可以在釋出伺服器或是訂閱伺服器處執行修改,在合併代理執行時,這些修改將同步,多用於釋出伺服器與訂閱服務都修改資料的情況下。工作原理如下:在要複製的每個表上實現觸發器,並使用包含GUID列唯一標識要複製的表中的每一行。對其中的任何一個表進行修改時,都會將更改將記錄一個數據表中,在合併代理執行時,它收集資料表中的GUID,這些GUID指出了在釋出伺服器和訂閱伺服器處修改過的行。對於只在釋出伺服器或是訂閱端修改的資料則直接進行相應操作,如INSERT,UPDATE,DELETE,如果雙方都有GUID則按照使用者指定的方式解決衝突,預設釋出伺服器伏先。
配置複製:
無論是快照複製,事務性複製還是合併複製,建立複製都要經過以下幾個步驟:
1.建立釋出伺服器。選擇要釋出的伺服器。如果有條件的,也可以分發伺服器,在這裡我們就將釋出伺服器和分發伺服器設定在同一臺計算機上。
2.不論是釋出伺服器還是訂閱伺服器必須開啟代理服務。
3.建立一個釋出。即將需要的資料庫及物件釋出出來。
4.選擇一個適合自己的釋出型別。
5.設定複製代理及安全,即指定可以執行代理的使用者帳號。
(3)下一步,選擇訂閱伺服器型別,選擇“SqlServer2005”,下一步,選擇釋出專案,我們選擇表、檢視、儲存過程等。

(4)接下來設定作業計劃,為了方便看到測試效果,我們設定“每隔一分鐘”執行一次作業。


(5)設定快照代理安全性,連線到釋出伺服器時,使用sa

(6)為釋出起個名字,完成釋出


訂閱
接下來,我們配置訂閱伺服器。訂閱伺服器是winxp系統,SqlServer版本為SqlServer 2005 Manager Studio Express ,只支援訂閱。
(1)同釋出,新建訂閱


(2)選擇釋出伺服器,找到我們剛剛新建的釋出“Test3Copy” ,下一步


(3)選擇執行代理的位置,根據需求選擇是“推送”還是“請求


(4)接下來同釋出類似,這裡就不贅述了,訂閱執行成功,在訂閱資料庫和釋出資料庫的表中都會多出一個欄位來,SqlServer自動生成的標誌訂閱成功