Solucionar problemas de operaciones de copia de seguridad y restauración de SQL Server
En este artículo se proporcionan soluciones para problemas comunes que pueden experimentar durante las operaciones de copia de seguridad y restauración de Microsoft SQL Server y se proporcionan referencias a más información sobre estas operaciones.
Versión del producto original: SQL Server
Número de KB original: 224071
Las operaciones de copia de seguridad y restauración tardan mucho tiempo
Las operaciones de copia de seguridad y restauración tienen un consumo intensivo de E/S. El rendimiento de las operaciones de copia de seguridad y restauración depende de cómo esté optimizado el subsistema de E/S subyacente para controlar el volumen de E/S. Si sospecha que las operaciones de copia de seguridad se detienen o tardan demasiado tiempo en finalizar, puede usar uno o varios de los métodos siguientes para calcular el tiempo de finalización o para realizar un seguimiento del progreso de una operación de copia de seguridad o restauración:
El registro de errores de SQL Server contiene información sobre las operaciones anteriores de copia de seguridad y restauración. Puede usar estos detalles para calcular el tiempo necesario para realizar copias de seguridad y restaurar la base de datos en su estado actual. A continuación se muestra una salida de ejemplo del registro de errores:
RESTORE DATABASE successfully processed 315 pages in 0.372 seconds (6.604 MB/sec)
En SQL Server 2016 y versiones posteriores, puede usar XEvent backup_restore_progress_trace para realizar un seguimiento del progreso de las operaciones de copia de seguridad y restauración.
Puede usar la
percent_complete
columna de sys.dm_exec_requests para realizar un seguimiento del progreso de las operaciones de copia de seguridad y restauración en curso.Puede medir la información de rendimiento de copia de seguridad y restauración mediante los contadores del
Device throughput Bytes/sec
monitor de rendimiento yBackup/Restore throughput/sec
. Para obtener más información, vea SQL Server, Backup Device Object.Use el script de estimate_backup_restore para obtener una estimación de los tiempos de copia de seguridad.
Consulte How It Works: What is Restore/Backup Doing?. En esta entrada de blog se proporciona información sobre la fase actual de las operaciones de copia de seguridad o restauración.
Aspectos que se deben comprobar
Compruebe si experimenta cualquiera de los problemas conocidos que aparecen en la tabla siguiente. Tenga en cuenta si debe implementar los cambios o aplicar las correcciones y procedimientos recomendados que se describen en los artículos correspondientes.
Vínculo a Knowledge Base o Libros en pantalla Explicación y acciones recomendadas Optimización del rendimiento de copia de seguridad y restauración en SQL Server En el tema Libros en pantalla se tratan varios procedimientos recomendados que puede usar para mejorar el rendimiento de las operaciones de copia de seguridad y restauración. Por ejemplo, puede asignar el privilegio especial a la cuenta de Windows que ejecuta SQL Server para habilitar la SE_MANAGE_VOLUME_NAME
inicialización instantánea de archivos de datos. Esto puede producir importantes mejoras de rendimiento.2920151 revisiones y actualizaciones recomendadas para clústeres de conmutación por error basados en Windows Server 2012 R2
2822241 paquete acumulativo de actualizaciones de Windows 8 y Windows Server 2012: abril de 2013Los paquetes acumulativos actuales del sistema pueden incluir correcciones para problemas conocidos en el nivel del sistema que pueden degradar el rendimiento de programas como SQL Server. La instalación de estas actualizaciones puede ayudar a evitar estos problemas. 2878182 FIX: los procesos en modo de usuario de una aplicación no responden en servidores que ejecutan Windows Server 2012 Las operaciones de copia de seguridad son intensivas de E/S y pueden verse afectadas por este error. Aplique esta corrección para ayudar a evitar estos problemas. Configuración del software antivirus para trabajar con SQL Server El software antivirus puede contener bloqueos en archivos .bak. Esto puede afectar al rendimiento de las operaciones de copia de seguridad y restauración. Siga las instrucciones de este artículo para excluir los archivos de copia de seguridad de los exámenes de virus. 2820470 mensaje de error retrasado al intentar acceder a una carpeta compartida que ya no existe en Windows Describe un problema que se produce al intentar acceder a una carpeta compartida que ya no existe en Windows 2012 y versiones posteriores. 967351 un archivo muy fragmentado en un volumen NTFS puede no crecer más allá de un tamaño determinado. Describe un problema que se produce cuando un sistema de archivos NTFS está muy fragmentado. 304101 programa Backup no se realiza correctamente cuando se realiza una copia de seguridad de un volumen de sistema grande 2455009 CORRECCIÓN: rendimiento lento al recuperar una base de datos si hay muchos VFS dentro del registro de transacciones en SQL Server 2005, en SQL Server 2008 o en SQL Server 2008 R2 La presencia de muchos archivos de registro virtual podría afectar al tiempo necesario para restaurar una base de datos. Esto es especialmente cierto durante la fase de recuperación de la operación de restauración. Para obtener información sobre otros posibles problemas que pueden deberse a la presencia de muchas VFS, consulte Operaciones de base de datos tardan mucho tiempo en completarse o desencadenan errores cuando el registro de transacciones tiene numerosos archivos de registro virtual. Una operación de copia de seguridad o restauración en una ubicación de red es lenta Aísle el problema a la red intentando copiar un archivo de tamaño similar a la ubicación de red desde el servidor que ejecuta SQL Server. Compruebe el rendimiento. Compruebe si hay mensajes de error en el registro de errores de SQL Server y en el registro de eventos de Windows para obtener más punteros sobre la causa del problema.
Si usa planes de mantenimiento de bases de datos o software de terceros para realizar copias de seguridad simultáneas, considere si debe cambiar las programaciones para minimizar la contención en la unidad a la que se escriben las copias de seguridad.
Trabaje con el administrador de Windows para comprobar si hay actualizaciones de firmware del hardware.
Problemas que afectan a la restauración de la base de datos entre diferentes versiones de SQL Server
Una copia de seguridad de SQL Server no se puede restaurar en una versión anterior de SQL Server que la versión en la que se creó la copia de seguridad. Por ejemplo, no se puede restaurar una copia de seguridad que se realiza en una instancia de SQL Server 2019 a una instancia de SQL Server 2017. De lo contrario, aparece el siguiente mensaje de error:
Error 3169: se realizó una copia de seguridad de la base de datos en un servidor que ejecuta la versión %ls. Esta versión no es compatible con este servidor, que utiliza la versión %ls. Restaure la base de datos en un servidor que admita la copia de seguridad, o utilice una copia de seguridad que sea compatible con este servidor.
Use el método siguiente para copiar una base de datos hospedada en una versión posterior de SQL Server en una versión anterior de SQL Server.
Nota:
En el procedimiento siguiente se supone que tiene dos instancias de SQL Server denominadas SQL_A (versión superior) y SQL_B (versión inferior).
- Descargue e instale la versión más reciente de SQL Server Management Studio (SSMS) tanto en SQL_A como en SQL_B.
- En SQL_A, siga estos pasos:
- Haga clic con el botón derecho en <YourDatabase>Tasks>Generate Scripts (Generar scripts) y seleccione la opción para generar scripts en toda la base de datos y todos los objetos de base de datos.
- En la pantalla Establecer opciones de scripting, seleccione Opciones avanzadas y, a continuación, seleccione la versión de SQL_B en Script general>para la versión de SQL Server. Además, seleccione la opción que mejor funcione para guardar los scripts generados. A continuación, continúe con el asistente.
- Use la utilidad del programa de copia masiva (bcp) para copiar datos de tablas diferentes.
- En SQL_B, siga estos pasos:
- Use los scripts que se generaron en el servidor de SQL_A para crear un esquema de base de datos.
- En cada una de las tablas, deshabilite todas las restricciones de clave externa y desencadenadores. Si la tabla tiene columnas de identidad, habilite la inserción de identidad.
- Use bcp para importar los datos que exportó en el paso anterior en las tablas correspondientes.
- Una vez finalizada la importación de datos, habilite las restricciones y desencadenadores de clave externa y deshabilite la inserción de identidad para cada una de las tablas afectadas en el paso c.
Este procedimiento normalmente funciona bien para bases de datos de tamaño pequeño a mediano. En el caso de bases de datos más grandes, los problemas de memoria insuficiente pueden producirse en SSMS y otras herramientas. Considere la posibilidad de usar SQL Server Integration Services (SSIS), la replicación u otras opciones para crear una copia de una base de datos de una versión posterior a una versión anterior de SQL Server.
Para más información sobre cómo generar scripts para una base de datos, consulte Creación de un script de base de datos con la opción Generar script.
Problemas de trabajos de copia de seguridad en entornos Always On
Si tiene problemas que afectan a trabajos de copia de seguridad o planes de mantenimiento en entornos AlwaysOn, tenga en cuenta lo siguiente:
- De forma predeterminada, la preferencia de copia de seguridad automática se establece en Prefer Secondary (Preferr secundario). Esto especifica que las copias de seguridad deben producirse en una réplica secundaria, excepto si la réplica principal es la única réplica en línea. No puede realizar copias de seguridad diferenciales de la base de datos mediante esta configuración. Para cambiar esta configuración, use SSMS en la réplica principal actual y vaya a la página Preferencias de copia de seguridad en Propiedades del grupo de disponibilidad.
- Si usa un plan de mantenimiento o trabajos programados para generar copias de seguridad de las bases de datos, asegúrese de crear los trabajos para cada base de datos de disponibilidad en cada instancia de servidor que hospede una réplica de disponibilidad para el grupo de disponibilidad.
Para obtener más información sobre las copias de seguridad en un entorno AlwaysOn, consulte los temas siguientes:
- Configuración de copias de seguridad en réplicas secundarias de un grupo de disponibilidad AlwaysOn
- Descarga de copias de seguridad admitidas en las réplicas secundarias de un grupo de disponibilidad
Errores relacionados con medios al restaurar una base de datos desde una copia de seguridad
Si recibe mensajes de error que indican un problema de archivo, esto es sintomático de un archivo de copia de seguridad dañado. A continuación se muestran algunos ejemplos de errores que podría obtener si un conjunto de copia de seguridad está dañado:
-
3241: La familia de medios del dispositivo '%ls' está formada incorrectamente. SQL Server no puede procesarla.
-
3242: El archivo del dispositivo '%ls' no es un conjunto de copia de seguridad válido de formato de cinta de Microsoft.
-
3243: La familia de medios del dispositivo "%ls" se creó con la versión %d.%d del formato de cinta de Microsoft. SQL Server admite la versión %d.%d.
Nota:
Puede usar la instrucción Restore Header para comprobar las copias de seguridad.
Estos problemas pueden producirse debido a problemas que afectan al hardware subyacente (discos duros, almacenamiento de red, etc.) o que están relacionados con un virus o malware. Revise los registros de eventos del sistema de Windows y los registros de hardware para detectar errores notificados y tome las medidas adecuadas (por ejemplo, actualizar el firmware o corregir problemas de red).
Para evitar estos errores, habilite la opción Backup CHECKSUM cuando ejecute una copia de seguridad para evitar la copia de seguridad de una base de datos dañada. Para obtener más información, vea Posibles errores multimedia durante la copia de seguridad y restauración (SQL Server).
También puede habilitar la marca de seguimiento 3023 para habilitar una suma de comprobación al ejecutar copias de seguridad mediante herramientas de copia de seguridad. Para obtener más información, vea Cómo habilitar la opción CHECKSUM si las utilidades de copia de seguridad no exponen la opción.
Para solucionar estos problemas, debe buscar otro archivo de copia de seguridad utilizable o crear un nuevo conjunto de copia de seguridad. Microsoft no ofrece ninguna solución que pueda ayudar a recuperar datos de un conjunto de copia de seguridad dañado.
Nota:
Si un archivo de copia de seguridad se restaura correctamente en un servidor, pero no en otro, pruebe a copiar el archivo entre los servidores. Por ejemplo, pruebe robocopy, en lugar de una operación de copia normal.
Se produce un error en las copias de seguridad debido a problemas de permisos
Al intentar ejecutar operaciones de copia de seguridad de base de datos, se produce uno de los siguientes errores.
Escenario 1: al ejecutar una copia de seguridad desde SQL Server Management Studio, se produce un error en la copia de seguridad y se devuelve el siguiente mensaje de error:
Error de copia de seguridad para el nombre> del servidor<. (Microsoft.SqlServer.SmoExtended)
System.Data.SqlClient.SqlError: no se puede abrir el dispositivo de copia de seguridad "<nombre> del dispositivo". Error del sistema operativo 5(Access is denied.). (Microsoft.SqlServer.Smo)Escenario 2: Las copias de seguridad programadas producen un error y generan un mensaje de error que se registra en el historial de trabajos del trabajo con errores y que se parece a lo siguiente:
Executed as user: <Owner of the job>. ....2 for 64-bit Copyright (C) 2019 Microsoft. All rights reserved. Started: 5:49:14 PM Progress: 2021-08-16 17:49:15.47 Source: {GUID} Executing query "DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..sp...".: 100% complete End Progress Error: 2021-08-16 17:49:15.74 Code: 0xC002F210 Source: Back Up Database (Full) Execute SQL Task Description: Executing the query "EXECUTE master.dbo.xp_create_subdir N'C:\backups\D..." failed with the following error: "xp_create_subdir() returned error 5, 'Access is denied.'". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Cualquiera de estos escenarios puede producirse si la cuenta de servicio de SQL Server no tiene permisos de lectura y escritura en la carpeta en la que se escriben las copias de seguridad. Las instrucciones de copia de seguridad se pueden ejecutar como parte de un paso de trabajo o manualmente desde SQL Server Management Studio. En cualquier caso, siempre se ejecutan en el contexto de la cuenta de inicio del servicio SQL Server. Por lo tanto, si la cuenta de servicio no tiene los privilegios necesarios, recibirá los mensajes de error que se indicaron anteriormente.
Para obtener más información, vea Dispositivos de copia de seguridad.
Nota:
Para comprobar los permisos actuales de la cuenta del servicio SQL en una carpeta, vaya a la pestaña Seguridad de las propiedades de la carpeta correspondiente, seleccione el botón Avanzadas y, a continuación, use la pestaña Acceso efectivo.
Se produce un error en las operaciones de copia de seguridad o restauración que usan aplicaciones de copia de seguridad de terceros
SQL Server proporciona una herramienta de interfaz de dispositivo de copia de seguridad virtual (VDI). Esta API permite a los proveedores de software independientes integrar SQL Server en sus productos para proporcionar compatibilidad con las operaciones de copia de seguridad y restauración. Estas API están diseñadas para proporcionar una máxima confiabilidad y rendimiento, y para admitir toda la gama de funcionalidades de copia de seguridad y restauración de SQL Server. Esto incluye la gama completa de funcionalidades de instantánea y copia de seguridad activa.
Pasos de solución de problemas comunes
En el caso de las versiones anteriores a SQL Server 2012, asegúrese de que se inicia el servicio SQLWriter y de que la cuenta de inicio está establecida en Sistema local. Además, asegúrese de que el inicio de sesión NT AUTHORITY\SYSTEM existe en SQL Server y que forma parte del rol de servidor Sysadmin de la instancia en la que se ejecutan las copias de seguridad.
Tanto en SQL Server 2012 como en las versiones posteriores se crea un inicio de sesión denominado [NT SERVICE\SQLWriter] y se aprovisiona como inicio de sesión durante la instalación. Asegúrese de que este inicio de sesión existe en SQL Server y que forma parte del rol de servidor Sysadmin.
Asegúrese de que SqlServerWriter aparece cuando el
VSSADMIN LIST WRITERS
comando se ejecuta en un símbolo del sistema en el servidor que ejecuta SQL Server. Este escritor debe aparecer como escritor y debe estar en el estado Estable para permitir que las copias de seguridad de VSS finalicen correctamente.Para obtener más información, compruebe los registros del software de copia de seguridad correspondiente y sus sitios de soporte técnico.
Síntomas o escenario Artículo de Knowledge Base No se pueden realizar copias de seguridad de bases de datos que distinguen mayúsculas de minúsculas 2987610 FIX: error al realizar una copia de seguridad de una base de datos que tenga intercalación que distingue mayúsculas de minúsculas mediante VSS en SQL Server 2012 SP2 Es posible que se produzcan errores en las copias de seguridad de terceros realizadas mediante VSS Writer y devuelvan errores 8229. 2987610 FIX: error al realizar una copia de seguridad de una base de datos que tenga intercalación que distingue mayúsculas de minúsculas mediante VSS en SQL Server 2012 SP2 Descripción del funcionamiento de la copia de seguridad de VDI Cómo funciona: Recursos de copia de seguridad de SQL Server - VDI (VSS) Informe del error del agente de Azure Site Recovery Se produce un error en la copia de seguridad de VSS del agente de ASR u otro no componente para un servidor que hospeda SQL Server 2008 R2
Más recursos
Cómo funciona: ¿Cuántas bases de datos se pueden realizar copias de seguridad simultáneamente?
Problemas diversos
Preguntas más frecuentes sobre las operaciones de copia de seguridad y restauración de SQL Server
¿Cómo puedo comprobar el estado de una operación de copia de seguridad?
Use el script de estimate_backup_restore para obtener una estimación de los tiempos de copia de seguridad.
¿Qué debo hacer si SQL Server conmuta por error en medio de la copia de seguridad?
Reinicie la operación de restauración o copia de seguridad por reinicio de una operación de restauración interrumpida (Transact-SQL).
¿Puedo restaurar copias de seguridad de bases de datos de versiones anteriores del programa en versiones más recientes y viceversa?
No se puede restaurar la copia de seguridad de SQL Server mediante una versión de SQL Server posterior a la versión que creó la copia de seguridad. Para obtener más información, consulte Compatibilidad con compatibilidad.
Cómo comprobar las copias de seguridad de la base de datos de SQL Server?
Consulte los procedimientos que se documentan en instrucciones RESTORE - VERIFYONLY (Transact-SQL).
¿Cómo puedo obtener el historial de copia de seguridad de las bases de datos en SQL Server?
Consulte Cómo obtener el historial de copia de seguridad de las bases de datos en SQL Server.
¿Puedo restaurar copias de seguridad de 32 bits en servidores de 64 bits y viceversa?
Sí. El formato de almacenamiento en disco de SQL Server es el mismo en los entornos de 64 y 32 bits. Por lo tanto, las operaciones de copia de seguridad y restauración funcionan en entornos de 64 y 32 bits.
Sugerencias para solución de problemas generales
- Asegúrese de aprovisionar permisos de lectura y escritura en la cuenta de servicio de SQL Server en la carpeta en la que se escriben las copias de seguridad. Para más información, consulte el artículo sobre los permisos para la copia de seguridad.
- Asegúrese de que la carpeta en la que se escriben las copias de seguridad tiene espacio suficiente para acomodar las copias de seguridad de la base de datos. Puede usar el
sp_spaceused
procedimiento almacenado para obtener una estimación aproximada del tamaño de copia de seguridad de una base de datos específica. - Use siempre la versión más reciente de SSMS para asegurarse de que no encuentre problemas conocidos relacionados con la configuración de trabajos y planes de mantenimiento.
- Realice una ejecución de prueba de los trabajos para asegurarse de que las copias de seguridad se crean correctamente. Agregue siempre lógica para comprobar las copias de seguridad.
- Si tiene previsto mover bases de datos del sistema de un servidor a otro, consulte Mover bases de datos del sistema.
- Si observa errores intermitentes de copia de seguridad, compruebe si está experimentando un problema que ya se ha corregido en la actualización más reciente de la versión de SQL Server. Para más información, consulte Versiones y actualizaciones de SQL Server.
- Para programar y automatizar las copias de seguridad de las ediciones de SQL Express, consulte Programación y automatización de copias de seguridad de bases de datos de SQL Server en SQL Server Express.
Temas de referencia para las operaciones de copia de seguridad y restauración de SQL Server
Para obtener más información sobre las operaciones de copia de seguridad y restauración, consulte los temas siguientes en los Libros en pantalla:
"Copia de seguridad y restauración de bases de datos de SQL Server": en este tema se tratan los conceptos de las operaciones de copia de seguridad y restauración de bases de datos de SQL Server, se proporcionan vínculos a temas adicionales y se proporcionan procedimientos detallados para ejecutar varias copias de seguridad o tareas de restauración (como comprobar copias de seguridad y realizar copias de seguridad mediante T-SQL o SSMS). Este es el tema primario sobre este tema en la documentación de SQL Server.
En la tabla siguiente se enumeran temas adicionales que es posible que desee revisar para tareas específicas relacionadas con las operaciones de copia de seguridad y restauración.
Referencia Descripción BACKUP (Transact-SQL) Proporciona respuestas a preguntas básicas relacionadas con las copias de seguridad. Proporciona ejemplos de diferentes tipos de operaciones de copia de seguridad y restauración. Dispositivos de copia de seguridad (SQL Server) Proporciona una excelente referencia para comprender varios dispositivos de copia de seguridad, realizar copias de seguridad en un recurso compartido de red, Azure Blob Storage y tareas relacionadas. Modelos de recuperación (SQL Server) Trata en detalle los distintos modelos de recuperación: Simple, Full y Bulk-Logged. Proporciona información sobre cómo afecta el modelo de recuperación a las copias de seguridad. Copia de seguridad y restauración: bases de datos del sistema (SQL Server) Trata las estrategias y analiza lo que debe tener en cuenta al trabajar en operaciones de copia de seguridad y restauración de bases de datos del sistema. Información general sobre restauración y recuperación (SQL Server) Trata cómo afectan los modelos de recuperación a las operaciones de restauración. Debe revisar esto si tiene preguntas sobre cómo el modelo de recuperación de una base de datos puede afectar al proceso de restauración. Administración de los metadatos cuando una base de datos pasa a estar disponible en otro servidor Varias consideraciones que debe tener en cuenta cuando se mueve una base de datos o se producen problemas que afecten a los inicios de sesión, el cifrado, la replicación, los permisos, etc. Trabajar con copias de seguridad del registro de transacciones Presenta conceptos sobre cómo realizar copias de seguridad y restaurar (aplicar) registros de transacciones en los modelos de recuperación completos y optimizados para cargas masivas de registros. Explica cómo realizar copias de seguridad rutinarias de registros de transacciones (copias de seguridad de registros) para recuperar datos. Copia de seguridad administrada en Microsoft Azure para SQL Server Presenta la copia de seguridad administrada y los procedimientos asociados.