Compartir a través de


Instantáneas de base de datos (SQL Server)

Una instantánea de base de datos es una vista estática de solo lectura de una base de datos de SQL Server (la base de datos de origen). La instantánea de base de datos es transaccionalmente coherente con la base de datos de origen a partir del momento de la creación de la instantánea. Una instantánea de base de datos siempre reside en la misma instancia del servidor que su base de datos de origen. A medida que se actualiza la base de datos de origen, se actualiza la instantánea de base de datos. Por lo tanto, más tiempo existe una instantánea de base de datos, más probable es usar su espacio en disco disponible.

Pueden existir varias instantáneas en una base de datos de origen determinada. Cada instantánea de base de datos persiste hasta que el propietario de la base de datos la quita explícitamente.

Nota:

Las instantáneas de base de datos no están relacionadas con las copias de seguridad de instantáneas, el aislamiento de instantáneas de transacciones o la replicación de instantáneas.

En este tema:

Información general sobre las características

Las instantáneas de base de datos funcionan en el nivel de página de datos. Antes de modificar una página de la base de datos de origen por primera vez, la página original se copia de la base de datos de origen a la instantánea. La instantánea almacena la página original, conservando los registros de datos tal como existían cuando se creó la instantánea. El mismo proceso se repite por cada página que se está modificando por primera vez. Para el usuario, una instantánea de base de datos no parece cambiar nunca, ya que las operaciones de lectura de una instantánea de base de datos siempre acceden a las páginas de datos originales, independientemente de dónde residen.

Para almacenar las páginas originales copiadas, la instantánea usa uno o varios archivos dispersos. Inicialmente, un archivo disperso es un archivo esencialmente vacío que no contiene datos de usuario y aún no se ha asignado espacio en disco para los datos de usuario. A medida que se actualizan más páginas en la base de datos de origen, el tamaño del archivo crece. En la ilustración siguiente se muestran los efectos de dos patrones de actualización que contrastan con el tamaño de una instantánea. El patrón de actualización A refleja un entorno en el que solo se actualiza el 30 % de las páginas originales durante la vida útil de la instantánea. El patrón de actualización B refleja un entorno en el que el 80 % de las páginas originales se actualizan durante la vida útil de la instantánea.

Patrones de actualización alternativos y tamaño de instantánea

