Los espejos de Microsoft SQL Server 2012 entran desconectados


8

Tengo algunos espejos de Microsoft SQL Server 2012, sin un testigo en modo asíncrono, que se desconectan esporádicamente. Estoy ejecutando SQL Server 2012 11.0.5058. Mirando los registros en el lado del espejo veo

Error al asignar BUF: FAIL_BUFFER_ALLOCATION 1

Hay un montón de mensajes de dependientes de memoria

Error: 802, gravedad: 17, estado: 0.

No hay suficiente memoria disponible en el grupo de búferes.

Error: 1454, gravedad: 16, estado: 1.

Se duplicará la duplicación de la base de datos. La instancia del servidor 'instancia' encontró el error 802, estado 0, gravedad 17 cuando actuaba como un socio reflejado para la base de datos 'base de datos'. Los socios de creación de reflejo de la base de datos pueden intentar recuperarse automáticamente del error y reanudar la sesión de creación de reflejo. Para obtener más información, vea el registro de errores para ver mensajes de error adicionales.

Se agradecería cualquier ayuda sobre qué verificar para averiguar por qué los espejos quedan suspendidos y luego desconectados después de esta cadena de eventos. Puedo restablecer los espejos después de esto y funcionan bien durante un par de días y luego vuelve a suceder.


¿En qué está configurada la memoria máxima? ¿También utiliza Service Broker por casualidad?
Kin Shah

En espejo y primario, 2147483647 MB. No utiliza Service Broker.
John Wesley Gordon

2
De acuerdo ... eso es una cosa para que no sea predeterminado; de lo contrario, el servidor SQL va a utilizar toda la memoria que priva a su sistema operativo. ¿Se puede establecer en un valor razonable? Como buen punto de partida, puede usar esta referencia. Además, ¿puede volver a comprobar que su compilación de SQL Server 11.0.5048suena incorrecta?
Kin Shah

Error tipográfico, era 11.0.5058
John Wesley Gordon

1
Entonces, SP2 RTM, que tiene un año y medio de antigüedad, ¿ha considerado pasar a SP3 (y opcionalmente CU1)? No sé si solucionará su problema, pero hay muchas otras soluciones que podrían valer la pena.
Aaron Bertrand

Respuestas:


1

Experimenté un problema muy similar en mi empresa anterior. La duplicación de la base de datos se suspendía periódicamente con el mismo error que está recibiendo. La duplicación nunca se volvió a conectar por sí sola, pero generalmente pude reanudarla usando:

ALTER DATABASE <Database Name> SET PARTNER RESUME

Después de algunas semanas, descubrimos que, aunque había suficiente memoria en el servidor y suficiente memoria asignada a la instancia, nuestra carga de trabajo se distribuía de manera muy desigual y, a veces, se usaba el 100% de la memoria. Como la mayoría de las veces teníamos suficiente memoria, no estábamos autorizados a comprar más. Terminé aumentando el archivo de extensión de la agrupación de almacenamiento intermedio y colocándolo en uno de los SSD que tenía suficiente espacio vacío para acomodarlo. El problema con la duplicación nunca volvió. No puedo garantizar que lo mismo funcione para usted, principalmente estoy compartiendo mi experiencia.


0

Pocas preguntas para hacer y comenzar a solucionar problemas
1. Cuántas bases de datos está duplicando
2. Cuánta RAM está disponible para el servidor SQL
3. ¿Cuál es el tamaño de la base de datos duplicada?

A continuación se presentan las estimaciones aproximadas de los requisitos de duplicación cuando la duplicación está habilitada

en Prinicipal:
4 MB por base de datos para buffers de envío DBM más 4 MB para buffers de escritura de registro

En el espejo:
1 MB para búferes de escritura de registro y 1 MB para búfer de REDO de registro

También puede verificar el consumo de memoria por DB en la instancia espejo para ver qué base de datos es el cuello de botella y comenzar a solucionar problemas

Utilización de memoria por base de datos - SQL Server


Tengo 3 bases de datos en espejo. El servidor primario tiene 16 GB de memoria y el espejo tiene 20 GB de memoria. El mayor uso de memoria en el espejo en este momento es de 3,8 MB para los espejos. La base de datos espejo tiene sus propias primarias. La primaria más grande es 9301 MB. El total de todas las bases de datos en el servidor espejo es de 9593.75 MB. Esto no parece estar acercándose a la marca de 20 GB. El primario es aún menos, usando solo 6765 MB.
John Wesley Gordon
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.