Step4:SQL Server 跨網段(跨機房)複製

來源:互聯網
上載者:User

標籤:

一.本文所涉及的內容(Contents)
  1. 本文所涉及的內容(Contents)
  2. 背景(Contexts)
  3. 解決方案(Solution)
  4. 搭建過程(Process)
  5. 注意事項(Attention)
  6. 參考文獻(References)
二.背景(Contexts)

  搭建SQL Server複製的時候,如果網路環境是區域網路內,通過主機名稱就可以實現了,但是如果是跨網段、跨機房異地搭建複製的時候就需要注意了,因為SQL Server複製不支援通過IP串連散發者,那有什麼辦法解決跨網段、跨機房的問題呢?

三.解決方案(Solution)

  在跨網段、跨機房進行SQL Server複製的時候需要區分兩種情況:一種是外網IP的1433連接埠對應了這台機器SQL Server的資料庫連接埠;另外一種情況是外網IP對應SQLServer機器的連接埠不是1433;下面是幾種解決方案:

A. 如果外網IP連接埠是1433,可以在Windows的host檔案中指定IP地址與主機名稱的對應關係,主機名稱必須跟真實的主機名稱一樣?

B. 因為你的外網IP連接埠不是1433,所以你無法在host檔案中跟IP地址一起指定連接埠;這種情況下,如果條件允許(安全性和連接埠數),你可以在防火牆中開放外網IP的1433連接埠對應這個發行伺服器的1433連接埠,並且限制某個IP可以訪問這個連接埠,程式等訪問發行集資料庫就使用另外的21433連接埠,保證了1433連接埠的安全;又可以解決連接埠映射問題,可以畫張圖解釋;

(Figure1:邏輯結構圖)

C. 另外一種方案是在SQL Server組態管理員裡建立一個SQL Server別名,這個別名需要跟主機名稱一樣,不需要啟用SQL Server Browser服務;

四.搭建過程(Process)

(一) 環境資訊

系統內容:Windows Server 2008 + SQL Server 2008

發行伺服器:192.168.1.101,1924,192.168.1.101,1433,伺服器名稱:USER-H2B2A89PEK

散發者:與發行伺服器同一台機器

訂閱伺服器:192.168.1.102,1433,伺服器名稱:QuZhoushiwei105

發行集資料庫:Task

訂閱資料庫:TaskSubscribe

資料庫帳號:ReplicationUser/ ReplicationPassword

 

(二) 搭建步驟

  上面的發行伺服器的外網IP開通了兩個連接埠,一個是預設的1433,一個是1924,如果是預設的1433,可以通過host檔案,而如果只有連接埠1924的話就只能通過SQL Server別名方式實現,這裡為了做測試就一起開通了這2個連接埠了。

A. 下面是通過host檔案的形式建立訂閱的具體步驟:

1) 在發行伺服器上建立發布,具體操作可以參考:SQL Server 複製事務發布,只有搭建成功之後下面的步驟才能進行;

2) 設定訂閱伺服器C:\Windows\System32\drivers\etc目錄的host檔案,添加散發者(我的環境是發行伺服器與散發者是一起的,所以這裡指定的是發行伺服器的地址)資訊:192.168.1.101 USER-H2B2A89PEK

3) 設定散發者C:\Windows\System32\drivers\etc目錄的host檔案,添加訂閱伺服器資訊:192.168.1.102 QuZhoushiwei105

4) 在訂閱伺服器上建立訂閱,具體步驟如下:

(Figure2:串連發行伺服器)

(Figure3:成功串連發行伺服器)

(Figure4:選擇發送訂閱)

(Figure5:選擇訂閱資料庫)

(Figure6:發送訂閱帳號密碼)

(Figure7:代理計劃)

(Figure8:初始化)

(Figure9:成功後的訂閱資訊與作業)

(Figure10:建立訂閱的狀態資訊)

 

B. 下面是通過SQL Server別名的形式建立訂閱的具體步驟:

1) 在發行伺服器上建立發布,具體操作可以參考:SQL Server 複製事務發布,只有搭建成功之後下面的步驟才能進行;

2) 在訂閱伺服器上建立散發者(我的環境是發行伺服器與散發者是一起的,所以這裡指定的是發行伺服器的地址)的別名;

(Figure11:訂閱伺服器上的別名)

  在散發者上,如果別名的設定包括:SQL Native Client 10.0 配置(32位)和SQL Native Client 10.0 配置,需要都設定訂閱伺服器的別名,如果沒有像Figure13那樣進行設定,

(Figure12:散發者上的別名)

(Figure13:散發者上的別名)

3) 接下來的步驟按照Figure2到Figure8進行就可以了,同樣,最後一樣可以達到Figure9、Figure10的效果;

五.注意事項(Attention)

1. 使用提取訂閱,分發作業是在訂閱伺服器上建立的;使用發送訂閱,分發作業是在散發者上建立;

2. 在發行伺服器上建立發布的時候,如果SQL Server資料庫執行個體名與伺服器名不一致,將會出現下面的錯誤:

(Figure14:發布錯誤)

在訂閱伺服器上建立訂閱的時候,如果SQL Server資料庫執行個體名與伺服器名不一致,將會出現下面的錯誤:

(Figure15:訂閱錯誤)

3. 可以通過下面的SQL指令碼修改不一致的問題,修改之後記得重啟SQL Server服務才會生效;

/*SQL Server資料庫執行個體名與伺服器名不一致的解決辦法*/IF SERVERPROPERTY(‘SERVERNAME‘)<>@@SERVERNAME  BEGIN    DECLARE @server SYSNAME    SET @[email protected]@SERVERNAME    EXEC sp_dropserver @[email protected]      SET @server=CAST(SERVERPROPERTY(‘SERVERNAME‘) AS SYSNAME)    EXEC sp_addserver @[email protected],@local=‘LOCAL‘END

4. 散發者上的快照檔案會給刪除?

CareySon:After the snapshot is applied at all Subscribers, replication cleanup deletes the associated .bcp file for the initial snapshots automatically.

5. 如果通過修改host檔案部署發布訂閱,你必須使用發送訂閱模式,如果你使用提取訂閱模式,因為你無法讀取快照檔案,將會報下面的錯誤:

(Figure16:提取訂閱無法讀取快照檔案錯誤資訊)

使用別名的形式部署發布訂閱,同樣會存在相同的問題,CareySon在Azure上通過開通相關許可權的方式可以使用提取訂閱方式,但是過程比較複雜,這裡就不做討論了;

6. 如果只在訂閱伺服器的host檔案上指定了散發者(這裡指定是發行伺服器,因為我的發行伺服器與散發者是一起的),沒有在散發者的host檔案上指定訂閱伺服器地址,將會發生下面的錯誤:

(Figure17:發行伺服器串連不上訂閱伺服器)

7. 如果伺服器同時存在“SQL Native Client 10.0 配置(32位)”和“SQL Native Client 10.0 配置”,測試發現“SQL Native Client 10.0 配置(32位)”設定的別名是提供給:尋找SQL Server發行伺服器使用的,錯誤資訊類似Figure19所示;“SQL Native Client 10.0 配置”設定的別名是提供給:散發者作業推送到訂閱伺服器使用的,錯誤資訊類似Figure17所示;具體原因不清楚,求科普;

(Figure18:別名)

8. 在散發者和訂閱伺服器上設定別名的時候,別名應該跟伺服器的執行個體名要一致,不然會報下面的錯誤:

(Figure19:錯誤資訊)

Step4:SQL Server 跨網段(跨機房)複製

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.