Tenho um cluster do SQL Server 2022 Enterprise Edition com vários AGs.
Dois dos AGs consideram diferentes instâncias primárias. Ambos consideram suas secundárias legíveis e estão corretos em pensar assim.
Além de estar nessa configuração secundária legível, nada torna nenhum dos bancos de dados em nenhuma das instâncias somente leitura. Eles não são Grupos de Disponibilidade Básica.
Aqui está o choque: quando executo DBCC CHECKCATALOG
a segmentação de um banco de dados secundário legível enquanto estou conectado a uma instância que não é o primário desse banco de dados, a consulta falha assim
Msg 3906, Nível 16, Estado 8, Linha 1
Falha ao atualizar o banco de dados "DB NAME" porque o banco de dados é somente leitura.
mas DBCC CHECKDB
funciona muito bem!
Procurei muito, mas não encontrei nada útil sobre isso.
- Este problema no GitHub da Solução de Manutenção de Ola Hallengren é idêntico, mas não tem solução. Ola, em quem confio ser um especialista nisso, parece pensar que é um bug dele e não da Microsoft.
- Este commit do git sugere que seu autor, dan-andreistefan, já viu isso antes. Não encontrei nenhum problema ou PR correspondente. Dan surgiu do vazio e resolveu o problema .
- Além das limitações em BAGs, não consigo encontrar nada na documentação oficial do SQL Server sobre fazer verificações de integridade em AGs. Está apenas no guia de licenciamento.
Como posso depurar isso? Por que DBCC CHECKDB
, que é um superconjunto de DBCC CHECKCATALOG
, funcionaria onde DBCC CHECKCATALOG
falha?