Consideraciones para actualizar las bases de datos replicadas

SQL Server 2008 admite la actualización de bases de datos replicadas desde versiones anteriores de SQL Server; no es necesario detener la actividad en otros nodos mientras se actualiza un nodo. Asegúrese de cumplir las reglas relativas a la versión admitida en una topología:

  • SQL Server 2000 Service Pack 3 (SP3) es la versión mínima requerida para participar en una topología de replicación con SQL Server 2008. No hay ninguna versión mínima requerida si se utiliza SQL Server 2005.

  • Un distribuidor puede ser de cualquier versión siempre que ésta sea mayor o igual que la versión del publicador (en muchos casos el distribuidor es la misma instancia que el publicador).

  • Un publicador puede ser de cualquier versión siempre que ésta sea menor o igual que la versión del distribuidor.

  • La versión del suscriptor depende del tipo de publicación:

    • Un suscriptor de una publicación transaccional puede ser de cualquiera de las dos versiones del publicador. Por ejemplo, un publicador de SQL Server 2000 en ejecución puede tener suscriptores de SQL Server 2008, y un publicador de SQL Server 2008 puede tener suscriptores de SQL Server 2000.

    • Un suscriptor de una publicación de mezcla puede ser de cualquier versión menor o igual que la versión del publicador.

[!NOTA]

Este tema se encuentra disponible en la documentación de la Ayuda del programa de instalación y en los Libros en pantalla de SQL Server. Los vínculos con temas que aparecen en negrita en la documentación de la Ayuda del programa de instalación hacen referencia a temas que sólo se encuentran disponibles en los Libros en pantalla.

Ejecutar el Agente de registro del LOG para la replicación transaccional antes de la actualización

Antes de actualizar a SQL Server 2008, debe asegurarse de que el Agente de registro del LOG haya procesado todas las transacciones confirmadas en las tablas publicadas. Para asegurarse de que se han procesado todas las transacciones, siga estos pasos para cada base de datos que contenga publicaciones transaccionales:

  1. Asegurarse de que el Agente de registro del LOG se está ejecutando para la base de datos. De forma predeterminada, el agente se ejecuta sin interrupción.

  2. Detenga la actividad de usuario en las tablas publicadas.

  3. Deje tiempo para que el Agente de registro del LOG copie las transacciones en la base de datos de distribución y, a continuación, detenga el agente.

  4. Ejecute sp_replcmds para comprobar que se han procesado todas las transacciones. El conjunto de resultados de este procedimiento debe estar vacío.

  5. Ejecute sp_replflush para cerrar la conexión de sp_replcmds.

  6. Realice la actualización del servidor a SQL Server 2008.

  7. Reinicie el Agente SQL Server y el Agente de registro del LOG si no se inician automáticamente después de la actualización.

Ejecutar agentes para la replicación de mezcla después de la actualización

Después de la actualización, ejecute el Agente de instantáneas de cada publicación de mezcla y el Agente de mezcla de cada suscripción para actualizar los metadatos de la replicación. No tiene que aplicar la nueva instantánea porque no es necesaria para reinicializar las suscripciones. Los metadatos de suscripción se actualizan la primera vez que el Agente de mezcla se ejecuta tras la actualización. Esto significa que la base de datos de suscripciones puede permanecer en línea y activa durante la actualización del publicador.

La replicación de mezcla almacena metadatos de publicación y suscripción en un determinado número de tablas del sistema en las bases de datos de publicaciones y suscripciones. La ejecución del Agente de instantáneas actualiza los metadatos de publicación y la ejecución del Agente de mezcla actualiza los metadatos de suscripción. Sólo es necesaria para generar una instantánea de publicación. Si una publicación de mezcla utiliza filtros con parámetros, cada partición también tendrá una instantánea. No es necesario actualizar estas instantáneas con particiones. (En SQL Server 2000, los filtros con parámetros se denominaban filtros dinámicos y las instantáneas con particiones se denominaban instantáneas dinámicas).

Ejecute los agentes desde SQL Server Management Studio, el Monitor de replicación o la línea de comandos. Para obtener más información sobre la ejecución del Agente de instantáneas, vea los siguientes temas:

Para obtener más información sobre la ejecución del Agente de mezcla, vea los siguientes temas:

Después de actualizar SQL Server en una topología que utiliza la replicación de mezcla, cambie el nivel de compatibilidad de publicación de todas las publicaciones si desea utilizar nuevas características. Para obtener más información, vea Usar varias versiones de SQL Server en una topología de replicación.

Actualizar a Standard Edition, Workgroup Edition o Express Edition

Antes de actualizar de una edición de SQL Server 2008 a otra, compruebe que las funciones que actualmente utiliza son compatibles con la edición a la que desea actualizar. Para obtener más información, vea la sección "Características de replicación de SQL Server 2008" en el tema Características compatibles con las ediciones de SQL Server 2008.

