Compartilhar via


Replicar tabelas e índices particionados

O particionamento torna tabelas ou índices grandes mais gerenciáveis porque o particionamento permite que você gerencie e acesse subconjuntos de dados de forma rápida e eficiente e mantenha a integridade de uma coleta de dados ao mesmo tempo. Para saber mais, confira Partitioned Tables and Indexes. A replicação dá suporte ao particionamento fornecendo um conjunto de propriedades que especificam como tabelas e índices particionados devem ser tratados.

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

A tabela a seguir lista os objetos usados para particionar dados.

Objeto Criado usando
Tabela ou índice particionado CRIAR TABELA ou CRIAR ÍNDICE
Função de partição CRIAR FUNÇÃO DE PARTIÇÃO
Esquema de partição CRIAR ESQUEMA DE PARTIÇÃO

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 maneiras:

  • Na página Propriedades do Artigo do Assistente para Nova Publicação ou na caixa de diálogo Propriedades da Publicação. Para copiar os objetos listados na tabela anterior, especifique um valor para true as propriedades Copiar esquemas de particionamento de tabela e copiar esquemas de particionamento de índice. Para obter informações sobre como acessar a página Propriedades do Artigo , consulte Exibir e modificar propriedades de publicação.

  • Usando o parâmetro schema_option de um dos seguintes procedimentos armazenados:

    Para copiar os objetos listados na tabela anterior, especifique os valores de opção de esquema apropriados. Para obter informações sobre como especificar opções de esquema, consulte Especificar Opções de Esquema.

O processo de replicação copia objetos para o Assinante durante a sincronização inicial. Se o esquema de partição usar grupos de arquivos diferentes do grupo de arquivos PRIMARY, esses grupos de arquivos 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 às partições apropriadas. No entanto, não há suporte para alterações no esquema de partição. A replicação transacional e de mesclagem não dá suporte à replicação dos seguintes comandos: ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME ou a instrução REBUILD WITH PARTITION de ALTER INDEX. As alterações associadas a elas não serão replicadas automaticamente para o Assinante. É responsabilidade do usuário fazer alterações semelhantes manualmente no Assinante.

Suporte à replicação para troca de partição

Um dos principais benefícios do particionamento de tabela é a capacidade de mover de forma rápida e eficiente subconjuntos de dados entre partições. Os dados são movidos usando o comando SWITCH PARTITION. Por padrão, quando uma tabela está habilitada para replicação, as operações SWITCH PARTITION são bloqueadas pelos seguintes motivos:

  • Se os dados forem movidos para dentro ou para fora de uma tabela que existe no Publicador, mas não existem no Assinante, o Publicador e o Assinante poderão se tornar inconsistentes uns com os outros. Esse problema normalmente ocorre quando os dados são movidos para dentro ou para fora de uma tabela de preparo.

  • Se o Assinante tiver uma definição diferente para a tabela particionada que o Publicador, o Agente de Distribuição falhará quando tentar aplicar alterações no Assinante.

Apesar desses possíveis problemas, a mudança de partição pode ser habilitada para replicação transacional. Antes de habilitar a troca de partição, certifique-se de que todas as tabelas envolvidas existam tanto no Publicador quanto no Assinante e também que as definições de tabela e partição sejam idênticas.

Quando as partições têm exatamente o mesmo esquema de partição nos editores e assinantes, você pode ativar allow_partition_switch juntamente com replication_partition_switch, fazendo com que apenas a instrução de troca de partição seja replicada para o assinante. Você também pode ativar allow_partition_switch sem replicar o DDL. Isso é útil no caso em que você deseja distribuir meses antigos da partição, mas manter a partição replicada em vigor por mais um ano para fins de backup no assinante.

Se você habilitar a alternância de partição no SQL Server 2008 R2 por meio da versão atual, talvez você também precise de operações de divisão e mesclagem em um futuro próximo. Antes de executar uma operação de divisão ou mesclagem em uma tabela replicada, verifique se a partição em questão não tem nenhum comando replicado pendente. Você também deve garantir que nenhuma operação DML seja executada na partição durante as operações de divisão e mesclagem. Se houver transações que o leitor de log não tenha processado ou se as operações DML forem executadas em uma partição de uma tabela replicada enquanto uma operação de divisão ou mesclagem for executada (envolvendo a mesma partição), isso poderá levar a um erro de processamento com o agente de leitor de log. Para corrigir o erro, pode exigir uma re-inicialização da assinatura.

Aviso

Você não deve habilitar a alternância de partição para publicações ponto a ponto devido à coluna oculta que é usada para detectar e resolver conflitos.

Habilitando a comutação de partição

As seguintes propriedades 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 DDL SWITCH PARTITION deve ser replicada para Assinantes. Essa opção é válida somente quando @allow_partition_switch é definido como true.

Você pode definir essas propriedades usando sp_addpublication quando a publicação é criada ou usando sp_changepublication após a criação da publicação. Conforme observado anteriormente, a replicação de mesclagem não dá suporte à troca de partição. Para executar SWITCH PARTITION em uma tabela habilitada para replicação por mesclagem, remova a tabela da publicação.

Consulte Também

Publicar dados e objetos de banco de dados