Estou tentando instalar o novo SP2 para SQL Server 2016, mas ele falha durante a instalação com um erro de mecanismo. Isto é o que eu posso ler no errorlog>
Erro: 468, Gravidade: 16, Estado: 9.
Não é possível resolver o conflito de agrupamento entre "Latin1_General_CI_AS" e "SQL_Latin1_General_CP1_CI_AS" na operação igual a.
O lote com falha de instruções t-sql:
CREATE PROCEDURE sp_sqlagent_get_perf_counters @all_counters BIT = 0 AS BEGIN ...Erro: 912, Gravidade: 21, Estado: 2.
A atualização de nível de script para o banco de dados 'master' falhou porque a etapa de atualização 'msdb110_upgrade.sql' encontrou o erro 200, estado 7, gravidade 25. Esta é uma condição de erro grave que pode interferir na operação regular e o banco de dados será colocado offline. Se o erro ocorreu durante a atualização do banco de dados 'mestre', ele impedirá que toda a instância do SQL Server seja iniciada. Examine as entradas anteriores do log de erros em busca de erros, execute as ações corretivas apropriadas e reinicie o banco de dados para que as etapas de atualização do script sejam executadas até a conclusão.
Erro: 3417, Gravidade: 21, Estado: 3.
Não é possível recuperar o banco de dados mestre. O SQL Server não pode ser executado. Restaure o mestre de um backup completo, repare-o ou reconstrua-o. Para obter mais informações sobre como reconstruir o banco de dados mestre, consulte os Manuais Online do SQL Server.
O desligamento do SQL Server foi iniciado
O banco de dados mestre estava executando "Latin1_General_CI_AS" e o MSDB (e outros dbs) estava executando "SQL_Latin1_General_CP1_CI_AS".
Tenho novos backups de todos os bancos de dados no servidor incluindo master e msdb.
Estou tentado a tentar restaurar o master master conforme mostrado em https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-the-master-database-transact-sql? view=sql-server-2017
Mas estou tentando garantir que realmente funcione, e não apenas piore a situação.
Como faço para que meu SQL Server volte a funcionar?
EDIT: Eu iniciei o serviço mssqlserver assim:
NET START MSSQLSERVER /T902
Isso faz com que o servidor seja iniciado, e eu examinei msdb110_upgrade.sql e encontrei alguns "COLLATE DATABASE_DEFAULT" ausentes que adicionei.
Mas não está levando minhas alterações.
Eu vi esse erro em outras versões do SQL Server em uma compilação herdada.
No meu caso, foi causado pelo proprietário de uma função ou esquema não era o padrão: Algo como db_datareader foi autorizado por uma conta de usuário (eles não têm mais sysadmin)
Como recuperar?
Infelizmente, não consigo me lembrar dos detalhes exatos agora.
É a única vez em 20 anos de SQL Server que eu...
Isso responde meu problema:
Alguém restaurou um MSDB de outro servidor, que tinha um agrupamento diferente.
Fiz uma reinstalação completa do SQL Server.
Agora eu sei que todo o SQL Server está sob controle de versão. :-)