Availability-Groups
在可用性組中的數據庫上啟動 Service Broker
我發現了一些處理這個問題的舊文章(5 歲或以上),但我對這個過程感到困惑,或者這些資訊是否過時,因此我提出了新問題。我在 sql 2016 SP2-CU11 企業版上。
我需要在可用性組中的數據庫上啟用服務代理。它的大小為 1.8TB,所以我真的不想把它完全從 AG 中取出,如果可以避免的話,我真的不想用新的備份重新播種它。一些較舊的文章說您必須完全刪除數據庫並將其重新添加到 AG 中,其他人引用只是執行一些程式碼來創建端點,以及我以前從未遇到過的路由。
下面的過程是在未啟用的 AG 中的數據庫上啟用服務代理的唯一方法嗎?
- 刪除數據庫的輔助副本,然後從 AG 中刪除主副本。
- 執行以下程式碼以啟動服務代理:
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