Compartir vía


Información general sobre restauración y recuperación (SQL Server)

Se aplica a: SQL Server

En este artículo se proporciona información general sobre el proceso de restauración y recuperación de la base de datos para SQL Server.

Información general

Para recuperar de un error una base de datos de SQL Server , un administrador de bases de datos tiene que restaurar un conjunto de copias de seguridad de SQL Server en una secuencia de restauración correcta y significativa de forma lógica. SQL Server permite restaurar los datos de las copias de seguridad de toda una base de datos, un archivo de datos o una página de datos, tal y como se describe a continuación:

  • La base de datos (una restauración de la base de datos completa)

    Se restaura y recupera toda la base de datos, que permanece sin conexión durante las operaciones de restauración y recuperación.

  • El archivo de datos (una restauración de archivos)

    Se restaura y recupera un archivo de datos o conjunto de archivos. Durante la restauración de un archivo, los grupos de archivo que incluyen los archivos se dejan sin conexión de forma automática mientras dure el proceso de restauración. Cualquier intento de obtener acceso a un grupo de archivos sin conexión genera un error.

  • La página de datos (una restauración de páginas)

    En el modelo de recuperación completa o el modelo de recuperación registrado de forma masiva, puede restaurar páginas individuales. Las restauraciones de páginas pueden utilizarse con cualquier base de datos, independientemente del número de grupos de archivos.

La copia de seguridad y restauración de SQL Server funciona en todos los sistemas operativos compatibles. Para obtener más información sobre los sistemas operativos admitidos, vea Requisitos de hardware y software para instalar SQL Server. Para obtener más información sobre la compatibilidad con las copias de seguridad de versiones anteriores de SQL Server, vea la sección "Soporte de compatibilidad" de RESTORE.

Escenarios de restauración

Un escenario de restauración en SQL Server es el proceso de restaurar datos de una o más copias de seguridad y, a continuación, recuperar la base de datos. Los escenarios de restauración admitidos dependen del modelo de recuperación de la base de datos y de la edición de SQL Server.

La siguiente tabla presenta los posibles escenarios de restauración compatibles para diferentes modelos de recuperación.

escenario de restauración Modelo de recuperación simple Modelo de recuperación completa o modelo de recuperación optimizado para cargas masivas de registros
restauración de la base de datos completa Es la estrategia de restauración básica. Una restauración de base de datos completa puede implicar simplemente la restauración y recuperación de una copia de seguridad completa de base de datos. Por otra parte, una restauración de base de datos completa puede consistir en restaurar una copia de seguridad completa de base de datos y, luego, restaurar y recuperar una copia de seguridad diferencial.

Para obtener más información, vea Restauraciones de base de datos completas (modelo de recuperación simple).
Es la estrategia de restauración básica. Una restauración completa de una base de datos supone restaurar una copia de seguridad completa de base de datos y, opcionalmente, una copia de seguridad diferencial (si existe), además de restaurar todas las copias de seguridad de registros posteriores (en orden secuencial). La restauración completa de base de datos finaliza al recuperar la última copia de seguridad de registros y restaurarla (RESTORE WITH RECOVERY).
Para obtener más información, vea Restauraciones de base de datos completas (modelo de recuperación completa).
Restauración de archivos 1 Restauración de uno o más archivos de solo lectura dañados, sin restaurar la base de datos completa. La restauración de archivos está disponible solo si la base de datos tiene como mínimo un grupo de archivos de solo lectura. Restaura uno o más archivos, sin restaurar la base de datos completa. La restauración de archivos puede realizarse mientras la base de datos está sin conexión o, en algunas ediciones de SQL Server, cuando está conectada. Durante la restauración de archivos, los grupos de archivos en los que se incluyen los archivos en cuestión permanecen siempre sin conexión.
Restauración de página No aplicable Restaura una o más páginas dañadas. La restauración de página puede realizarse mientras la base de datos está sin conexión o, en algunas ediciones de SQL Server, cuando está conectada. Durante la restauración de páginas, las páginas que se están restaurando permanecen siempre sin conexión.