Ventajas de las instantáneas de base de datos

  • Las instantáneas se pueden usar con fines de informes.

    Los clientes pueden consultar una instantánea de la base de datos, lo cual es útil para redactar informes basados en los datos al momento de la creación de la instantánea.

  • Mantenimiento de datos históricos para la generación de informes.

    Una instantánea puede ampliar el acceso de los usuarios a los datos desde un momento dado. Por ejemplo, puede crear una instantánea de base de datos al final de un período de tiempo determinado (por ejemplo, un trimestre financiero) para informes posteriores. Después, puede ejecutar informes de fin de período en la instantánea. Si se permite el espacio en disco, también puede mantener instantáneas de fin de período indefinidamente, lo que permite realizar consultas en los resultados de estos períodos; por ejemplo, para investigar el rendimiento de la organización.

  • Usar una base de datos reflejada que estás manteniendo con fines de disponibilidad para aliviar la carga de informes.

    Permitir el uso de instantáneas de base de datos junto con el reflejo de base de datos permite que los datos del servidor espejo sean accesibles para la generación de informes. Además, la ejecución de consultas en la base de datos reflejada puede liberar recursos en la entidad de seguridad. Para obtener más información, vea Reflejo de base de datos y instantáneas de base de datos (SQL Server).

  • Proteger los datos frente a errores administrativos.

  • En caso de error de usuario en una base de datos de origen, puede revertir la base de datos de origen al estado en que estaba cuando se creó una instantánea de base de datos determinada. La pérdida de datos se limita a las actualizaciones de la base de datos desde la creación de la instantánea.

    Por ejemplo, antes de realizar actualizaciones importantes, como una actualización masiva o un cambio de esquema, cree una instantánea de la base de datos que proteja los datos. Si comete un error, puede usar la instantánea para recuperarse revirtiendo la base de datos a la instantánea. La reversión es potencialmente mucho más rápida para este propósito que la restauración a partir de una copia de seguridad; sin embargo, no puede avanzar después.

    Importante

    La reversión no funciona en una base de datos que está sin conexión o corrupta. Por lo tanto, es necesario realizar copias de seguridad periódicas y probar el plan de restauración para proteger una base de datos.

    Nota:

    Las instantáneas de base de datos dependen de la base de datos de origen. Por lo tanto, el uso de instantáneas de base de datos para revertir una base de datos no es un sustituto de la estrategia de copia de seguridad y restauración. La realización de todas las copias de seguridad programadas sigue siendo esencial. Si debe restaurar la base de datos de origen al momento en que creó una instantánea de base de datos, implemente una directiva de copia de seguridad que le permita hacerlo.

  • Proteger los datos contra el error del usuario.

    Al crear instantáneas de base de datos periódicamente, puede mitigar el impacto de un error de usuario importante, como una tabla eliminada. Para un alto nivel de protección, puede crear una serie de instantáneas de base de datos que abarquen el tiempo suficiente para reconocer y responder a la mayoría de los errores de usuario. Por ejemplo, puede mantener de 6 a 12 instantáneas graduales que abarquen un intervalo de 24 horas, en función de los recursos de disco. A continuación, cada vez que se crea una nueva instantánea, se puede eliminar la instantánea más antigua.

    • Para recuperarse de un error de usuario, puede revertir la base de datos a la instantánea inmediatamente antes del error. La reversión es potencialmente mucho más rápida para este propósito que la restauración a partir de una copia de seguridad; sin embargo, no puede avanzar después.

    • Alternativamente, puede que pueda reconstruir manualmente una tabla eliminada u otros datos perdidos a partir de la información en una instantánea. Por ejemplo, podría copiar los datos del instantáneo de forma masiva en la base de datos y luego combinarlos manualmente.

    Nota:

    Las razones para usar instantáneas de base de datos determinan cuántas instantáneas simultáneas necesita en una base de datos, la frecuencia con la que crear una nueva instantánea y cuánto tiempo se debe conservar.

  • Administración de una base de datos de prueba

    En un entorno de prueba, puede resultar útil al ejecutar repetidamente un protocolo de prueba para que la base de datos contenga datos idénticos al principio de cada ronda de pruebas. Antes de ejecutar la primera ronda, un desarrollador de aplicaciones o evaluador puede crear una instantánea de base de datos en la base de datos de prueba. Después de cada ejecución de prueba, la base de datos se puede devolver rápidamente a su estado anterior revirtiendo la instantánea de base de datos.

Términos y definiciones

instantánea de base de datos
Una vista estática de solo lectura y transaccionalmente coherente de una base de datos (la base de datos de origen).

base de datos de origen
Para una instantánea de base de datos, la base de datos en la que se creó la instantánea. Las instantáneas de base de datos dependen de la base de datos de origen. Las instantáneas de una base de datos deben estar en la misma instancia de servidor que la base de datos. Además, si esa base de datos deja de estar disponible por cualquier motivo, todas sus instantáneas de base de datos también no estarán disponibles.

archivo disperso
Un archivo proporcionado por el sistema de archivos NTFS que requiere mucho menos espacio en disco que, de lo contrario, sería necesario. Un archivo disperso se usa para almacenar páginas copiadas en una instantánea de base de datos. Cuando se crea por primera vez, un archivo disperso ocupa poco espacio en disco. A medida que los datos se escriben en una instantánea de base de datos, NTFS asigna espacio en disco gradualmente al archivo disperso correspondiente.

Requisitos previos y limitaciones de las instantáneas de base de datos

En esta sección:

Prerrequisitos

La base de datos de origen, que puede usar cualquier modelo de recuperación, debe cumplir los siguientes requisitos previos:

  • La instancia del servidor debe ejecutarse en una edición de SQL Server que admita instantáneas de base de datos. Para obtener más información, vea Features Supported by the Editions of SQL Server 2014.

  • La base de datos de origen debe estar en línea, a menos que sea una base de datos reflejada dentro de una sesión de creación de reflejo de la base de datos.

  • Puede crear una instantánea de base de datos en cualquier base de datos principal o secundaria de un grupo de disponibilidad. El rol de réplica debe ser PRIMARY o SECONDARY y no debe encontrarse en el estado RESOLVING.

    Se recomienda que el estado de sincronización de la base de datos sea SYNCHRONIZING o SYNCHRONIZED cuando se crea una instantánea de base de datos. Sin embargo, las instantáneas de base de datos pueden crearse cuando el estado de sincronización de la base de datos sea NOT SYNCHRONIZING.

    Para obtener más información, consulte Instantáneas de bases de datos con Grupos de disponibilidad de AlwaysOn (SQL Server).

  • Para crear una instantánea de una base de datos en una base de datos reflejada, la base de datos debe estar en estado de reflejo SINCRONIZADO.

  • La base de datos de origen no se puede configurar como una base de datos compartida escalable.

