Reflejo e instantáneas de la base de datos

Se puede aprovechar una base de datos reflejada de la cual se está realizando el mantenimiento con fines de disponibilidad para descargar informes. A fin de utilizar una base de datos reflejada para informes, puede crear una instantánea de la base de datos en la base de datos reflejada y dirigir las solicitudes de conexión de cliente a la instantánea más reciente. Una instantánea de base de datos es una instantánea estática coherente con las transacciones y de sólo lectura de la base de datos de origen tal como existía en el momento de la creación de la instantánea. Para crear la instantánea de una base de datos en una base de datos reflejada, la base de datos debe hallarse en estado de reflejo sincronizado.

A diferencia de la base de datos reflejada, los clientes pueden obtener acceso a las instantáneas de base de datos. Mientras el servidor reflejado se comunique con el servidor principal, podrá dirigir clientes de informe para que se conecten a una instantánea. Observe que, puesto que las instantáneas de bases de datos son estáticas, no hay nuevos datos disponibles. Para hacer que los datos relativamente recientes estén disponibles para los usuarios, deberá crear una nueva instantánea de base de datos de forma periódica y hacer que las aplicaciones dirijan las conexiones entrantes de cliente a la instantánea más reciente.

Una nueva instantánea de base de datos está prácticamente vacía, pero crece con el tiempo a medida que se actualizan por primera vez más y más páginas de la base de datos. Debido a que las instantáneas de base de datos crecen incrementalmente de esta forma, cada instantánea consume tantos recursos como una base de datos normal. En función de las configuraciones del servidor principal y el servidor reflejado, un número excesivo de instantáneas de base de datos en una base de datos reflejada puede reducir el rendimiento de la base de datos principal. Por lo tanto, se recomienda mantener sólo algunas instantáneas relativamente recientes en las bases de datos reflejadas. Por lo general, tras la creación de una nueva instantánea, deberá redirigir las consultas entrantes a esta nueva instantánea y quitar la instantánea anterior una vez finalizadas las consultas en curso.

Nota

Para obtener más información acerca de las instantáneas de base de datos, vea Instantáneas de base de datos.

Si se produce la conmutación de roles, se reinicia la base de datos junto con sus instantáneas y se desconectan los usuarios de forma temporal. Posteriormente, las instantáneas de bases de datos permanecen en la instancia de servidor en la que se crearon (que es ahora la nueva base de datos principal). Los usuarios podrán seguir utilizando estas instantáneas tras la conmutación por error. No obstante, esto aumenta la carga del nuevo servidor principal. Si el rendimiento es importante en el entorno, se recomienda crear una instantánea en la nueva base de datos reflejada cuando esté disponible, redirigir los clientes a la nueva instantánea y quitar todas las instantáneas de la base de datos reflejada anterior.

Nota

Para una solución de informes dedicada que admita la ampliación horizontal, considere la posibilidad de utilizar la duplicación. Para obtener más información, vea Almacenamiento de datos e informes.

Ejemplo

En este ejemplo se crean instantáneas en una base de datos reflejada.

Suponga que la base de datos de una sesión de creación de reflejo de la base de datos es AdventureWorks2008R2. En este ejemplo se crean tres instantáneas de base de datos en la copia reflejada de la base de datos AdventureWorks2008R2, que reside en la unidad F. Las instantáneas se denominan AdventureWorks2008R2_0600, AdventureWorks2008R2_1200 y AdventureWorks2008R2_1800 para indicar su hora de creación aproximada.

  1. Cree la primera instantánea de base de datos en el reflejo de AdventureWorks2008R2.

    CREATE DATABASE AdventureWorks2008R2_0600
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks2008R2_0600.SNP')
       AS SNAPSHOT OF AdventureWorks2008R2;
    
  2. Cree la segunda instantánea de base de datos en el reflejo de AdventureWorks2008R2. Los usuarios que aún utilicen AdventureWorks2008R2_0600 podrán seguir utilizándola.

    CREATE DATABASE AdventureWorks2008R2_1200
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWork2008R2s_1200.SNP')
       AS SNAPSHOT OF AdventureWorks2008R2;
    

    En este momento, se podrán dirigir mediante programación las nuevas conexiones de cliente a la instantánea más reciente.

  3. Cree la tercera instantánea en el reflejo de AdventureWorks2008R2. Los usuarios que aún utilicen AdventureWorks2008R2_0600 o AdventureWorks2008R2_1200 podrán seguir utilizándolas.

    CREATE DATABASE AdventureWorks2008R2_1800
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks2008R2_1800.SNP')
        AS SNAPSHOT OF AdventureWorks2008R2;
    

    En este momento, se podrán dirigir mediante programación las nuevas conexiones de cliente a la instantánea más reciente.

Para crear una instantánea de base de datos

Para ver una instantánea de base de datos

Para eliminar una instantánea de base de datos