Optimizar el rendimiento de copias de seguridad y restauración en SQL Server

Microsoft SQL Server ofrece las dos formas siguientes para agilizar las operaciones de copias de seguridad y restauración:

  • La utilización de varios dispositivos de copia seguridad permite escribir copias de seguridad en paralelo en todos los dispositivos. La velocidad del dispositivo de copia de seguridad es un cuello de botella potencial en el rendimiento de las copias de seguridad. La utilización de varios dispositivos puede aumentar el rendimiento en proporción al número de dispositivos utilizados. De forma similar, la copia de seguridad se puede restaurar desde varios dispositivos en paralelo. Para obtener más información, vea "Usar varios medios o dispositivos", más adelante en este tema.

  • La utilización de una combinación de copia de seguridad completa, copia de seguridad diferencial y, para los modelos de recuperación completa y de recuperación para cargas masivas de registros, copia de seguridad del registro de transacciones para minimizar el tiempo de recuperación. Las operaciones de creación de copias de seguridad de bases de datos diferenciales son más rápidas que las copias de seguridad de bases de datos completas y reducen la parte del registro de transacciones necesaria para recuperar la base de datos. Para obtener más información, vea Crear copias de seguridad completas y diferenciales de una base de datos de SQL Server.

Usar varios medios o dispositivos

La copia de los datos y el registro de transacciones de los dispositivos de copia de seguridad en los archivos de la base de datos y del registro de transacciones se realiza mediante subprocesos de lectura y escritura; se asigna un subproceso a cada dispositivo de copia de seguridad. El rendimiento está limitado por la capacidad de los dispositivos de copia de seguridad para entregar los datos o la capacidad de los archivos de la base de datos y del registro de transacciones para aceptar los datos. Por tanto, el rendimiento aumenta con el número de dispositivos de copia de seguridad hasta alcanzar el rendimiento máximo de los archivos de la base de datos o del registro de transacciones para aceptar los datos.

El uso de varios dispositivos de copia de seguridad para las operaciones de copias de seguridad y restauración habilita SQL Server para usar la E/S en paralelo de tal forma que se aumente la velocidad de dichas operaciones porque se puede leer o escribir al mismo tiempo en los dispositivos de copia de seguridad. Para las empresas con bases de datos grandes, el uso de muchos dispositivos de copia de seguridad puede reducir en gran medida el tiempo que tardan las operaciones de copias de seguridad y restauración. SQL Server admite hasta 64 dispositivos de copia de seguridad en una única operación de copia de seguridad.

Se producen varios puntos de sincronización interna mientras se escribe la copia de seguridad en varios dispositivos de copia de seguridad. El punto más importante tiene lugar cuando se ha realizado la copia de seguridad de todos los datos de la base de datos y se va a realizar la copia del registro de transacciones.

Nota importanteImportante

Cuando se utilizan varios dispositivos de copia de seguridad para realizar operaciones de copia de seguridad, solo se pueden utilizar los medios implicados para realizar operaciones de copia de seguridad de SQL Server. Para obtener más información, vea Usar medios de copia de seguridad.

Crear y restaurar las copias de seguridad utilizando varios dispositivos de copia de seguridad es lo mismo que crear y restaurar copias de seguridad utilizando un solo dispositivo. La única diferencia es que debe especificar todos los dispositivos de copia de seguridad implicados en la operación, no solo uno. Por ejemplo, si se va a crear una copia de seguridad de base de datos con tres dispositivos de copia de seguridad en cinta como \\.\TAPE0, \\.\TAPE1 y \\.\TAPE2, es necesario especificar cada uno como parte de la operación de copia de seguridad aunque, al restaurar posteriormente la copia de seguridad, se pueden utilizar menos dispositivos de copia de seguridad en cinta.

Al crear una copia de seguridad en varios dispositivos de copia de seguridad utilizando medios extraíbles, los dispositivos pueden funcionar a velocidades diferentes y los volúmenes de medios pueden tener distintas cantidades de espacio disponible. Durante la operación de copia de seguridad, si el volumen de medios de un dispositivo de copia de seguridad se queda sin espacio, la operación deja de escribir en ese dispositivo y solicita un nuevo volumen de medios. Ese dispositivo se bloquea hasta que reemplace el volumen de medios lleno por un volumen vacío. Mientras tanto, la operación de copia de seguridad sigue escribiendo datos en los dispositivos cuyos medios aún tengan espacio disponible. Al reemplazar el volumen de medios lleno, su dispositivo pasa a estar disponible y la copia de seguridad reanuda la escritura de datos en ese dispositivo. Sin embargo, tenga en cuenta que si se produce un punto de sincronización interna mientras un dispositivo está bloqueado, la operación de copia de seguridad hace una pausa hasta que el dispositivo vuelva a estar disponible.

