Availability-Groups

在可用性組中的數據庫上啟動 Service Broker

  • November 7, 2020

我發現了一些處理這個問題的舊文章(5 歲或以上),但我對這個過程感到困惑,或者這些資訊是否過時,因此我提出了新問題。我在 sql 2016 SP2-CU11 企業版上。

我需要在可用性組中的數據庫上啟用服務代理。它的大小為 1.8TB,所以我真的不想把它完全從 AG 中取出,如果可以避免的話,我真的不想用新的備份重新播種它。一些較舊的文章說您必須完全刪除數據庫並將其重新添加到 AG 中,其他人引用只是執行一些程式碼來創建端點,以及我以前從未遇到過的路由。

下面的過程是在未啟用的 AG 中的數據庫上啟用服務代理的唯一方法嗎?

  1. 刪除數據庫的輔助副本,然後從 AG 中刪除主副本。
  2. 執行以下程式碼以啟動服務代理:

ALTER DATABASE XXXXXX SET ENABLE_BROKER;去 3. 進行完整備份,將其還原到輔助伺服器,無需恢復。 4. 將數據庫加入輔助節點上的 AG。

首先,創建和配置服務代理端點

select * from sys.tcp_endpoints

為服務代理創建一個新端點:

CREATE ENDPOINT [Avaruu5alus]  
   STATE = STARTED  
   AS TCP  (LISTENER_PORT = 4022, LISTENER_IP = ALL )  
   FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS)  
   
GRANT CONNECT ON ENDPOINT::[Avaruu5alus] TO [PUBLIC] 

SQL Server Broker 不支持多子網。您需要設置RegisterAllProvidersIP為 0 此後使可用性組離線並再次聯機。

USE [master]
GO
ALTER DATABASE [Avaruu5alusDB] SET  ENABLE_BROKER WITH NO_WAIT
GO

引用自:https://dba.stackexchange.com/questions/278528