Es preciso que haya disponible una cadena intacta de copias de seguridad de registros, hasta el archivo de registro actual, y deben aplicarse todas a fin de actualizar la página según el archivo de registro actual.
Para obtener más información, vea Restaurar páginas (SQL Server).
Restauración por etapas 1 Restauración y recuperación de la base de datos por etapas a nivel de grupo de archivos, empezando por el grupo de archivos principal y todos los grupos de archivos secundarios de lectura/escritura. Restauración y recuperación de la base de datos por etapas a nivel del grupo de archivos, empezando por el grupo de archivos principal.

Para obtener más información, vea Restauraciones por etapas (SQL Server).

1 La restauración con conexión solo se admite en la edición Enterprise.

Pasos para restaurar una base de datos

Para realizar una restauración de archivos, el motor de base de datos ejecuta dos pasos:

  • Crea los archivos de base de datos que faltan.

  • Copia los datos de los dispositivos de copia de seguridad en los archivos de la base de datos.

Para realizar una restauración de base de datos, el motor de base de datos ejecuta tres pasos:

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

  • Copia todas las páginas de datos, registro e índice del medio de copia de seguridad de una base de datos en los archivos de base de datos.

  • Aplica el registro de transacciones en lo que se conoce como proceso de recuperación.

Independientemente de la forma de restauración de datos, antes de que una base de datos se pueda recuperar, el motor de base de datos de SQL Server garantiza la coherencia lógica de toda la base de datos. Por ejemplo, si restaura un archivo, no puede recuperarlo y conectarlo hasta que se haya puesto al día hasta un punto lo bastante avanzado de forma que sea coherente con la base de datos.

Ventajas de la restauración de archivos o página

La restauración y recuperación de archivos o páginas, en lugar de toda la base de datos, ofrece las siguientes ventajas:

  • La restauración de menos datos reduce el tiempo necesario para copiarlos y recuperarlos.

  • En SQL Server, es posible que la restauración de archivos o páginas permita que otros datos de la base de datos permanezcan en línea durante la operación de restauración.

Recuperación y el registro de transacciones

Para la mayoría de los escenarios de restauración, es necesario aplicar una copia de seguridad del registro de transacciones y permitir que el motor de base de datos de SQL Server ejecute el proceso de recuperación para que la base de datos esté conectada. La recuperación es el proceso que utiliza SQL Server para que cada base de datos se inicie en un estado de transacción coherente o limpio.

En caso de una conmutación por error u otro apagado no limpio, las bases de datos pueden quedar en un estado en que algunas modificaciones no han llegado a escribirse desde la caché del búfer a los archivos de datos; estos pueden contener modificaciones como resultado de transacciones incompletas. Cuando se inicia una instancia de SQL Server, se ejecuta una recuperación de cada base de datos, que consta de tres fases en función del último punto de comprobación de la base de datos:

  • La Fase 1 es la Fase de análisis que analiza el registro de transacciones para determinar cuál es el último punto de comprobación y crea la Tabla de páginas desfasadas (DPT) y la Tabla de transacciones activas (ATT). La DPT contiene los registros de las páginas desfasadas en el momento en que se cerró la base de datos. La ATT contiene los registros de las transacciones que estaban activas en el momento en que la base de datos no se cerró correctamente.

  • La Fase 2 es la Fase de puesta al día que pone al día todas las modificaciones registradas en el registro que es posible que no se hayan escrito en los archivos de datos en el momento en que se cerró la base de datos. El número mínimo de secuencia de registro (minLSN) necesario para una recuperación correcta en toda la base de datos se encuentra en la DPT y marca el inicio de las operaciones de fase de puesta al día necesarias en todas las páginas desfasadas. En esta fase, el motor de base de datos de SQL Server escribe en el disco todas las páginas desfasadas que pertenecen a las transacciones confirmadas.

  • La Fase 3 es la Fase de reversión que revierte las transacciones incompletas encontradas en la ATT para asegurarse de que se conserva la integridad de la base de datos. Después de la reversión, la base de datos pasa a estar en línea y no se pueden aplicar más copias de seguridad del registro de transacciones a la base de datos.

