日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL Server 跨网段(跨机房)复制

發(fā)布時間:2025/3/8 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL Server 跨网段(跨机房)复制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.本文所涉及的內(nèi)容(Contents)

  • 本文所涉及的內(nèi)容(Contents)
  • 背景(Contexts)
  • 解決方案(Solution)
  • 搭建過程(Process)
  • 注意事項(Attention)
  • 參考文獻(References)
  • 二.背景(Contexts)

      搭建SQL Server復(fù)制的時候,如果網(wǎng)絡(luò)環(huán)境是局域網(wǎng)內(nèi),通過主機名就可以實現(xiàn)了,但是如果是跨網(wǎng)段、跨機房異地搭建復(fù)制的時候就需要注意了,因為SQL Server復(fù)制不支持通過IP連接分發(fā)服務(wù)器,那有什么辦法解決跨網(wǎng)段、跨機房的問題呢?

    三.解決方案(Solution)

      在跨網(wǎng)段、跨機房進行SQL Server復(fù)制的時候需要區(qū)分兩種情況:一種是外網(wǎng)IP的1433端口對應(yīng)了這臺機器SQL Server的數(shù)據(jù)庫端口;另外一種情況是外網(wǎng)IP對應(yīng)SQLServer機器的端口不是1433;下面是幾種解決方案:

    A. 如果外網(wǎng)IP端口是1433,可以在Windows的host文件中指定IP地址與主機名的對應(yīng)關(guān)系,主機名必須跟真實的主機名一樣?

    B. 因為你的外網(wǎng)IP端口不是1433,所以你無法在host文件中跟IP地址一起指定端口;這種情況下,如果條件允許(安全性和端口數(shù)),你可以在防火墻中開放外網(wǎng)IP的1433端口對應(yīng)這個發(fā)布服務(wù)器的1433端口,并且限制某個IP可以訪問這個端口,程序等訪問發(fā)布數(shù)據(jù)庫就使用另外的21433端口,保證了1433端口的安全;又可以解決端口映射問題,可以畫張圖解釋;

    (Figure1:邏輯結(jié)構(gòu)圖)

    C. 另外一種方案是在SQL Server配置管理器里建立一個SQL Server別名,這個別名需要跟主機名一樣,不需要啟用SQL Server Browser服務(wù);

    四.搭建過程(Process)

    (一) 環(huán)境信息

    系統(tǒng)環(huán)境:Windows Server 2008 + SQL Server 2008

    發(fā)布服務(wù)器:192.168.1.101,1924,192.168.1.101,1433,服務(wù)器名稱:USER-H2B2A89PEK

    分發(fā)服務(wù)器:與發(fā)布服務(wù)器同一臺機器

    訂閱服務(wù)器:192.168.1.102,1433,服務(wù)器名稱:QuZhoushiwei105

    發(fā)布數(shù)據(jù)庫:Task

    訂閱數(shù)據(jù)庫:TaskSubscribe

    數(shù)據(jù)庫帳號:ReplicationUser/ ReplicationPassword

    ?

    (二) 搭建步驟

      上面的發(fā)布服務(wù)器的外網(wǎng)IP開通了兩個端口,一個是默認的1433,一個是1924,如果是默認的1433,可以通過host文件,而如果只有端口1924的話就只能通過SQL Server別名方式實現(xiàn),這里為了做測試就一起開通了這2個端口了。

    A. 下面是通過host文件的形式創(chuàng)建訂閱的具體步驟:

    1) 在發(fā)布服務(wù)器上創(chuàng)建發(fā)布,具體操作可以參考:SQL Server 復(fù)制事務(wù)發(fā)布,只有搭建成功之后下面的步驟才能進行;

    2) 設(shè)置訂閱服務(wù)器C:\Windows\System32\drivers\etc目錄的host文件,添加分發(fā)服務(wù)器(我的環(huán)境是發(fā)布服務(wù)器與分發(fā)服務(wù)器是一起的,所以這里指定的是發(fā)布服務(wù)器的地址)信息:192.168.1.101 USER-H2B2A89PEK

    3) 設(shè)置分發(fā)服務(wù)器C:\Windows\System32\drivers\etc目錄的host文件,添加訂閱服務(wù)器信息:192.168.1.102 QuZhoushiwei105

    4) 在訂閱服務(wù)器上創(chuàng)建訂閱,具體步驟如下:

    (Figure2:連接發(fā)布服務(wù)器)

    (Figure3:成功連接發(fā)布服務(wù)器)

    (Figure4:選擇推送訂閱)

    (Figure5:選擇訂閱數(shù)據(jù)庫)

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

    (Figure7:代理計劃)

    (Figure8:初始化)

    (Figure9:成功后的訂閱信息與作業(yè))

    (Figure10:新建訂閱的狀態(tài)信息)

    ?

    B. 下面是通過SQL Server別名的形式創(chuàng)建訂閱的具體步驟:

    1) 在發(fā)布服務(wù)器上創(chuàng)建發(fā)布,具體操作可以參考:SQL Server 復(fù)制事務(wù)發(fā)布,只有搭建成功之后下面的步驟才能進行;

    2) 在訂閱服務(wù)器上創(chuàng)建分發(fā)服務(wù)器(我的環(huán)境是發(fā)布服務(wù)器與分發(fā)服務(wù)器是一起的,所以這里指定的是發(fā)布服務(wù)器的地址)的別名;

    (Figure11:訂閱服務(wù)器上的別名)

      在分發(fā)服務(wù)器上,如果別名的設(shè)置包括:SQL Native Client 10.0 配置(32位)和SQL Native Client 10.0 配置,需要都設(shè)置訂閱服務(wù)器的別名,如果沒有像Figure13那樣進行設(shè)置,

    (Figure12:分發(fā)服務(wù)器上的別名)

    (Figure13:分發(fā)服務(wù)器上的別名)

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

    五.注意事項(Attention)

    1. 使用請求訂閱,分發(fā)作業(yè)是在訂閱服務(wù)器上創(chuàng)建的;使用推送訂閱,分發(fā)作業(yè)是在分發(fā)服務(wù)器上創(chuàng)建;

    2. 在發(fā)布服務(wù)器上創(chuàng)建發(fā)布的時候,如果SQL Server數(shù)據(jù)庫實例名與服務(wù)器名不一致,將會出現(xiàn)下面的錯誤:

    (Figure14:發(fā)布錯誤)

    在訂閱服務(wù)器上創(chuàng)建訂閱的時候,如果SQL Server數(shù)據(jù)庫實例名與服務(wù)器名不一致,將會出現(xiàn)下面的錯誤:

    (Figure15:訂閱錯誤)

    3. 可以通過下面的SQL腳本修改不一致的問題,修改之后記得重啟SQL Server服務(wù)才能生效;

    /* SQL Server數(shù)據(jù)庫實例名與服務(wù)器名不一致的解決辦法 */ IF SERVERPROPERTY('SERVERNAME')<>@@SERVERNAME BEGINDECLARE @server SYSNAMESET @server=@@SERVERNAMEEXEC sp_dropserver @server=@server SET @server=CAST(SERVERPROPERTY('SERVERNAME') AS SYSNAME)EXEC sp_addserver @server=@server,@local='LOCAL' END

    4. 分發(fā)服務(wù)器上的快照文件會給刪除?

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

    5. 如果通過修改host文件部署發(fā)布訂閱,你必須使用推送訂閱模式,如果你使用請求訂閱模式,因為你無法讀取快照文件,將會報下面的錯誤:

    (Figure16:請求訂閱無法讀取快照文件錯誤信息)

    使用別名的形式部署發(fā)布訂閱,同樣會存在相同的問題,CareySon在Azure上通過開通相關(guān)權(quán)限的方式可以使用請求訂閱方式,但是過程比較復(fù)雜,這里就不做討論了;

    6. 如果只在訂閱服務(wù)器的host文件上指定了分發(fā)服務(wù)器(這里指定是發(fā)布服務(wù)器,因為我的發(fā)布服務(wù)器與分發(fā)服務(wù)器是一起的),沒有在分發(fā)服務(wù)器的host文件上指定訂閱服務(wù)器地址,將會發(fā)生下面的錯誤:

    (Figure17:發(fā)布服務(wù)器連接不上訂閱服務(wù)器)

    7. 如果服務(wù)器同時存在“SQL Native Client 10.0 配置(32位)”和“SQL Native Client 10.0 配置”,測試發(fā)現(xiàn)“SQL Native Client 10.0 配置(32位)”設(shè)置的別名是提供給:查找SQL Server發(fā)布服務(wù)器使用的,錯誤信息類似Figure19所示;“SQL Native Client 10.0 配置”設(shè)置的別名是提供給:分發(fā)服務(wù)器作業(yè)推送到訂閱服務(wù)器使用的,錯誤信息類似Figure17所示;具體原因不清楚,求科普;

    (Figure18:別名)

    8. 在分發(fā)服務(wù)器和訂閱服務(wù)器上設(shè)置別名的時候,別名應(yīng)該跟服務(wù)器的實例名要一致,不然會報下面的錯誤:

    (Figure19:錯誤信息)

    六.參考文獻(References)

    SqlServer數(shù)據(jù)庫同步方案詳解(包括跨網(wǎng)段)

    總結(jié)

    以上是生活随笔為你收集整理的SQL Server 跨网段(跨机房)复制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。