Ejemplo

Por ejemplo, imagine un escenario que utiliza tres dispositivos de copia de seguridad en cinta con la misma velocidad para almacenar una copia de seguridad de base de datos completa. Las dos primeras cintas tienen 10 GB de espacio disponible, pero la tercera solo tiene 5 GB disponibles. Si se realiza la copia de seguridad de una base de datos de 20 GB en los tres dispositivos de copia de seguridad en cinta simultáneamente, la tercera cinta se llenará antes de que la copia de seguridad se complete. Después de que se hayan escrito 5 GB en la tercera cinta, la opción de copia de seguridad deja de escribir en el tercer dispositivo. La operación bloquea ese dispositivo y solicita una nueva cinta. Mientras tanto, la operación de copia de seguridad sigue escribiendo datos en los otros dos dispositivos. Sin embargo, antes de que se reemplace la tercera cinta, se produce un punto de sincronización interna. En ese momento, toda la operación de copia de seguridad hace una pausa hasta que se monta una nueva cinta en el tercer dispositivo.

Optimizar el rendimiento de las copias de seguridad completas y diferenciales

La creación de una copia de seguridad completa o diferencial consta de los dos pasos siguientes:

  1. Copiar los datos de los archivos de la base de datos en los dispositivos de copia de seguridad.

  2. Copiar la parte del registro de transacciones necesaria para poner al día la base de datos hasta un estado coherente con los mismos dispositivos de copia de seguridad.

Crear una copia de seguridad diferencial es igual que crear una copia de seguridad completa, excepto que solo se copian los datos cambiados. La creación de una copia de seguridad de un archivo de base de datos consiste simplemente en copiar los datos del archivo en los dispositivos de copia de seguridad.

Los archivos de la base de datos utilizados para almacenar la base de datos están ordenados por dispositivos de disco y a cada dispositivo se le asigna un subproceso de lectura. El subproceso de lectura lee los datos de los archivos de la base de datos. Se asigna un subproceso de escritura a cada dispositivo de base de datos. El subproceso de escritura escribe datos en el dispositivo de copia de seguridad. Si se reparten los archivos de base de datos entre más unidades lógicas, puede aumentar el número de operaciones de lectura en paralelo. De forma similar, puede aumentar el número de operaciones de escritura en paralelo si se utilizan más dispositivos de copia de seguridad.

Normalmente, se producirá un cuello de botella en los archivos de la base de datos o en los dispositivos de copia de seguridad. Si el rendimiento total de la lectura es mayor que el rendimiento total del dispositivo de copia de seguridad, el cuello de botella se encuentra en el lado del dispositivo de copia de seguridad. Agregar más dispositivos de copia de seguridad (y controladores SCSI, si es necesario) puede mejorar el rendimiento. Sin embargo, si el rendimiento total de la copia de seguridad es superior al rendimiento total de lectura, se puede aumentar este último si, por ejemplo, se agregan más archivos de bases de datos o dispositivos (o si se agregan más discos en un dispositivo RAID).

Optimizar el rendimiento de las copias de seguridad del registro de transacciones

Crear una copia de seguridad del registro de transacciones significa simplemente copiar la parte del registro de la que aún no se ha realizado una copia de seguridad en los dispositivos de copia de seguridad. Aunque puede haber varios archivos del registro de transacciones, el registro de transacciones es, lógicamente, una secuencia que un subproceso lee secuencialmente.

Se asigna un subproceso de escritura a cada dispositivo de base de datos. Se consigue mayor rendimiento al agregar más dispositivos de copia de seguridad.

Se puede encontrar un cuello de botella en el dispositivo de disco que contiene los archivos del registro de transacciones o en el dispositivo de copia de seguridad, según su velocidad relativa y el número de dispositivos de copia de seguridad utilizados. La adición de más dispositivos de copia de seguridad aumentará linealmente hasta alcanzar la capacidad del dispositivo de disco que contiene los archivos del registro de transacciones. Después de esto, no es posible obtener más rendimiento sin aumentar la velocidad de los dispositivos de disco que contienen el registro de transacciones, por ejemplo, mediante la creación de bandas en disco.

Optimizar el rendimiento de la restauración

