Compartir a través de


Cambios de comportamiento en la replicación de SQL Server

En este tema se describen los cambios de comportamiento en la replicación de SQL Server. Los cambios de comportamiento afectan al modo en que las características funcionan o interactúan en SQL Server 2008 en comparación con las versiones anteriores de SQL Server.

Cambios de comportamiento realizados en SQL Server 2005

En esta sección se describen los cambios de comportamiento realizados en las características de replicación de SQL Server 2005.

Cambios de comportamiento que afectan a todos los tipos de replicación

Los siguientes cambios afectan a todos los tipos de replicación.

Característica

Descripción

Modelo de seguridad del agente de replicación

En versiones anteriores de SQL Server, los agentes se ejecutaban, de manera predeterminada, en el contexto de la cuenta de servicio del Agente. SQL Server. SQL Server proporciona ahora un control exhaustivo de cada cuenta bajo la que los agentes de replicación se ejecuten y realicen conexiones integradas de Microsoft Windows en bases de datos y otros recursos, ya que 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. Para obtener información sobre cómo afecta este cambio a la actualización, vea la sección "Nuevo modelo de seguridad del agente de replicación" de Consideraciones para actualizar las bases de datos replicadas y Últimos cambios en la replicación de SQL Server.

Administrador de sincronización de Windows

En las versiones de SQL Server anteriores a SQL Server 2005, la posibilidad de sincronizar suscripciones con el Administrador de sincronización estaba habilitada de manera predeterminada. En SQL Server 2005, debe habilitar esta opción de manera explícita si desea utilizar el Administrador de sincronización. Para obtener más información, vea Cómo sincronizar una suscripción mediante el Administrador de sincronización de Windows (Administrador de sincronización de Windows).

Visor de conflictos de replicación

En SQL Server 2000, el Visor de conflictos de replicación se empaquetaba para redistribución. En SQL Server 2005, el visor no se empaqueta por separado. Para incluir el Visor de conflictos de replicación en una aplicación, debe instalar Microsoft .NET Framework 2.0 en el equipo en el que está implementada la aplicación y copiar una serie de archivos. Para obtener más información, vea la sección sobre otros problemas de actualización de replicación en la Ayuda del Asesor de actualizaciones. Para obtener más información sobre el Asesor de actualizaciones, vea Usar el Asesor de actualizaciones para preparar las actualizaciones.

Cambios en las opciones de esquema

Las opciones de esquema permiten especificar cómo se replican los atributos y los objetos asociados con las tablas, como los índices y las restricciones. El comportamiento de algunas opciones de esquema ha cambiado en SQL Server 2005. En la siguiente sección de este tema se proporciona más información.

Cambios en el comportamiento de las opciones de esquema

En la tabla siguiente se resumen los cambios en las opciones de esquema en SQL Server 2005.

[!NOTA]

Si la opción de esquema 0x8000 estaba establecida en SQL Server 2000, se deshabilita durante la actualización a SQL Server 2005. Para las opciones de esquema 0x10 o 0x40, la replicación puede crear un número mayor de índices en SQL Server 2005 que en SQL Server 2000.

Opción

Comportamiento si la opción está establecida en SQL Server 2000

Comportamiento si la opción está establecida en SQL Server 2005

0x80

Crea una restricción o un índice. Si la opción 0x8000 está también habilitada, se crea la clave principal como una restricción con un índice. Si no está habilitada la opción 0x8000, sólo se crea el índice en la columna de clave principal.

Crea una restricción de clave principal en el suscriptor. Los índices relacionados con la restricción se replican también, incluso si no están habilitadas las opciones 0x10 y 0x40 (estas opciones controlan la creación de índices para otros casos).

0x4000

Crea una restricción o un índice. Si la opción 0x8000 está también habilitada, la restricción única se crea como una restricción con un índice. Si no está habilitada la opción 0x8000, sólo se crea el índice en la columna.

Crea restricciones únicas en el suscriptor. Los índices relacionados con la restricción se replican también, incluso si no están habilitadas las opciones 0x10 y 0x40 (estas opciones controlan la creación de índices para otros casos).

0x8000

Crea restricciones de clave principal y restricciones únicas si están especificadas también las opciones 0x80 o 0x4000. Si no está especificada ninguna de estas opciones, la opción 0x8000 no tiene efecto.

La opción no tiene efecto.

Cambios de comportamiento en la replicación transaccional

Los siguientes cambios afectan a la replicación transaccional.

Característica

Descripción

Propietario de objeto de suscriptor

