1. 程式人生 > >服務器 ‘xxxx‘ 已被定義為分發服務器。若要將該服務器重新配置為分發服務器,必須首先卸載現有的分發服務

服務器 ‘xxxx‘ 已被定義為分發服務器。若要將該服務器重新配置為分發服務器,必須首先卸載現有的分發服務

statement exceptio service title 技術分享 courier minor stat pre

使用AWS DMS(Database Migration Service)將SQL Server數據庫同步到AWS的Data Lake上,需要在本地源數據庫上配置復制,在配置分發向導最後一步時,遇到下面錯誤:

TITLE: Microsoft.SqlServer.ConnectionInfo
------------------------------
 
SQL Server could not configure ‘xxxx‘ as a Distributor.
 
------------------------------
ADDITIONAL INFORMATION:
 
An exception occurred while
executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
 
------------------------------
 
服務器 ‘xxxx‘ 已被定義為分發服務器。若要將該服務器重新配置為分發服務器,必須首先卸載現有的分發服務器。使用存儲過程 sp_dropdistributor,或使用禁用發布和分發向導。已將數據庫上下文更改為 ‘master‘。 (Microsoft SQL Server, Error: 14099)

服務器 ‘xxxx‘ 已被定義為分發服務器。若要將該服務器重新配置為分發服務器,必須首先卸載現有的分發服務器。使用存儲過程 sp_dropdistributor,或使用禁用發布和分發向導。已將數據庫上下文更改為 ‘master‘。 (Microsoft SQL Server, Error: 14099)

技術分享圖片

出現這個錯誤是因為以前配置過Replication,但是沒有清理幹凈。如下所示,數據庫存在msdb.dbo.MSdistributor等表。可以執行sp_dropdistributor 卸載分發服務器。

技術分享圖片

USE master;
GO
EXEC sp_dropdistributor;
GO

卸載分發服務器。這些對象都不存在了,然後就可以正常配置分發向導,不會出現這個錯誤了。

SELECT * FROM msdb.dbo.MSdistributor;
 
Msg 208, Level 16, State 1, Line 1
 
對象名‘msdb.dbo.MSdistributor‘ 無效。

服務器 ‘xxxx‘ 已被定義為分發服務器。若要將該服務器重新配置為分發服務器,必須首先卸載現有的分發服務