Replicar tablas e índices con particiones

La creación de particiones facilita el uso de tablas o índices grandes, ya que permite administrar y tener acceso a subconjuntos de datos de forma rápida y eficaz, y mantener la integridad de una colección de datos al mismo tiempo. Para obtener más información, vea Tablas e índices con particiones. La replicación es compatible con la creación de particiones al proporcionar un conjunto de propiedades que especifican cómo se deben tratar las tablas y los índices con particiones.

Propiedades de artículos para replicación transaccional y de mezcla

En la tabla siguiente se enumeran los objetos que se utilizan para la partición de datos.

Objeto

Se crea utilizando

Tabla o índice con particiones

CREATE TABLE o CREATE INDEX

Función de partición

CREATE PARTITION FUNCTION

Esquema de partición

CREATE PARTITION SCHEME

El primer conjunto de propiedades relacionadas con la creación de particiones son las opciones de esquema de artículo que determinan si las particiones de los objetos se deben copiar en el suscriptor. Estas opciones de esquema se pueden establecer de varias maneras:

La replicación copia los objetos en el suscriptor durante la sincronización inicial. Si el esquema de partición usa grupos de archivos distintos del archivo de grupos PRIMARY, esos grupos de archivos deben existir en el suscriptor antes de la sincronización inicial.

Una vez inicializado el suscriptor, los cambios de los datos se propagan al suscriptor y se aplican a las particiones adecuadas. Sin embargo, no se admiten cambios en el esquema de partición. Las replicaciones transaccional y de mezcla no admiten los comandos siguientes: ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME, ni la instrucción REBUILD WITH PARTITION de ALTER INDEX. La replicación de mezcla no admite el comando SWITCH PARTITION de ALTER TABLE, pero la replicación transaccional sí lo admite, según se describe en la sección siguiente. La replicación de instantáneas permite los cambios en el esquema de particiones porque la instantánea se reinicializa cada vez que el suscriptor se sincroniza con la publicación.

La replicación de mezcla y transaccional admite un máximo de 1024 particiones por tabla o índice.

Compatibilidad de la replicación con la modificación de particiones

Una de las ventajas principales de crear particiones en una tabla es la posibilidad de mover rápida y eficazmente subconjuntos de datos entre particiones. Los datos se mueven utilizando el comando SWITCH PARTITION. Para obtener más información, vea Transferir datos de forma eficaz con cambios de particiones. De forma predeterminada, cuando en una tabla se habilita la replicación, las operaciones SWITCH PARTITION se bloquean por las razones siguientes:

  • Si los datos se mueven a una tabla o fuera de una tabla que existe en el publicador pero que no existe en el suscriptor, ambos pueden llegar a ser incoherentes entre sí. Este problema se produce normalmente cuando los datos se mueven a o fuera de una tabla de ensayo.

  • Si el suscriptor tiene para la tabla con particiones una definición diferente de la del publicador, se producirá un error en el Agente de distribución cuando intente aplicar los cambios en el suscriptor. Este también es un problema para los suscriptores de SQL Server 2000, porque SQL Server 2000 no admite tablas con particiones.

A pesar de estos posibles problemas, la modificación de particiones puede habilitarse en la replicación transaccional. Antes de habilitar la modificación de particiones, asegúrese de que todas las tablas implicadas en ella existen en el publicador y en el suscriptor, y de que la tabla y las definiciones de partición son las mismas.

Cuando las particiones tienen el mismo esquema de partición en los publicadores y en los suscriptores, puede activar allow_partition_switch junto con replication_partition_switch, que solo replicará la instrucción de modificación de partición en el suscriptor. También puede activar allow_partition_switch sin replicar el DDL. Esto es útil cuando se desean descargar los datos de meses antiguos de la partición, pero mantener la partición replicada durante otro año para disponer de una copia de seguridad en el suscriptor.

Nota de advertenciaAdvertencia

No debe habilitar la modificación de partición para publicaciones punto a punto, debido a la columna oculta que se usa para detectar y resolver el conflicto.

Habilitar la modificación de particiones

Las propiedades siguientes de las publicaciones transaccionales permiten a los usuarios controlar el comportamiento de la modificación de particiones en un entorno replicado:

  • @allow_partition_switch; cuando se establece en true, SWITCH PARTITION se puede ejecutar en la base de datos de publicación.

  • @ replicate_partition_switch determina si la instrucción SWITCH PARTITION de DDL se debe replicar en los suscriptores. Esta opción solo es válida cuando @allow_partition_switch se establece en true.

Puede establecer estas propiedades utilizando sp_addpublication cuando se crea la publicación, o usando sp_changepublication después de crearla. Según se indicaba anteriormente, la replicación de mezcla no admite la modificación de particiones. Para ejecutar SWITCH PARTITION en una tabla en la que está habilitada la replicación de mezcla, quite la tabla de la publicación.