Sql-Server
如何從訂閱伺服器/訂閱者數據庫中找到分發伺服器和發布伺服器的名稱
請記住,我可以根據此連結將計算列添加到訂閱表中:
我已經在做,並且還在復製表中添加索引(在訂閱伺服器中)
然而,
當我這樣做時,我必鬚麵對太多的鎖和塊來/從複製,如下圖所示:
這是我在創建索引時阻止的複制命令:
create procedure [sp_MSupd_dbotblBGiftVoucher] @c1 binary(24) = NULL, @c2 smallint = NULL, @c3 varchar(20) = NULL, @c4 int = NULL, @c5 varchar(20) = NULL, @c6 int = NULL, @c7 bit = NULL, @c8 char(1) = NULL, @pkc1 binary(24) = NULL, @bitmap binary(1) as begin if (substring(@bitmap,1,1) & 1 = 1) begin update [dbo].[tblBGiftVoucher] set [strVoucherNumber] = case substring(@bitmap,1,1) & 1 when 1 then @c1 else [strVoucherNumber] end, [sintMarketID] = case substring(@bitmap,1,1) & 2 when 2 then @c2 else [sintMarketID] end, [strIssuedBxOrderNo] = case substring(@bitmap,1,1) & 4 when 4 then @c3 else [strIssuedBxOrderNo] end, [lngIssuedUserID] = case substring(@bitmap,1,1) & 8 when 8 then @c4 else [lngIssuedUserID] end, [strReedemedBxOrderNo] = case substring(@bitmap,1,1) & 16 when 16 then @c5 else [strReedemedBxOrderNo] end, [lngRedeemedUserID] = case substring(@bitmap,1,1) & 32 when 32 then @c6 else [lngRedeemedUserID] end, [blnVoid] = case substring(@bitmap,1,1) & 64 when 64 then @c7 else [blnVoid] end, [strCheckDigit] = case substring(@bitmap,1,1) & 128 when 128 then @c8 else [strCheckDigit] end where [strVoucherNumber] = @pkc1 if @@rowcount = 0 if @@microsoftversion>0x07320000 exec sp_MSreplraiserror 20598 end else begin update [dbo].[tblBGiftVoucher] set [sintMarketID] = case substring(@bitmap,1,1) & 2 when 2 then @c2 else [sintMarketID] end, [strIssuedBxOrderNo] = case substring(@bitmap,1,1) & 4 when 4 then @c3 else [strIssuedBxOrderNo] end, [lngIssuedUserID] = case substring(@bitmap,1,1) & 8 when 8 then @c4 else [lngIssuedUserID] end, [strReedemedBxOrderNo] = case substring(@bitmap,1,1) & 16 when 16 then @c5 else [strReedemedBxOrderNo] end, [lngRedeemedUserID] = case substring(@bitmap,1,1) & 32 when 32 then @c6 else [lngRedeemedUserID] end, [blnVoid] = case substring(@bitmap,1,1) & 64 when 64 then @c7 else [blnVoid] end, [strCheckDigit] = case substring(@bitmap,1,1) & 128 when 128 then @c8 else [strCheckDigit] end where [strVoucherNumber] = @pkc1 if @@rowcount = 0 if @@microsoftversion>0x07320000 exec sp_MSreplraiserror 20598 end end
伺服器太多了,不知道哪個伺服器是發布者,發布者數據庫在哪裡,如果有發布者伺服器,是哪一個?
有沒有辦法從訂閱者那裡找到發布者和分發者(伺服器和數據庫)的名稱?
一些資訊在這裡: 如何重新啟動事務複製的分發代理?
但我仍在努力暫停至少一篇文章的複制,但我可以在整個出版物中暫停它。
我想要實現的是暫停我目前訂閱(我所在的數據庫)的複制……
有沒有辦法從訂閱者那裡找到發布者和分發者(伺服器和數據庫)的名稱?
對於來自訂閱者的推送訂閱,您可以查詢MSsubscription_agents以獲取發布者和發布者數據庫。
對於訂閱者的拉訂閱,您可以查詢MSsubscription_properties以獲取發布者和分發者。查看列publisher、publisher_db和distribution。分發數據庫名稱可能是分發。