Eu tenho alguns espelhos do Microsoft SQL Server 2012, sem uma testemunha no modo assíncrono, que esporadicamente são desconectados. Estou executando o SQL Server 2012 11.0.5058. Olhando para os logs no lado do espelho eu vejo
Falha ao alocar BUFs: FAIL_BUFFER_ALLOCATION 1
Há um monte de mensagens do assistente de memória
Erro: 802, Gravidade: 17, estado: 0.
Não há memória suficiente disponível no buffer pool.
Erro: 1454, Gravidade: 16, Estado: 1.
O espelhamento de banco de dados será suspenso. A instância do servidor 'instance' encontrou o erro 802, estado 0, gravidade 17 quando estava atuando como parceiro de espelhamento do banco de dados 'database'. Os parceiros de espelhamento de banco de dados podem tentar se recuperar automaticamente do erro e retomar a sessão de espelhamento. Para obter mais informações, consulte o log de erros para obter mensagens de erro adicionais.
Qualquer ajuda sobre o que verificar para descobrir por que os espelhos ficam suspensos e desconectados após essa cadeia de eventos seria apreciada. Eu posso restabelecer os espelhos depois disso e eles funcionam muito bem por alguns dias e depois acontece novamente.
fonte
11.0.5048
parece incorreta?Respostas:
Tive um problema muito semelhante na minha empresa anterior. A miragem do banco de dados era periodicamente suspensa com o mesmo erro que você está recebendo. O espelhamento nunca se reconectou por conta própria, mas geralmente eu era capaz de retomar usando:
Depois de algumas semanas, descobrimos que, embora houvesse memória suficiente no servidor e memória suficiente fosse alocada para a instância, nossa carga de trabalho era distribuída de maneira muito desigual e, às vezes, 100% da memória era usada. Como na maioria das vezes tínhamos memória suficiente, não estávamos autorizados a comprar mais. Acabei aumentando o arquivo de extensão do buffer pool e colocando-o em um dos SSDs que possuíam espaço vazio suficiente para acomodá-lo. O problema com o espelhamento nunca mais voltou. Não posso garantir que o mesmo funcione para você, estou compartilhando principalmente minha experiência.
fonte
Poucas perguntas a serem feitas e iniciar a solução de problemas
1.Quantos bancos de dados você está espelhando
2.Quanta RAM está disponível para o servidor sql
3.Qual é o tamanho do banco de dados espelhado
Abaixo estão as estimativas aproximadas dos requisitos de espelhamento quando o espelhamento está ativado
no Prinicipal:
4 MB por banco de dados para buffers de envio do DBM mais 4 MB para buffers de gravação de log
No espelho:
1 MB para buffers de gravação de log e 1 MB para buffer REDO de log
Você também pode verificar o consumo de memória por banco de dados na instância de espelho para ver qual banco de dados é o gargalo e iniciar a solução de problemas.
Utilização de memória por banco de dados - SQL Server
fonte