La información sobre el progreso de cada fase de recuperación de base de datos se registra en el registro de errores de SQL Server. También se puede realizar el seguimiento del progreso de recuperación de la base de datos mediante eventos extendidos. Para obtener más información, vea la entrada de blog Nuevos eventos extendidos para el progreso de recuperación de base de datos.

Nota:

En un escenario de restauración por etapas, si un grupo de archivos de solo lectura ha sido de solo lectura desde antes de la creación de la copia de seguridad de archivos, no es necesario aplicar las copias de seguridad de registros al grupo de archivos y estas se omiten en la restauración de archivos.

Nota:

Para maximizar la disponibilidad de las bases de datos en un entorno empresarial después de iniciar el servicio SQL Server, como después de una conmutación por error de una instancia de clúster de conmutación por error siempre activa o un reinicio local, SQL Server Enterprise Edition puede conectar una base de datos después de la Fase de puesta al día, mientras la Fase de reversión sigue ejecutándose. Esto se conoce como "recuperación rápida". SPero la recuperación rápida no está disponible cuando la base de datos pasa a un estado conectado y no se ha reiniciado el servicio SQL Server. Por ejemplo, la ejecución de ALTER DATABASE AdventureWorks SET ONLINE; no permitirá que la base de datos esté en estado de lectura y escritura hasta que se hayan completado las tres fases de recuperación.

Modelos de recuperación y operaciones de restauración admitidas

Las operaciones de restauración disponibles para una base de datos dependen de su modelo de recuperación. En la tabla siguiente se resumen todos los modelos de recuperación y las diferentes situaciones de restauración en las que funcionarían.

Operación de restauración Modelo de recuperación completa Modelo de recuperación optimizado para cargas masivas de registros Modelo de recuperación simple
Recuperación de datos Recuperación completa (si el registro está disponible). Existe el riesgo de perder algunos datos. Se perderán los datos desde la última copia de seguridad completa o diferencial.
Restauración a un momento dado Cualquier momento cubierto por las copias de seguridad de registros. No está permitida si la copia de seguridad de registros contiene algún cambio registrado de forma masiva. No admitida.
Restauración de archivos 1 Totalmente compatible. A veces. 2 Solo está disponible para archivos secundarios de solo lectura.
Restauración de página 1 Totalmente compatible. A veces. 2 Ninguno.
Restauración por etapas (nivel de grupos de archivos) 1 Totalmente compatible. A veces. 2 Solo está disponible para archivos secundarios de solo lectura.

1 Disponible solo en la edición Enterprise de SQL Server

2 Para consultar las condiciones necesarias, vea Restaurar restricciones bajo el modelo de recuperación simple, más adelante en este artículo.

Importante

Independientemente del modelo de recuperación de una base de datos, una copia de seguridad de SQL Server no puede restaurarse en una versión del motor de base de datos de SQL Server anterior a la versión que creó la copia de seguridad.

Escenarios de restauración con el modelo de recuperación simple

El modelo de recuperación simple impone las siguientes restricciones en las operaciones de restauración:

Si alguna de estas restricciones no es conveniente para las recuperaciones que usted necesita, considere la posibilidad de utilizar el modelo de recuperación completa. Para obtener más información, vea Información general de copia de seguridad (SQL Server).

Importante

Independientemente del modelo de recuperación de una base de datos, una copia de seguridad de SQL Server no puede restaurarse con una versión de SQL Server que sea anterior a la versión que creó la copia de seguridad.

Restaurar con el modelo de recuperación optimizado para cargas masivas de registros

En esta sección se tratan las consideraciones de restauración que son exclusivas del modelo de recuperación optimizado para cargas masivas de registros, que está pensado únicamente como un complemento para el modelo de recuperación completa.

Nota:

Para obtener una introducción al modelo de recuperación optimizado para cargas masivas de registros, vea El registro de transacciones (SQL Server).

