Replicando tabelas e índices particionados

O particionamento facilita o gerenciamento de grandes tabelas ou índices, permitindo o acesso e o gerenciamento de subconjuntos de dados de forma rápida e eficaz, ao mesmo tempo em que mantém a integridade geral da coleção de dados. Para obter mais informações, consulte Tabelas e índices particionados. A replicação dá suporte ao particionamento fornecendo um conjunto de propriedades que especificam como tabelas e índices particionados devem ser tratados.

Propriedades de artigo para replicação transacional e de mesclagem

A tabela a seguir lista os objetos que são usados para particionar dados.

Objeto

Criado com

Tabela ou índice particionado

CREATE TABLE ou CREATE INDEX

Função de partição

CREATE PARTITION FUNCTION

Esquema de partição

CREATE PARTITION SCHEME

O primeiro conjunto de propriedades relacionadas ao particionamento são as opções de esquema de artigo que determinam se os objetos de particionamento devem ser copiados para o Assinante. Essas opções de esquema podem ser definidas das seguintes formas:

A replicação copia objetos para o Assinante durante a sincronização inicial. Se o esquema de partição usar grupos de arquivo diferentes do grupo de arquivo PRIMARY, esses grupos deverão existir no Assinante antes da sincronização inicial.

Depois que o Assinante é inicializado, as alterações de dados são propagadas para o Assinante e aplicadas nas partições apropriadas. Porém, as alterações no esquema de partição não são suportadas. A replicação transacional e de mesclagem não dão suporte aos seguintes comandos: ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME ou a instrução REBUILD WITH PARTITION de ALTER INDEX. A replicação de mesclagem não suporta o comando SWITCH PARTITION de ALTER TABLE, mas a replicação transacional dá suporte a esse comando, conforme descrito na seção a seguir.

Suporte de replicação para alternância de partição

Um dos principais benefícios do particionamento de tabela é a possibilidade de mover subconjuntos de dados entre partições com rapidez e eficiência. Os dados são movidos com o comando SWITCH PARTITION. Para obter mais informações, consulte Transferindo dados de forma eficaz usando a alternância de partição. Por padrão, quando uma tabela é habilitada para replicação, as operações SWITCH PARTITION são bloqueadas pelos seguintes motivos:

  • Se os dados forem movidos para ou de uma tabela que existe no Publicador, mas não existe no Assinante, ambos ficarão inconsistentes entre si. Esse problema ocorre normalmente quando os dados são movidos para ou de uma tabela de preparação.

  • Se o Assinante tiver uma definição diferente para a tabela particionada da definição do Publicador, o Distribution Agent falhará ao tentar aplicar as alterações no Assinante. Isso também é um problema para Assinantes do SQL Server 2000, pois o SQL Server 2000 não dá suporte a tabelas particionadas.

Apesar destes possíveis problemas, a alternância de partição pode ser habilitada para replicação transacional. Antes de habilitá-la, verifique se todas as tabelas que estão envolvidas na alternância de partição existem no Publicador e no Assinante e verifique se as definições de tabela e de partição são iguais.

Habilitando a alternância de partição

As propriedades a seguir para publicações transacionais permitem que os usuários controlem o comportamento da alternância de partição em um ambiente replicado:

  • @allow_partition_switch, quando definido como true, SWITCH PARTITION pode ser executado no banco de dados de publicação.

  • @replicate_partition_switch determina se a instrução SWITCH PARTITION DDL deve ser replicada para Assinantes. Esta opção só é válida quando @allow_partition_switch é definido como true.

Você pode definir essas propriedades usando sp_addpublication quando a publicação é criada ou usando sp_changepublication depois da criação da publicação. Como observado anteriormente, a replicação de mesclagem não dá suporte à alternância de partição. Para executar SWITCH PARTITION em uma tabela que é habilitada para replicação de mesclagem, remova a tabela da publicação.