Cuando utilice el Asistente para nueva publicación de SQL Server 2005 para crear una publicación, el propietario de los objetos creados en el suscriptor establece de manera predeterminada el valor del propietario de los objetos correspondientes del publicador. En versiones anteriores, el propietario no se especificaba durante la creación del objeto en el suscriptor, se establecía de manera predeterminada el propietario asociado con la cuenta del Agente de distribución utilizada para conectarse con el suscriptor. El comportamiento no ha cambiado para el procedimiento almacenado sp_addarticle (Transact-SQL).

Modo de seguridad de suscripciones actualizables

El parámetro @security_mode de sp_link_publication rige la forma en que los desencadenadores de suscripciones de actualización inmediata ejecutan llamadas en el publicador. En SQL Server 2005, las opciones para este parámetro son:

  • 0: utiliza la autenticación de SQL Server usando el nombre de usuario especificado en el procedimiento almacenado como nombre de usuario y contraseña.

  • 1: utiliza el contexto de seguridad (autenticación de SQL Server o autenticación integrada de Windows) del usuario que realiza el cambio en el suscriptor.

  • 2: Utiliza un inicio de sesión del servidor vinculado definido por el usuario.

En versiones anteriores de SQL Server, la opción 0 se utilizaba para especificar una llamada dinámica a procedimiento remoto desde el suscriptor al publicador en lugar de un servidor vinculado.

Cambios de comportamiento en la replicación de mezcla

Los siguientes cambios afectan a la replicación de mezcla.

Característica

Descripción

Niveles de compatibilidad de publicación

En versiones anteriores de SQL Server, el nivel de compatibilidad aumentaba automáticamente si habilitaba una característica que necesitase un nivel superior. En SQL Server 2005, debe establecer manualmente el nivel de compatibilidad en 90RTM antes de habilitar funciones que requieran dicho nivel de compatibilidad. Para obtener más información, vea la sección sobre el nivel de compatibilidad de publicaciones de mezcla en Usar varias versiones de SQL Server en una topología de replicación.

Acciones de compensación

En versiones anteriores de SQL Server, las acciones de compensación se llevaban a cabo si, durante la sincronización, se encontraban errores (como infracciones de restricciones). En algunos casos este comportamiento es deseable, pero en otro puede ser problemático; por ejemplo, un suscriptor configurado incorrectamente que genera un error puede hacer que se deshagan cambios en el publicador y en los demás suscriptores.

En SQL Server 2005, el parámetro @compensate_for_errors de sp_addmergearticle controla si se llevan a cabo acciones de compensación. Cuando se establece en False (valor predeterminado), las acciones de compensación se deshabilitan; no obstante, los errores siguen registrándose y las mezclas posteriores siguen intentando aplicar los cambios. Aunque pueda parecer que los datos de las filas afectadas no son convergentes, en cuanto solucione el error, el cambio se podrá aplicar y los datos convergerán. Cuando esta opción se establece en True, el cambio que no se puede aplicar en un nodo durante la sincronización conduce a acciones de compensación que deshacen el cambio en todos los demás nodos.

NotaNota
Si la tabla de origen de un artículo ya está publicada en otra publicación, el valor de @compensate_for_errors debe ser el mismo en ambos artículos. En suscripciones de extracción en suscriptores que ejecuten SQL Server 2000 8.00.858 y anteriores (lo que incluye el Service Pack 3), seguirán produciéndose acciones de compensación incluso con el parámetro @compensate_for_errors establecido en False.

Tablas de conflictos

En versiones anteriores de SQL Server, la replicación de mezcla creaba una única tabla de conflictos para cada artículo de tabla de una publicación, con un nombre del tipo conflict_<nombreDeArtículo>. En SQL Server 2005, la información se encuentra en dos tablas: MSmerge_conflicts_info y una tabla con un nombre de la forma MSmerge_conflict_<PublicationName>_<ArticleName>.

Limpieza de metadatos basados en la retención

SQL Server 2005 utiliza la limpieza de metadatos basados en la retención, que se inició en SQL Server 2000 Service Pack 1. Los metadatos se eliminan periódicamente de las siguientes tablas del sistema:

  • MSmerge_contents

  • MSmerge_tombstone

  • MSmerge_genhistory

  • Cualquier tabla de imágenes previas, si existiese. Las tablas de imágenes previas existen cuando se ha activado la opción de optimización de sincronización @keep_partition_changes en la publicación (vea la siguiente sección para obtener más información sobre esta opción).

El parámetro @keep_partition_changes

El parámetro @keep_partition_changes estaba establecido de manera predeterminada en False en versiones anteriores de SQL Server, porque hace que se almacenen más datos en el publicador. Ahora se establece en True si el nivel de compatibilidad de la publicación es 90RTM o superior, y el parámetro @use_partition_groups se establece en False. Para obtener más información sobre estas opciones, vea Filtros de fila con parámetros.