La restauración de una copia de seguridad de la base de datos o diferencial consta de cuatro pasos:

  1. Crear los archivos de la base de datos y del registro de transacciones si aún no existen.

  2. Copiar los datos de los dispositivos de copia de seguridad en los archivos de la base de datos.

  3. Copiar el registro de transacciones de los archivos del registro de transacciones.

  4. Poner al día el registro de transacciones y, a continuación, reiniciar la restauración si es necesario.

La aplicación de una copia de seguridad del registro de transacciones consta de dos pasos:

  1. Copiar los datos de los dispositivos de copia de seguridad en el archivo del registro de transacciones.

  2. Poner al día el registro de transacciones.

La restauración de un archivo de base de datos consta de dos pasos:

  1. Crear los archivos de base de datos que no existan.

  2. Copiar los datos de los dispositivos de copia de seguridad en los archivos de la base de datos.

Inicialización de archivos

Si los archivos de la base de datos y del registro de transacciones no existen todavía, se deben crear antes de poder restaurar datos en los mismos. Se crean los archivos de la base de datos y del registro de transacciones y se inicializa el contenido de los archivos a cero. Los subprocesos de trabajo independientes crean e inicializan los archivos en paralelo. Los archivos de la base de datos y del registro de transacciones se ordenan por dispositivos de disco y a cada dispositivo de disco se le asigna un subproceso de trabajo independiente. Debido a que la creación y la inicialización de los archivos requieren un rendimiento alto, repartir los archivos uniformemente entre las unidades lógicas disponibles proporciona el mejor rendimiento.

Inicialización instantánea de archivos

En SQL Server 2005 y versiones posteriores, los archivos de datos se pueden inicializar de forma instantánea, lo que permite la ejecución rápida de las operaciones de restauración de bases de datos y grupos de archivos. Esta inicialización instantánea de archivos utiliza espacio en disco sin llenarlo de ceros. En su lugar, el contenido del disco se sobrescribe según se van escribiendo los datos nuevos en los archivos. La inicialización del archivo de registro sigue requiriendo que se llene con ceros, pero esto ocurrirá en paralelo con la transferencia de datos desde la copia de seguridad. El paso de puesta al día de la restauración no se iniciará hasta que todos los datos se hayan transferido y todo el registro se haya inicializado.

Nota

La inicialización instantánea de los archivos solo está disponible en los sistemas Microsoft Windows XP, Windows Server 2003 o posteriores.

Para utilizar esta característica, debe ejecutar la cuenta del servicio MSSQLSERVER en una cuenta de Windows y asignar el privilegio especial de Windows SE_MANAGE_VOLUME_NAME a esa cuenta de Windows. Este privilegio se asigna de forma predeterminada al grupo de administradores de Windows. Si tiene derechos de administrador del sistema, podrá asignar este privilegio agregando la cuenta de Windows a la directiva de seguridad Realizar las tareas de mantenimiento del volumen. Para obtener más información acerca de cómo asignar derechos de usuario, vea la documentación de Windows.

Optimizar el rendimiento de un dispositivo de copia de seguridad en cinta

Hay varias variables que afectan al rendimiento de un dispositivo de copia de seguridad en cinta y que permiten a SQL Server aumentar en escala lineal el rendimiento de las operaciones de copias de seguridad y restauración a medida que se agregan más dispositivos de copia de seguridad:

  • El tamaño de los bloques de datos del software.

  • El número de dispositivos de cinta que comparten un bus de la interfaz estándar de equipos pequeños (SCSI).

  • El tipo del dispositivo de cinta.

SQL Server calcula el tamaño de los bloques de datos del software para obtener el mejor rendimiento; este tamaño no se debe alterar. El BLOCKSIZE máximo es de 64 KB.

Muchas unidades de cinta de alta velocidad funcionan mejor si tienen un bus SCSI dedicado para cada unidad de cinta utilizada. Las unidades cuya velocidad de transferencia nativa supera el 50 por ciento de la velocidad del bus SCSI deben estar en un bus SCSI dedicado para evitar la disminución del rendimiento. Para obtener información acerca de la configuración que afecta al rendimiento de la unidad de cinta, vea la documentación del fabricante de la unidad de cinta.

Nota importanteImportante

No coloque nunca una unidad de cinta en el mismo bus SCSI que las unidades de disco o una unidad de CD-ROM. Las acciones de control de errores de estos dispositivos son mutuamente incompatibles.

Cuando se realizan varias operaciones de copia de seguridad en una cinta cargada, puede mejorar el rendimiento si especifica NOREWIND. Esta opción hace que SQL Server conserve la cinta o las cintas abiertas después de la operación de copia de seguridad. NOREWIND implica NOUNLOAD.

Optimizar el rendimiento de un dispositivo de copia de seguridad en disco

