Crie o banco de dados mais simples possível:
CREATE DATABASE DatabaseCheck
Adicione este banco de dados a um Grupo de Disponibilidade, onde o secundário não é legível
Na execução primária:
DBCC CHECKDB ('DatabaseCheck') WITH EXTENDED_LOGICAL_CHECKS
É bem-sucedido:
CHECKDB encontrou 0 erros de alocação e 0 erros de consistência no banco de dados 'DatabaseCheck'. Execução do DBCC concluída. Se o DBCC imprimir mensagens de erro, entre em contato com o administrador do sistema.
Execute o mesmo comando DBCC no secundário. Ele falha mesmo que nenhum erro tenha sido encontrado:
CHECKDB encontrou 0 erros de alocação e 0 erros de consistência no banco de dados 'DatabaseCheck'. Msg 0, Nível 11, Estado 0, Linha 1 Ocorreu um erro grave no comando atual. Os resultados, se existirem, deveriam ser descartados.
- Remover COM
EXTENDED_LOGICAL_CHECKS
faz com que o erro desapareça - Tornar a réplica secundária legível faz com que o erro desapareça
- Fazer um failover e verificar o novo primário faz com que o erro desapareça. Verificar o novo secundário mostra o erro novamente.
Alguma ideia do que se trata? A verificação da documentação DBCC CHECKDB não diz nada sobre EXTENDED_LOGICAL_CHECKS não ser compatível com réplica secundária não legível. Parece um bug no próprio comando para mim.
Uma coisa que notei na saída do comando é que ele verifica estatísticas como aqui:
Integridade verificada das estatísticas 'sys.sysrscols.clst'. Integridade verificada das estatísticas 'sys.sysrowsets.clust'. Integridade verificada das estatísticas 'sys.sysrowsets._WA_Sys_00000002_00000005'. Integridade verificada das estatísticas 'sys.sysrowsets._WA_Sys_00000003_00000005'. Integridade verificada das estatísticas 'sys.sysrowsets._WA_Sys_00000006_00000005'. Integridade verificada das estatísticas 'sys.sysrowsets._WA_Sys_00000004_00000005'. Integridade verificada das estatísticas 'sys.sysrowsets._WA_Sys_00000005_00000005'. Integridade verificada das estatísticas 'sys.sysrowsets._WA_Sys_00000008_00000005'.
Eles estão ausentes quando executados no secundário
Reproduzido em:
Microsoft SQL Server 2019 (RTM-CU23) (KB5030333) - 15.0.4335.1 (X64) 21 de setembro de 2023 17:28:44 Copyright (C) 2019 Microsoft Corporation Developer Edition (64 bits) no Windows Server 2019 Standard 10.0 (Build 17763 :)
Editar:
A única mensagem no log de erros é esta:
DBCC CHECKDB (DatabaseCheck) executado por Domain\user encontrou 0 erros e reparou 0 erros. Tempo decorrido: 0 horas 0 minutos 0 segundos. O instantâneo do banco de dados interno tem ponto de divisão LSN = 00000034:000001b1:0001 e primeiro LSN = 00000034:000001af:0002.
Não há dumps recentes em sys.dm_server_memory_dumps