Hemos recibido informes de consultas que se ejecutan lentamente o que se agota el tiempo de espera temprano en la mañana, y creo que el único trabajo que veo que se ejecuta podría afectar nuestro trabajo de copia de seguridad de la base de datos.
La base de datos en sí es de aproximadamente 300 GB, y el trabajo de copia de seguridad comienza a las 4:30 a.m. y no termina hasta poco después de las 7:00 a.m. La sintaxis actual de nuestro trabajo de respaldo es:
BACKUP DATABASE [DatabaseName]
TO DISK = N'E:\Database Backups\DatabaseName.Bak'
WITH INIT, NOUNLOAD, NAME = N'DatabaseName.Bak',
NOSKIP, STATS = 10, NOFORMAT
E:\
es una partición en el servidor que contiene las bases de datos y las copias de seguridad de la base de datos.
Probablemente también se debe tener en cuenta que este es un servidor virtual, no un servidor independiente dedicado. Comenzamos a recibir quejas sobre retrasos durante el proceso de copia de seguridad justo después de cambiar a un servidor virtual, por lo que creo que puede estar relacionado.
¿Hay alguna manera de ejecutar este trabajo de copia de seguridad para que no afecte el rendimiento de la consulta mientras se ejecuta?
Estamos usando SQL Server 2005
fuente
Este es un problema común, hay múltiples soluciones y realmente depende de su entorno. Vamos a verlos:
1- Compresión de respaldo sobre la marcha
En 2008, R1 Backup Compression estuvo disponible en Enterprise, en 2008R2 estuvo disponible en Standard. Esto es ENORME Esto le ahorrará mucho tiempo. Si puede actualizar, hágalo. Si no puede, consulte la utilidad HyperBak de RedGate o Quest LiteSpeed . Ambos tienen una prueba gratuita.
2- Copias de seguridad completas y diferenciales
Heredé una base de datos de producción de 2TB que causó muchos tiempos de espera para una importante empresa de Internet 24/7 que resolví. Permitimos copias de seguridad completas y diferenciales que nos ahorraron mucho tiempo. Tomaría una copia de seguridad completa el domingo a las 12:00 a.m. cuando la actividad era baja, y tomaría diferencias durante la semana. Esto ahorró mucho espacio. El trabajo de Diff es diferente al de los registros de transacciones, ya que funcionan en las páginas de la base de datos que se modificaron. Cualquier página cambiada es respaldada. Por lo tanto, realiza una restauración completa, luego la restauración de diferencias para agregar las páginas modificadas.
3- ¿Cuál es tu cuello de botella?
El análisis del cuello de botella es importante para diagnosticar. ¿Está haciendo una copia de seguridad en la misma matriz de discos que sus archivos de datos? ¿Se están vinculando sus archivos de datos? ¿Cuál es su DISK SEC / READ y DISK SEC / WRITE para los discos de datos durante las copias de seguridad? Modifiqué las copias de seguridad para crear 4 archivos. Cada archivo tiene su propio escritor de hilos y en nuestra SAN funcionó muy bien. Pruébalo, ahorré 45 minutos simplemente creando 4 archivos de respaldo. Solo asegúrese de que las métricas de su disco mencionadas anteriormente sean bajas. Obtenga una línea de base.
4- Replica a un servidor diferente y haz una copia de seguridad
Este es un poco avanzado. Debe asegurarse de que su base de datos replicada esté actualizada y necesita un monitoreo adecuado para eso. Si es así, puede hacer una copia de seguridad de la base de datos replicada.
fuente
Puede usar estos parámetros:
TAMAÑO DE BLOQUEO : elija el tamaño 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536. (en KB)
BUFFERCOUNT : especifica el número total de buffers de E / S que se utilizarán para la operación de copia de seguridad. Puede especificar cualquier número entero positivo; sin embargo, un gran número de buffers puede causar errores de "falta de memoria" debido a un espacio de direcciones virtuales inadecuado en el proceso Sqlservr.exe. - de MSDN
MAXTRNASFERSIZE : es de 65536 bytes (64 KB) a 4194304 bytes (4 MB)
fuente
Intentalo. resolvió el problema de tiempo de espera expirado mientras db de gran tamaño
fuente