En general, el modelo de recuperación optimizado para cargas masivas de registros es parecido al modelo de recuperación completa y la información descrita para el modelo de recuperación completa también se aplica al otro modelo. Sin embargo, la recuperación a un momento dado y la restauración en línea se ven afectadas por el modelo de recuperación optimizado para cargas masivas de registros.

Restricciones de la recuperación a un momento dado

Si una copia de seguridad de registros en el modelo de recuperación optimizado para cargas masivas de registros contiene cambios registrados de forma masiva, no se admite la recuperación a un momento dado. Si se intenta realizar una recuperación a un momento dado en una copia de seguridad de registros que contiene cambios masivos, se producirán errores en la operación de restauración.

Restricciones de la restauración con conexión

Una secuencia de restauración en línea solo funciona si se cumplen las condiciones siguientes:

  • Se han realizado todas las copias de seguridad de registros necesarias antes de iniciar la secuencia de restauración.

  • Se debe realizar una copia de seguridad de los cambios masivos antes de iniciar la secuencia de restauración en línea.

  • Si en la base de datos existen cambios masivos, todos los archivos deben estar en línea o inactivos. (esto significa que ya no forman parte de la base de datos).

Si no se cumplen estas condiciones, se producirán errores en la secuencia de restauración en línea.

Nota:

Se recomienda volver al modelo de recuperación completa antes de iniciar una restauración en línea. Para obtener más información, vea Modelos de recuperación (SQL Server).

Para obtener más información sobre cómo realizar una restauración con conexión, vea Restauración con conexión (SQL Server).

Asesor para recuperación de base de datos (SQL Server Management Studio)

El Asistente para recuperación de base de datos facilita la creación de planes de restauración que implementan secuencias de restauración correctas óptimas. Se ha dado respuesta a muchos problemas conocidos de restauración de base de datos y mejoras solicitados por los clientes. Entre las principales mejoras que ofrece el Asistente para recuperación de base de datos se incluyen las siguientes:

  • Algoritmo del plan de restauraciones: el algoritmo usado para crear planes de restauraciones se ha mejorado considerablemente, especialmente en escenarios de restauraciones complejas. Muchos casos extremos, incluidos los escenarios de bifurcación en restauraciones a un momento dado, se tratan de manera más eficaz que en versiones anteriores de SQL Server.

  • Restauración a un momento dado: el Asistente para recuperación de base de datos simplifica considerablemente la restauración de una base de datos a un momento dado en el tiempo. Una escala de tiempo visual de copia de seguridad mejora significativamente la compatibilidad con restauraciones a un momento dado. Esta escala de tiempo visual permite identificar un punto posible en el tiempo como punto de recuperación de destino para restaurar una base de datos. La escala de tiempo facilita el recorrido de una ruta de recuperación bifurcada (una que abarque varias bifurcaciones de recuperación). Un plan determinado de restauración a un momento dado incluye automáticamente las copias de seguridad que son pertinentes para la restauración a un momento dado de destino (fecha y hora). Para obtener más información, vea Restaurar una base de datos de SQL Server a un momento dado (modelo de recuperación completa).

Para más información sobre el Asesor de recuperación de bases de datos, consulte los siguientes blogs sobre manejabilidad de SQL Server:

Recuperación acelerada de bases de datos

La Recuperación acelerada de bases de datos está disponible a partir de SQL Server 2019 (15.x) y en Azure SQL Database. La recuperación acelerada de la base de datos mejora en gran medida la disponibilidad de la base de datos, especialmente en presencia de transacciones de larga duración, al rediseñar el proceso de recuperación del motor de base de datos de SQL Server. Una base de datos para la que se ha habilitado la recuperación acelerada de base de datos completa el proceso de recuperación más rápidamente después de una conmutación por error u otro apagado no limpio. Cuando está habilitada, la recuperación acelerada de base de datos también completa la reversión de las transacciones de larga ejecución canceladas significativamente más rápido.

Se puede habilitar la recuperación acelerada de la base de datos en cada base de datos en SQL Server 2019 (15.x) con la sintaxis siguiente:

ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;

Nota:

La recuperación acelerada de la base de datos está habilitada de forma predeterminada en Azure SQL Database.