黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

SQL Server 多實例下的復(fù)制

系統(tǒng) 2267 0
原文: SQL Server 多實例下的復(fù)制

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

  1. 本文所涉及的內(nèi)容(Contents)
  2. 背景(Contexts)
  3. 搭建步驟(Procedure)
  4. 注意事項(Attention)

二.背景(Contexts)

  在服務(wù)器A有一個數(shù)據(jù)庫Task,需要把部分表部分字段發(fā)布訂閱到服務(wù)器B的TaskSiteInfo數(shù)據(jù)庫上,但是A服務(wù)器有些特別,因為它除了有個默認(rèn)的實例之外,還有一個命名實例:TZR06\SQLSERVER2008R2,如果是默認(rèn)實例到不會遇到太多的問題,現(xiàn)在因為有命名實例在創(chuàng)建發(fā)布訂閱的過程中出現(xiàn)了一些異常,所以這里做為記錄;

三.搭建步驟(Procedure)

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

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

發(fā)布服務(wù)器:192.168.100.6,1433,服務(wù)器名稱:tzr06

發(fā)布服務(wù)器命名實例:SQLSERVER2008R2

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

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

訂閱服務(wù)器:192.168.100.8,1433,服務(wù)器名稱:tzr08

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

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

(二) 搭建過程

  上面提到的,發(fā)布服務(wù)器上有個默認(rèn)實例和一個命名實例,本來默認(rèn)實例的數(shù)據(jù)庫端口為1433,后來我把它禁用了,再把命名實例的端口設(shè)置為1433,所以這個需要借助別名來實現(xiàn)發(fā)布訂閱。

A. 發(fā)布服務(wù)器配置

首先在發(fā)布數(shù)據(jù)庫和訂閱數(shù)據(jù)庫上創(chuàng)建相同的帳號和密碼(ReplicationUser/ ReplicationPassword),并且設(shè)置Task數(shù)據(jù)庫的安全對象,設(shè)置這樣的帳號的目的就是為了和程序連接到數(shù)據(jù)庫的帳號區(qū)分開,可以做權(quán)限上的控制,方便問題的排查;

      
        --
      
      
        創(chuàng)建發(fā)布服務(wù)器帳號密碼
      
      
        USE
      
      
        [
      
      
        master
      
      
        ]
      
      
        GO
      
      
        CREATE
      
       LOGIN 
      
        [
      
      
        ReplicationUser
      
      
        ]
      
      
        WITH
      
       PASSWORD
      
        =
      
      N
      
        '
      
      
        ReplicationPassword
      
      
        '
      
      , DEFAULT_DATABASE
      
        =
      
      
        [
      
      
        master
      
      
        ]
      
      , CHECK_EXPIRATION
      
        =
      
      
        OFF
      
      , CHECK_POLICY
      
        =
      
      
        OFF
      
      
        GO
      
      
        EXEC
      
       master..sp_addsrvrolemember 
      
        @loginame
      
      
        =
      
       N
      
        '
      
      
        ReplicationUser
      
      
        '
      
      , 
      
        @rolename
      
      
        =
      
       N
      
        '
      
      
        sysadmin
      
      
        '
      
      
        GO
      
      
        USE
      
      
        [
      
      
        Task
      
      
        ]
      
      
        GO
      
      
        CREATE
      
      
        USER
      
      
        [
      
      
        ReplicationUser
      
      
        ]
      
      
        FOR
      
       LOGIN 
      
        [
      
      
        ReplicationUser
      
      
        ]
      
      
        GO
      
      
        USE
      
      
        [
      
      
        Task
      
      
        ]
      
      
        GO
      
      
        ALTER
      
      
        USER
      
      
        [
      
      
        ReplicationUser
      
      
        ]
      
      
        WITH
      
       DEFAULT_SCHEMA
      
        =
      
      
        [
      
      
        dbo
      
      
        ]
      
      
        GO
      
    

wps_clip_image-8981

(Figure1:帳號密碼)

在E盤目錄下創(chuàng)建文件夾:E:\ReplData,并設(shè)置這個文件夾為共享目錄,共享用戶為bfadmin;

wps_clip_image-8763

(Figure2:文件夾權(quán)限)

需要設(shè)置SQL Server Agent登陸帳號為上面文件夾訪問用戶bfadmin;

wps_clip_image-29477

(Figure3:SQL Server Agent登陸帳號)

wps_clip_image-2693

(Figure4:測試網(wǎng)絡(luò)共享)

wps_clip_image-1661

(Figure5:分發(fā)服務(wù)器)

如果你設(shè)置快照文件夾路徑為:E:\ReplData,即使你的發(fā)布服務(wù)器本身就是分發(fā)服務(wù)器,如果訂閱服務(wù)器是另外一臺機器,那么在請求(Pull)訂閱(如果是推送(Push)訂閱就沒有這個限制)模式下訂閱代理是無法訪問到這個快照文件的;除非你發(fā)布服務(wù)器、分發(fā)服務(wù)器和訂閱服務(wù)器都是同一臺機器;你應(yīng)該設(shè)置快照文件夾路徑為:\\tzr06\ ReplData;

