Depois de alterar o Collation do SQL Server para Latin1_General_CI_AI de QL_Latin1_General_CP1_CI_AS estou tentando adicionar o servidor de volta ao MSX como destino no CMS, mas o registro está falhando. Uma coisa que esqueci de fazer antes da alteração do SQL Collation foi desertar o servidor. Agora não tenho certeza se é por não desertar o servidor ou alterar o agrupamento que causou isso? Independentemente disso, agora preciso inscrever o servidor no MSX e enviar tarefas de monitoramento do SQL Agent. Este mesmo servidor foi alistado antes da mudança.
Consigo me conectar ao servidor de destino do CMS e vice-versa usando o SSMS
Versão do SQL Server de destino: 2017 Versão do CMS SQL Server: 2017
Erro ao tentar se inscrever no CMS:
===================================
MSX enlist failed for JobServer 'myserver.domain.sa'. (Microsoft.SqlServer.Smo)
------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=14.0.17285.0+((SSMS_Rel_17_4).180821-0238)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=MSX+enlist+JobServer&LinkId=20476
------------------------------
Program Location:
at Microsoft.SqlServer.Management.Smo.Agent.JobServer.MsxEnlist(String masterServer, String location)
at Microsoft.SqlServer.Management.SqlManagerUI.EnlistTsxActions.DoAction(ProgressItemCollection actions, Int32 index)
at Microsoft.SqlServer.Management.SqlStudio.Controls.ProgressItemCollection.DoWorkOnThread()
===================================
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Program Location:
at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)
at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType, Boolean retry)
at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries, Boolean retry)
at Microsoft.SqlServer.Management.Smo.Agent.JobServer.MsxEnlist(String masterServer, String location)
===================================
The enlist operation failed (reason: The time-out was exceeded while the server waited for a response from SQL Server Agent. Make sure that the SQL Server Agent service is running) (.Net SqlClient Data Provider)
------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=14.00.3281&EvtSrc=MSSQLServer&EvtID=22026&LinkId=20476
------------------------------
Server Name: myserver.domain.sa
Error Number: 22026
Severity: 16
State: 1
------------------------------
Program Location:
at Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)
Erro ao tentar adicionar isso como destino do servidor de destino:
===================================
MSX enlist failed for JobServer 'myserver.domain.sa'. (Microsoft.SqlServer.Smo)
------------------------------
For help, click: https://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=15.0.18206.0+((SSMS_Rel).191029-2112)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=MSX+enlist+JobServer&LinkId=20476
------------------------------
Program Location:
at Microsoft.SqlServer.Management.Smo.Agent.JobServer.MsxEnlist(String masterServer, String location)
at Microsoft.SqlServer.Management.SqlManagerUI.EnlistTsxActions.DoAction(ProgressItemCollection actions, Int32 index)
at Microsoft.SqlServer.Management.SqlStudio.Controls.ProgressItemCollection.DoWorkOnThread()
===================================
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Program Location:
at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)
at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType, Boolean retry)
at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries, Boolean retry)
at Microsoft.SqlServer.Management.Smo.Agent.JobServer.MsxEnlist(String masterServer, String location)
===================================
The enlist operation failed (reason: The time-out was exceeded while the server waited for a response from SQL Server Agent. Make sure that the SQL Server Agent service is running) (.Net SqlClient Data Provider)
------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=14.00.3281&EvtSrc=MSSQLServer&EvtID=22026&LinkId=20476
Não consigo encontrar muita informação online sobre este assunto. Qualquer ajuda seria apreciada.
A resolução no meu caso foi:
Abra a porta de firewall apropriada para o SQL Server Agent. Resolveu o problema de Alistamento de Alvo para Mestre.
Depois de abrir a porta, estava recebendo o seguinte erro:
A operação de inscrição falhou (motivo: SQLServerAgent Error: A permissão EXECUTE foi negada no objeto 'sp_enlist_tsx', banco de dados 'msdb', esquema 'dbo'. [SQLSTATE 42000] (erro 229).) (.Net SqlClient Data Provider)
Esse problema foi resolvido descartando o usuário SQLAgent órfão no MSDB no CMS e, em seguida, remapeando o usuário de volta ao MSDB e atribuindo-lhe a função TargetServerRole.