Nota:

Todos los modelos de recuperación admiten instantáneas de base de datos.

Limitaciones de la base de datos de origen

Siempre que exista una instantánea de base de datos, existen las siguientes limitaciones en la base de datos de origen de la instantánea:

  • La base de datos no se puede eliminar, desconectar ni restaurar.

    Nota:

    La copia de seguridad de la base de datos de origen funciona normalmente; no se ve afectada por las instantáneas de base de datos.

  • El rendimiento se ve reducido debido al aumento de E/S en la base de datos de origen, lo cual ocurre como resultado de la operación de copia en escritura hacia la instantánea cada vez que se actualiza una página.

  • Los archivos no se pueden eliminar de la base de datos de origen ni de las instantáneas.

Limitaciones de las instantáneas de base de datos

Las limitaciones siguientes se aplican a las instantáneas de base de datos:

  • Se debe crear una instantánea de base de datos y permanecer en la misma instancia del servidor que la base de datos de origen.

  • Las instantáneas de base de datos siempre funcionan en una base de datos completa.

  • Las instantáneas de base de datos dependen de la base de datos de origen y no son almacenamiento redundante. No protegen contra errores de disco ni contra otros tipos de daños. Por lo tanto, el uso de instantáneas de base de datos para revertir una base de datos no es un sustituto de la estrategia de copia de seguridad y restauración. La realización de todas las copias de seguridad programadas sigue siendo esencial. Si debe restaurar la base de datos de origen al momento en que creó una instantánea de base de datos, implemente una directiva de copia de seguridad que le permita hacerlo.

  • Cuando una página que se actualiza en la base de datos de origen se inserta en una instantánea, si la instantánea se queda sin espacio en disco o encuentra algún otro error, la instantánea se vuelve sospechosa y debe eliminarse.

  • Las instantáneas son de solo lectura. Puesto que son de solo lectura, no se pueden actualizar. Por lo tanto, no se espera que las instantáneas de base de datos sean viables después de una actualización.

  • Se prohíben las instantáneas de las bases de datos model, master y tempdb.

  • No se puede cambiar ninguna de las especificaciones de los archivos de instantáneas de base de datos.

  • No se pueden quitar archivos de una instantánea de base de datos.

  • No se pueden realizar copias de seguridad ni restaurar instantáneas de base de datos.

  • No se pueden adjuntar ni desasociar instantáneas de base de datos.

  • No se pueden crear instantáneas de base de datos en el sistema de archivos FAT32 ni en particiones RAW. El sistema de archivos NTFS proporciona los archivos dispersos usados por las instantáneas de base de datos.

  • La indexación de texto completo no se admite en las instantáneas de base de datos. Los catálogos de texto completo no se propagan desde la base de datos de origen.

  • Una instantánea de base de datos hereda las restricciones de seguridad de su base de datos de origen en el momento de la creación de la instantánea. Dado que las instantáneas son de solo lectura, los permisos heredados no se pueden cambiar y los cambios de permisos realizados en el origen no se reflejarán en las instantáneas existentes.

  • Una instantánea siempre refleja el estado de los grupos de archivos en el momento de la creación de la instantánea: los grupos de archivos en línea permanecen en línea y los grupos de archivos sin conexión permanecen sin conexión. Para obtener más información, vea "Instantáneas de base de datos con grupos de archivos sin conexión" más adelante en esta sección.

  • Si una base de datos de origen se convierte en RECOVERY_PENDING, es posible que sus instantáneas de base de datos sean inaccesibles. Una vez resuelto el problema en la base de datos de origen, sus instantáneas deberían volver a estar disponibles.

  • La reversión no es compatible con los grupos de archivos de solo lectura y para los grupos de archivos comprimidos. Se produce un error en los intentos de revertir una base de datos que contenga cualquiera de estos tipos de grupos de archivos.

  • En una configuración de trasvase de registros, las instantáneas de base de datos solo se pueden crear en la base de datos principal, no en una base de datos secundaria. Si cambia los roles entre la instancia de servidor principal y una instancia de servidor secundario, debe quitar todas las instantáneas de base de datos para poder configurar la base de datos principal como una base de datos secundaria.

  • Una instantánea de base de datos no se puede configurar como una base de datos compartida escalable.

  • Los grupos de archivos FILESTREAM no son compatibles con instantáneas de base de datos. Si existen grupos de archivos FILESTREAM en una base de datos de origen, se consideran sin conexión en sus instantáneas de base de datos; y las instantáneas de base de datos no se pueden usar para restaurar la base de datos.

    Nota:

    Una instrucción SELECT que se ejecuta en una instantánea de base de datos no debe especificar una columna FILESTREAM; De lo contrario, se devolverá el siguiente mensaje de error: Could not continue scan with NOLOCK due to data movement.

  • Cuando faltan estadísticas en una instantánea de solo lectura o están obsoletas, el motor de base de datos crea y mantiene estadísticas temporales en tempdb. Para más información, consulte Estadísticas.