wps_clip_image-27389

(Figure6:快照文件夾)

wps_clip_image-6197

(Figure7:選擇發(fā)布數(shù)據(jù)庫)

wps_clip_image-5271

(Figure8:事務(wù)發(fā)布)

wps_clip_image-5826

(Figure9:選擇對象)

wps_clip_image-24573

(Figure10:選擇對象)

wps_clip_image-13321

(Figure11:選擇對象)

wps_clip_image-3034

(Figure12:初始化訂閱)

wps_clip_image-7934

(Figure13:安全設(shè)置)

使用上面創(chuàng)建好的ReplicationUser帳號作為連接到發(fā)布服務(wù)器的帳號和密碼;

wps_clip_image-4731

(Figure14:設(shè)置帳號密碼)

wps_clip_image-31543

(Figure15:發(fā)布選項)

wps_clip_image-22937

(Figure16:發(fā)布名稱)

wps_clip_image-3613

(Figure17:查看復(fù)制情況)

B. 訂閱服務(wù)器配置

創(chuàng)建完發(fā)布服務(wù)器(分發(fā)服務(wù)器也一起創(chuàng)建了),接下來就可以創(chuàng)建訂閱服務(wù)器了,下面是訂閱服務(wù)器設(shè)置的具體步驟:

      
        --
      
      
        創(chuàng)建訂閱服務(wù)器帳號密碼
      
      
        USE
      
      
        [
      
      
        master
      
      
        ]
      
      
        GO
      
      
        CREATE
      
       LOGIN 
      
        [
      
      
        ReplicationUser
      
      
        ]
      
      
        WITH
      
       PASSWORD
      
        =
      
      N
      
        '
      
      
        ReplicationPassword
      
      
        '
      
      , DEFAULT_DATABASE
      
        =
      
      
        [
      
      
        master
      
      
        ]
      
      , CHECK_EXPIRATION
      
        =
      
      
        OFF
      
      , CHECK_POLICY
      
        =
      
      
        OFF
      
      
        GO
      
      
        EXEC
      
       master..sp_addsrvrolemember 
      
        @loginame
      
      
        =
      
       N
      
        '
      
      
        ReplicationUser
      
      
        '
      
      , 
      
        @rolename
      
      
        =
      
       N
      
        '
      
      
        sysadmin
      
      
        '
      
      
        GO
      
      
        USE
      
      
        [
      
      
        TaskSiteInfo
      
      
        ]
      
      
        GO
      
      
        CREATE
      
      
        USER
      
      
        [
      
      
        ReplicationUser
      
      
        ]
      
      
        FOR
      
       LOGIN 
      
        [
      
      
        ReplicationUser
      
      
        ]
      
      
        GO
      
      
        USE
      
      
        [
      
      
        TaskSiteInfo
      
      
        ]
      
      
        GO
      
      
        ALTER
      
      
        USER
      
      
        [
      
      
        ReplicationUser
      
      
        ]
      
      
        WITH
      
       DEFAULT_SCHEMA
      
        =
      
      
        [
      
      
        dbo
      
      
        ]
      
      
        GO
      
    

創(chuàng)建完了數(shù)據(jù)庫帳號,我們接著來創(chuàng)建訂閱,按照前面提到的在發(fā)布服務(wù)器上有命名實例,所以這里是按照TZR06\SQLSERVER2008R2來設(shè)置服務(wù)器名稱的,但是在連接過程中出現(xiàn)了下面的錯誤:

wps_clip_image-30021

(Figure18:查找發(fā)布服務(wù)器錯誤信息)

使用上面的配置在訂閱服務(wù)器上使用【連接服務(wù)器】的方式同樣無法登錄到發(fā)布服務(wù)器,防火墻的入站規(guī)則已經(jīng)加入允許1433端口了,而且在發(fā)布服務(wù)器使用netstat查看端口,也是有監(jiān)聽的,為什么會連接不上呢?后來在【連接服務(wù)器】加入1433是可以登錄的,如下圖所示:

wps_clip_image-5793

(Figure19:登錄發(fā)布服務(wù)器)

使用同樣的方式卻無法查找到發(fā)布服務(wù)器,出現(xiàn)了新的錯誤信息,如下圖所示:

wps_clip_image-16198

(Figure20:查找發(fā)布服務(wù)器錯誤信息)

既然需要加端口號,那我們就嘗試使用別名的方式,在64位的操作系統(tǒng)中,需要同時設(shè)置32位和64位的網(wǎng)絡(luò)配置,設(shè)置別名為:TZR06

wps_clip_image-11165

(Figure21:別名參數(shù)值)

wps_clip_image-20082

(Figure22:32位別名)

wps_clip_image-7762

(Figure23:64位別名)

wps_clip_image-30153

(Figure24:查找發(fā)布服務(wù)器錯誤信息)

難道是TZR06有沖突?修改別名為:TZR06Task

wps_clip_image-2451

(Figure25:修改32位和64位的別名)

wps_clip_image-29011