La velocidad de E/S sin procesar del dispositivo de copia de seguridad en disco afecta al rendimiento del dispositivo y permite a SQL Server aumentar en escala lineal el rendimiento de las operaciones de copias de seguridad y restauración a medida que se agregan varios dispositivos de disco.

La utilización de RAID en un dispositivo de copia de seguridad en disco debe considerarse detenidamente. Por ejemplo, RAID 5 tiene un rendimiento de escritura bajo, aproximadamente la misma velocidad que un solo disco (debido a que se debe mantener la información de paridad). Adicionalmente, la velocidad sin procesar con que se agregan datos a un archivo es significativamente más lenta que la velocidad sin procesar de escritura del dispositivo.

Si el dispositivo de copia de seguridad contiene muchas franjas, de forma que la velocidad máxima de escritura en el dispositivo de copia de seguridad supera con mucho la velocidad con que puede agregar datos a un archivo, puede ser apropiado colocar varios dispositivos lógicos de copia de seguridad en el mismo conjunto de franjas. En otras palabras, se puede aumentar el rendimiento de la copia de seguridad colocando varias familias de medios de copia de seguridad en la misma unidad lógica. Sin embargo, se requiere un método empírico para determinar si se producen ganancias o pérdidas en cada entorno. Normalmente, es mejor colocar cada dispositivo de copia de seguridad en un dispositivo de disco independiente.

Generalmente, en un bus SCSI solo algunos discos pueden funcionar a la máxima velocidad, aunque los buses Ultra-wide y Ultra-2 pueden controlar más. Sin embargo, probablemente sea necesaria una configuración cuidadosa del hardware para obtener el rendimiento óptimo.

Para obtener más información acerca de las opciones de configuración que pueden afectar al rendimiento del disco, vea la documentación del fabricante del disco.

Compresión de datos

Las unidades de cinta modernas integran la compresión de datos en hardware, que puede aumentar significativamente la velocidad efectiva de transferencia de datos a la unidad. La capacidad de compresión de los datos reales de la base de datos depende de los datos en sí y de las unidades de cinta utilizadas. Los coeficientes de compresión de datos más habituales oscilan entre 1,2:1 y 2:1 para una gran variedad de bases de datos. Este coeficiente de compresión es típico de los datos de gran variedad de aplicaciones comerciales, aunque algunas bases de datos pueden tener mayor o menor coeficiente de compresión. Por ejemplo, una base de datos compuesta en gran parte de imágenes comprimidas no se comprimirá más en las unidades de cinta. Para obtener más información acerca de la compresión de datos, vea la documentación del fabricante de la unidad de cinta.

De forma predeterminada, SQL Server admite la compresión de hardware, aunque se puede deshabilitar este procedimiento con la marca de seguimiento 3205. Deshabilitar la compresión de hardware puede, en raras ocasiones, mejorar el rendimiento de la copia de seguridad. Por ejemplo, si los datos ya están completamente comprimidos, deshabilitar la compresión de hardware evita que el dispositivo de cinta dedique tiempo a intentar comprimir los datos aún más.

Para obtener más información acerca de las marcas de seguimiento, vea Marcas de seguimiento (Transact-SQL).

Compresión de copia de seguridad

De forma predeterminada, la compresión de copia de seguridad aumenta significativamente el uso de CPU, y la CPU adicional consumida por el proceso de compresión puede afectar adversamente a las operaciones simultáneas. Por consiguiente, podría ser conveniente crear una copia de seguridad comprimida de prioridad baja en una sesión en que el uso de CPU esté limitado por el regulador de recursos cuando se produce la contención por la CPU. Para obtener más información, vea Cómo usar el regulador de recursos para limitar el uso de CPU mediante compresión de copia de seguridad (Transact-SQL).

Cantidad de datos transferidos a la cinta

Al crear una copia de seguridad diferencial o de datos solo se captura la parte de la base de datos que contiene los datos reales; no se incluye el espacio no utilizado. Como resultado, las operaciones de copia de seguridad son más rápidas.

Aunque las bases de datos de SQL Server se pueden configurar para que crezcan automáticamente a medida que sea necesario, puede seguir realizando la reserva de espacio en la base de datos para garantizar que dicho espacio esté disponible. La reserva de espacio en la base de datos no afecta negativamente al rendimiento de la copia de seguridad ni al tiempo total utilizado para realizar la copia de seguridad de la base de datos.

Optimizar la sincronización del trasvase de registros

Al intentar sincronizar el destino del trasvase de registros, no tiene que usar WITH STANDBY entre los pasos RESTORE LOG.