Requisitos de espacio en disco

Las instantáneas de base de datos consumen espacio en disco. Si una instantánea de base de datos se queda sin espacio en disco, se marca como sospechosa y debe quitarse. (Sin embargo, la base de datos de origen no se ve afectada; las acciones en ella continúan normalmente). Sin embargo, en comparación con una copia completa de una base de datos, las instantáneas son muy eficientes en el espacio. Una instantánea solo requiere suficiente almacenamiento para las páginas que cambian durante su vida útil. Por lo general, las instantáneas se conservan durante un tiempo limitado, por lo que su tamaño no es un problema importante.

Sin embargo, cuanto más tiempo mantenga una instantánea, es más probable que consuma el espacio disponible. El tamaño máximo al que puede crecer un archivo disperso es el tamaño del archivo de base de datos de origen correspondiente en el momento de la creación de la instantánea.

Si una instantánea de base de datos se queda sin espacio en disco, se debe eliminar (quitar).

Nota:

Excepto en el caso del espacio de archivos, una instantánea de base de datos consume aproximadamente tantos recursos como una base de datos.

Instantáneas de bases de datos con grupos de archivos sin conexión

Los grupos de archivos sin conexión de la base de datos de origen afectan a las instantáneas de base de datos al intentar realizar cualquiera de las siguientes acciones:

  • Creación de una instantánea

    Cuando una base de datos de origen tiene uno o varios grupos de archivos sin conexión, la creación de instantáneas se realiza correctamente con los grupos de archivos sin conexión. Los archivos dispersos no se crean para los grupos de archivos sin conexión.

  • Desconectar un grupo de archivos

    Puede desconectar un archivo en la base de datos de origen. Sin embargo, el grupo de archivos permanece en línea en las instantáneas de base de datos si estaba en línea cuando se creó la instantánea. Si los datos consultados han cambiado desde la creación de instantáneas, se podrá acceder en la instantánea a la página de datos original. Sin embargo, es probable que las consultas que utilizan la instantánea, al intentar acceder a datos no modificados en el grupo de archivos, generen errores de entrada/salida (E/S).

  • Poner un grupo de archivos en línea

    No se puede poner un grupo de archivos en línea en una base de datos que tenga instantáneas de base de datos. Si un grupo de archivos está sin conexión en el momento de la creación de instantáneas o se deja sin conexión mientras existe una instantánea de base de datos, el grupo de archivos permanece sin conexión. Esto se debe a que devolver un archivo en línea implica restaurarlo, lo que no es posible si existe una instantánea de base de datos en la base de datos.

  • Reversión de la base de datos de origen a la instantánea

    Revertir una base de datos de origen a una instantánea de base de datos requiere que todos los grupos de archivos estén en línea, excepto los grupos de archivos que estaban sin conexión cuando se creó la instantánea.

Tareas relacionadas

Véase también

Reflejo e instantáneas de base de datos (SQL Server)