(Figure26:查找發(fā)布服務(wù)器錯誤信息)

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

      
        /*
      
      
        

返回有關(guān)服務(wù)器實例的屬性信息

Windows 服務(wù)器和與指定的SQL Server 實例關(guān)聯(lián)的實例信息


      
      
        */
      
      
        SELECT
      
      
        CONVERT
      
      (sysname, SERVERPROPERTY(
      
        '
      
      
        servername
      
      
        '
      
      
        ));


      
      
        /*
      
      
        

返回運行SQL Server 的本地服務(wù)器的名稱

如果連接默認(rèn)實例,則@@SERVERNAME僅返回servername

如果連接命名實例,則@@SERVERNAME函數(shù)返回的字符串以servername\instancename的格式標(biāo)識實例名


      
      
        */
      
      
        SELECT
      
      
        @@SERVERNAME
      
      
        AS
      
      
        '
      
      
        Server Name
      
      
        '
      
    

上面的結(jié)果為:

wps_clip_image-15272

(Figure27:查找發(fā)布服務(wù)器錯誤信息)

如果兩個值不同,那到可以通過下面的方式進(jìn)行修改:

      
        /*
      
      
        

SQL Server數(shù)據(jù)庫實例名與服務(wù)器名不一致的解決辦法


      
      
        */
      
      
        IF
      
       SERVERPROPERTY(
      
        '
      
      
        SERVERNAME
      
      
        '
      
      )
      
        <>
      
      
        @@SERVERNAME
      
      
        BEGIN
      
      
        DECLARE
      
      
        @server
      
      
         SYSNAME

    
      
      
        SET
      
      
        @server
      
      
        =
      
      
        @@SERVERNAME
      
      
        EXEC
      
       sp_dropserver 
      
        @server
      
      
        =
      
      
        @server
      
      
        SET
      
      
        @server
      
      
        =
      
      
        CAST
      
      (SERVERPROPERTY(
      
        '
      
      
        SERVERNAME
      
      
        '
      
      ) 
      
        AS
      
      
         SYSNAME)

    
      
      
        EXEC
      
       sp_addserver 
      
        @server
      
      
        =
      
      
        @server
      
      ,
      
        @local
      
      
        =
      
      
        '
      
      
        LOCAL
      
      
        '
      
      
        END
      
    

后來請教高文佳,突然想到:“在分發(fā)服務(wù)器和訂閱服務(wù)器上設(shè)置別名的時候,別名應(yīng)該跟服務(wù)器的實例名要一致”繼續(xù)做嘗試,修改別名為:TZR06\SQLSERVER2008R2

wps_clip_image-22296

(Figure28:修改32位和64位的別名)

wps_clip_image-22511

(Figure29:選擇發(fā)布)

wps_clip_image-21671

(Figure30:請求訂閱)

wps_clip_image-14008

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

wps_clip_image-17928

(Figure32:分發(fā)代理安全性)

wps_clip_image-32000 (Figure33:設(shè)置帳號密碼)

wps_clip_image-22798

(Figure34:同步計劃)

wps_clip_image-29422

(Figure35:初始化)

wps_clip_image-18531

(Figure36:創(chuàng)建訂閱)

wps_clip_image-5947

(Figure37:本地訂閱)

四.注意事項(Attention)

1. 如果一開始你在發(fā)布服務(wù)器上設(shè)置的快照文件為本地路徑,比如設(shè)置成E:\ReplData,那么有可能出現(xiàn)下面的錯誤:

wps_clip_image-21441

(Figure38:系統(tǒng)找不到指定的路徑)

這個時候你重新發(fā)布訂閱是沒有默認(rèn)路徑可以設(shè)置的,可以修改?我沒找到可以設(shè)置的地方,只能通過另外一種方式進(jìn)行修改,在發(fā)布屬性中修改快照路徑:

wps_clip_image-7924

(Figure39:默認(rèn)文件夾)

wps_clip_image-1850

(Figure40:設(shè)置文件夾)

在訂閱服務(wù)器上修改訂閱屬性的快照文件夾:

wps_clip_image-19512

(Figure41:備用文件夾)

2. 在訂閱服務(wù)器上同樣需要設(shè)置SQL Server Agent登陸帳號為上面文件夾訪問用戶bfadmin,不然會出現(xiàn)下面的錯誤:

wps_clip_image-12671

(Figure42:錯誤信息)

設(shè)置帳號之后需要重啟SQL Server Agent服務(wù)

wps_clip_image-7125

(Figure43:訂閱服務(wù)器SQL Server Agent設(shè)置)

3. 在發(fā)布服務(wù)器上無法對訂閱服務(wù)器進(jìn)行【重新初始化】,報下面錯誤信息,即使在發(fā)布服務(wù)器上設(shè)置了:

wps_clip_image-10620

(Figure44:錯誤信息)

上面這個錯誤暫時還沒有解決,不過關(guān)于命名實例的復(fù)制已經(jīng)成功了,雖然成功了,但是還是要建議大家盡量不要在生產(chǎn)環(huán)境中安裝多實例,避免出現(xiàn)不必要的問題;

SQL Server 多實例下的復(fù)制


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發(fā)表我的評論
最新評論 總共0條評論