Compartilhar via


Adicionar artigos e remover artigos de publicações existentes

Depois que uma publicação é criada, é possível adicionar e remover artigos. Os artigos podem ser adicionados a qualquer momento, mas as ações necessárias para remover artigos dependem do tipo de replicação e quando o artigo é descartado.

Adicionando artigos

Adicionar um artigo envolve: adicionar o artigo à publicação; criar um novo instantâneo para a publicação; sincronizar a assinatura para aplicar o esquema e os dados do novo artigo.

Observação

Se você adicionar um artigo a uma publicação de mesclagem e um artigo existente depender do novo artigo, deverá especificar uma ordem de processamento para ambos os artigos usando o parâmetro @processing_order de sp_addmergearticle e sp_changemergearticle. Considere o seguinte cenário: você publica uma tabela, mas não publica uma função que a tabela referencia. Se você não publicar a função, a tabela não poderá ser criada no Assinante. Quando você adiciona a função à publicação: especifique um valor de 1 para o parâmetro @processing_order de sp_addmergearticle; e especifique um valor de 2 para o parâmetro @processing_order de sp_changemergearticle, especificando o nome da tabela para o parâmetro @article. Essa ordem de processamento garante que você crie a função no assinante antes de criar a tabela que depende dela. Você pode usar números diferentes para cada artigo, desde que o número da função seja menor que o número da tabela.

  1. Adicione um ou mais artigos por meio de um dos seguintes métodos:

  2. Depois de adicionar um artigo a uma publicação, você deve criar um novo snapshot para a publicação (e para todas as partições se for uma publicação de mesclagem com filtros parametrizados). O Agente de Distribuição ou o Agente de Mesclagem copia o esquema e os dados do novo artigo para o Assinante (ele não reinicializa toda a publicação).

  3. Depois que o instantâneo for criado, sincronize a assinatura para copiar o esquema e os dados do novo artigo.

Descartando artigos

Os artigos podem ser removidos de uma publicação a qualquer momento, mas você deve levar em conta os seguintes comportamentos:

  • Remover um artigo de uma publicação não remove o objeto do banco de dados de publicação ou do objeto correspondente do banco de dados de assinatura. Use "DROP <Object>" para remover esses objetos, se necessário. Quando você exclui um artigo relacionado a outros artigos publicados por meio de restrições de chave estrangeira, recomendamos que você remova a tabela no Assinante manualmente ou usando a execução de script sob demanda: especifique um script que inclua as instruções apropriadas de DROP OBJETO<. Para obter mais informações, consulte Executar Scripts Durante a Sincronização (Replicação Transact-SQL Programação).

  • Para publicações de mesclagem com um nível de compatibilidade igual ou superior a 90RTM, os artigos podem ser descartados a qualquer momento, mas um novo instantâneo é necessário. Adicionalmente:

    • Se um artigo for um artigo principal em um filtro de junção ou uma relação de registro lógico, as relações deverão ser removidas primeiro, o que requer reinicialização.

    • Se um artigo tiver o último filtro parametrizado em uma publicação, as assinaturas deverão ser reinicializadas.

  • Para publicações de mesclagem com um nível de compatibilidade inferior a 90RTM, os artigos podem ser descartados sem considerações especiais antes da sincronização inicial das assinaturas. Se um artigo for removido depois que uma ou mais assinaturas forem sincronizadas, as assinaturas deverão ser descartadas, recriadas e sincronizadas.

  • Para publicações transacionais ou de instantâneo, os artigos podem ser removidos sem considerações especiais antes da criação de assinaturas. Se um artigo for removido após a criação de uma ou mais assinaturas, as assinaturas deverão ser descartadas, recriadas e sincronizadas. Para obter mais informações sobre como remover assinaturas, consulte Assinar publicações e sp_dropsubscription (Transact-SQL). sp_dropsubscription permite que você remova um único artigo da assinatura em vez de toda a assinatura.

  1. Remover um artigo de uma publicação envolve retirar o artigo e criar um novo instantâneo para a publicação. Remover um artigo invalida o instantâneo atual; portanto, um novo instantâneo deve ser criado.

  2. Depois que um artigo é removido de uma publicação, você deve criar um novo instantâneo para a publicação (e todas as partições caso se trate de uma publicação de mesclagem com filtros parametrizados).

Conforme observado acima, em alguns casos, a remoção de um artigo exige que as assinaturas sejam descartadas, recriadas e sincronizadas. Para obter mais informações, consulte Assinar publicações e Sincronizar dados.

Consulte Também

Publicar dados e objetos de banco de dados
Reinicializar assinaturas
Fazer alterações de esquema em bancos de dados de publicação