Nuevo modelo de seguridad del agente de replicación

En las versiones de SQL Server anteriores a SQL Server 2005, los agentes se ejecutaban, de manera predeterminada, en el contexto de la cuenta de servicio del Agente SQL Server. SQL Server 2005 introdujo un control exhaustivo de cada cuenta en la que los agentes de replicación se ejecutan y realizan conexiones integradas de Windows a bases de datos y otros recursos; se puede especificar una cuenta diferente para cada agente. Para obtener más información, vea Seguridad y protección (replicación) y Modelo de seguridad del Agente de replicación.

El nuevo modelo de seguridad presenta las siguientes implicaciones al actualizar y ejecutar SQL Server 2000 en una topología:

  • Los scripts de replicación creados en SQL Server 2000 deben actualizarse para SQL Server 2008 y aprovechar así las mejoras de seguridad. Para obtener más información, vea Cómo actualizar scripts de replicación (programación de la replicación con Transact-SQL).

  • Un distribuidor o un suscriptor actualizado de SQL Server 2000 a SQL Server 2008 sigue ejecutándose en la cuenta del Agente SQL Server y es probable que tenga más privilegios de los que necesita. Después de actualizar se recomienda especificar cuentas independientes para los agentes con los mínimos privilegios correctos. Para especificar cuentas independientes:

    1. Incluya la publicación y las suscripciones en el script.

    2. Realice cambios en los scripts. Para obtener más información, vea Cómo actualizar scripts de replicación (programación de la replicación con Transact-SQL).

    3. Elimine la publicación y las suscripciones. Para obtener más información, vea Publicar datos y objetos de base de datos y Suscribirse a publicaciones.

    4. Vuelva a crearlas utilizando los scripts modificados.

    Para obtener más información sobre los privilegios necesarios para los agentes, vea Modelo de seguridad del Agente de replicación; para obtener información sobre cómo administrar inicios de sesión y contraseñas, vea Administrar inicios de sesión y contraseñas en la replicación. Las nuevas configuraciones de replicación creadas después de una actualización necesitan configuración específica de cuentas en cada agente de replicación.

    [!NOTA]

    Los agentes configurados para utilizar la autenticación de SQL Server en conexiones de base de datos local se cambian para que utilicen la autenticación de Windows. Las conexiones locales son aquellas realizadas por un agente en una instancia de SQL Server que se ejecuta en el mismo equipo que el agente. Por ejemplo, el Agente de mezcla de una suscripción de extracción se ejecuta en el suscriptor, por lo tanto las conexiones que realice en el suscriptor serán conexiones locales.

  • Los participantes de una topología de replicación que ejecute versiones anteriores de SQL Server conservarán el modelo anterior de seguridad de replicación sin cambios. Por ejemplo:

    • Una suscripción de extracción a un suscriptor que ejecuta SQL Server 2000 no utiliza el nuevo modelo de seguridad porque el Agente de mezcla o el Agente de distribución se crean en el suscriptor.

    • Una suscripción de inserción de un distribuidor que ejecuta SQL Server 2008 en un suscriptor que ejecuta SQL Server 2000 utiliza el nuevo modelo de seguridad porque el Agente de mezcla o el Agente de distribución se crean en el distribuidor.

    • Un publicador que ejecuta SQL Server 2000 con un distribuidor que ejecuta SQL Server 2008 no utiliza el nuevo modelo de seguridad (para el Agente de instantáneas, el Agente de registro del LOG o el Agente de lectura de cola) porque los agentes se crean en el contexto de la base de datos de publicación.

  • SQL Server 2005 y SQL Server 2008 utilizan el mismo modelo de seguridad.

Sincronización Web para replicación de mezcla

La opción de sincronización web para replicación de mezcla requiere que se copie el archivo Escucha de replicación de SQL Server (replisapi.dll) en el directorio virtual del servidor de Internet Information Services (IIS) que se usa para la sincronización. Cuando se configura la sincronización Web, se copia el archivo en el directorio virtual mediante el Asistente para configurar la sincronización Web. Si se actualizan los componentes de SQL Server instalados en el servidor IIS, debe copiarse manualmente el archivo replisapi.dll del directorio COM en el directorio virtual del servidor IIS. Para obtener más información sobre cómo configurar la sincronización Web, vea Configurar la sincronización Web.

Restaurar una base de datos replicada a partir de una versión anterior

Para asegurarse de que la configuración de replicación se conserva al restaurar una copia de seguridad de una base de datos replicada a partir de una versión anterior, restaure en un servidor y una base de datos con los mismos nombres que el servidor y la base de datos donde se realizó la copia de seguridad.