Gerenciar partições para uma publicação de mesclagem com filtros parametrizados

Aplica-se a:SQL Server

Este tópico descreve como gerenciar partições para uma publicação de mesclagem com filtros com parâmetros no SQL Server usando o SQL Server Management Studio, o Transact-SQL ou o RMO (Replication Management Objects). Filtros de linha com parâmetros podem ser usados para gerar partições não sobrepostas. Essas partições podem ser restringidas de forma que só uma assinatura receba uma determinada partição. Nesses casos, um grande número de assinantes resultará em um grande número de partições, que por sua vez, exige um número igual de instantâneos particionados. Para obter mais informações, consulte Filtros de linha com parâmetros.

Neste tópico

Antes de começar

Recomendações

  • Se você fizer um script de topologia de replicação, o que é recomendado, os scripts de publicação contêm as chamadas de procedimento armazenado para criar partições de dados. O script fornece uma referência para as partições criadas e um modo para recriar uma ou mais partições, caso seja necessário. Para obter mais informações, consulte Scripting Replication.

  • Quando uma publicação tiver filtros com parâmetros que geram assinaturas com partições não sobrepostas ou se uma assinatura específica estiver perdida e necessitar de nova criação, faça o seguinte: remova a partição que estava com assinatura, recrie a assinatura e, em seguida, recrie a partição. Para obter mais informações, consulte Filtros de linha com parâmetros. A replicação gera scripts de criação para as partições de Assinante existentes quando um script de criação de publicação é gerado. Para obter mais informações, consulte Scripting Replication.

Como usar o SQL Server Management Studio.

Gerencie as partições na página Partições de dados da caixa de diálogo Propriedades da Publicação – <Publicação>. Para obter mais informações sobre como acessar essa caixa de diálogo, consulte View and Modify Publication Properties. Nessa página você pode: criar e excluir partições, permitir que Assinantes iniciem a geração e entrega de instantâneo, gerar instantâneos para uma ou mais partições e limpar instantâneos.

Para criar uma partição

  1. Na página Partições de Dados da caixa de diálogo Propriedades da Publicação – <Publication>, clique em Adicionar.

  2. Na caixa de diálogo Adicionar Partição de Dados coloque o valor para HOST_NAME() e/ou o valor SUSER_SNAME() associado com a partição que você quer criar.

  3. Especifique, opcionalmente, um cronograma para atualizar instantâneos:

    1. Selecione Agendar o Snapshot Agent para que esta partição seja executada no(s) seguinte(s) horário(s):

    2. Aceite o cronograma padrão para atualizar instantâneos ou clique em Alterar para especificar um cronograma diferente.

  4. Selecione OK.

Para excluir uma partição

  1. Na página Partições de Dados , selecione uma partição na grade.

  2. Clique em Excluir.

Para permitir que os Assinantes iniciem a geração e entrega de instantâneo

  1. Na página Partições de Dados selecione Definir automaticamente uma partição e gerar um instantâneo, se necessário, quando um novo Assinante tentar sincronizar.

  2. Selecione OK.

Para gerar um instantâneo para uma partição

  1. Na página Partições de Dados , selecione uma partição na grade.

  2. Clique em Gerar os instantâneos selecionados agora

Limpar um instantâneo para uma partição

  1. Na página Partições de Dados , selecione uma partição na grade.

  2. Clique em Limpar os instantâneos existentes.

Usando o Transact-SQL

Para administrar melhor uma publicação com filtros com parâmetros, você pode enumerar programaticamente as partições existentes que usam procedimentos armazenados de replicação. Você também pode criar e excluir partições existentes. Podem ser obtidas as seguintes informações a respeito das partições existentes:

Enquanto a segunda parte do instantâneo de duas partes pode ser gerada sob solicitação quando uma nova assinatura for incializada, os procedimentos abaixo permitem a você controlar o modo que é gerado o instantâneo e como pré-gerar esse instantâneo quando for mais conveniente. Para obter mais informações, consulte Snapshots for Merge Publications with Parameterized Filters.

Para exibir informações sobre partições existentes

  1. No Publicador do banco de dados de publicação, execute sp_helpmergepartition (Transact-SQL). Especifique o nome da publicação para @publication. (Opcional) Especifique @suser_sname ou @host_name para retornar somente informações baseadas em um único critério de filtragem.

Para definir uma partição nova e gerar um instantâneo particionado novo

  1. No Publicador do banco de dados de publicação, execute sp_addmergepartition (Transact-SQL). Especifique o nome da publicação para @publication e o valor com parâmetros que define a partição para um dos seguintes:

  2. Crie e inicialize o instantâneo com parâmetros para esta partição nova. Para obter mais informações, consulte Criar um instantâneo para uma publicação de mesclagem com filtros com parâmetros.

Para excluir uma partição

  1. No Publicador do banco de dados de publicação, execute sp_dropmergepartition (Transact-SQL). Especifique o nome da publicação para @publication e o valor com parâmetros que define a partição para um dos seguintes:

    Isso também remove o trabalho de instantâneo e qualquer arquivo de instantâneo para a partição.

Usando o RMO (Replication Management Objects)

Para gerenciar melhor uma publicação com filtros com parâmetros, você pode criar programaticamente novas partições de Assinante, enumerar as partições de Assinante existentes e excluir partições de Assinante usando RMO (Replication Management Objects). Para obter informações sobre como criar partições de Assinante, consulte Criar um instantâneo para uma publicação de mesclagem com filtros com parâmetros. As informações a seguir a respeito das partições existentes podem ser obtidas:

  • A função do valor e da filtragem sobre a qual a partição está baseada.

  • O nome do trabalho que gera um instantâneo com parâmetros para o Assinante.

  • A última vez em que um trabalho de instantâneo com parâmetros foi executado.

Para exibir informações sobre partições existentes

  1. Crie uma conexão com o Publicador usando a classe ServerConnection .

  2. Criar uma instância da classe MergePublication. Defina as propriedades Name e DatabaseName para a publicação, e a propriedade ConnectionContext para a ServerConnection criada na etapa 1.

  3. Chame o método LoadProperties para obter as propriedades do objeto. Se esse método retornar false, as propriedades de publicação na etapa 2 foram definidas incorretamente ou a publicação não existe.

  4. Chame o método EnumMergePartitions e passe o resultado para uma matriz de objetos MergePartition .

  5. Para cada objeto MergePartition na matriz, obtenha as propriedades de interesse.

Para excluir partições existentes

  1. Crie uma conexão com o Publicador usando a classe ServerConnection .

  2. Criar uma instância da classe MergePublication. Defina as propriedades Name e DatabaseName para a publicação, e a propriedade ConnectionContext para a ServerConnection criada na etapa 1.

  3. Chame o método LoadProperties para obter as propriedades do objeto. Se esse método retornar false, as propriedades de publicação na etapa 2 foram definidas incorretamente ou a publicação não existe.

  4. Chame o método EnumMergePartitions e passe o resultado para uma matriz de objetos MergePartition .

  5. Para cada objeto MergePartition na matriz, determine se a partição deve ser excluída. Normalmente, essa decisão se baseia no valor da propriedade DynamicFilterLogin ou da propriedade DynamicFilterHostName .

  6. Chame o método RemoveMergePartition no objeto MergePublication da etapa 2. Passe o objeto MergePartition da etapa 5.

  7. Repita a etapa 6 para cada partição excluída.

Confira também

Parameterized Row Filters
Instantâneos para publicações de mesclagem com filtros parametrizados