Os espelhos do Microsoft SQL Server 2012 entram desconectados

8

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.

John Wesley Gordon
fonte
Qual é a memória máxima definida? Você também usa o Service broker por acaso?
Kin Shah
No espelho e primário, 2147483647 MB. Não está usando o Service Broker.
John Mayley Gordon
2
Ok .. isso é uma coisa para torná-lo não padrão - caso contrário, o SQL Server vai usar toda a memória que está passando fome no seu sistema operacional. Você pode configurá-lo para um valor razoável? Como bom ponto de partida, você pode usar esta referência. Além disso, você pode verificar novamente a compilação do SQL Server 11.0.5048parece incorreta?
Kin Shah
Erro de digitação, foi 11.0.5058
John Wesley Gordon
11
Então, o SP2 RTM, que tem um ano e meio de idade - você já pensou em mudar para o SP3 (e, opcionalmente, CU1)? Não sei se o problema será resolvido, mas existem muitas outras que podem valer a pena.
Aaron Bertrand

Respostas:

1

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:

ALTER DATABASE <Database Name> SET PARTNER RESUME

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.

QWE
fonte
0

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

TheGameiswar
fonte
Eu tenho 3 bancos de dados sendo espelhados. O servidor principal possui 16 GB de memória e o espelho possui 20 GB de memória. O maior uso de memória no espelho agora é de 3,8 MB para os espelhos. O banco de dados espelho tem suas próprias primárias. O maior primário é 9301 MB. O total de todos os bancos de dados no servidor espelho é 9593,75 MB. Isso não parece estar chegando perto da marca de 20 GB. O principal é ainda menor, usando apenas 6765 MB.
John Wesley Gordon