Como gerenciar partições para uma publicação de mesclagem com filtros com parâmetros (Programação Transact-SQL de replicação)
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 Filtro de linha com parâmetros. 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:
Como uma partição é filtrada (usando SUSER_SNAME (Transact-SQL) ou HOST_NAME (Transact-SQL)).
O nome do trabalho que gera um instantâneo particionado.
A última vez que um trabalho de instantâneo particionado foi executado.
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 Instantâneos para publicações de mesclagem com filtros com parâmetros.
Observação |
---|
Quando uma publicação tiver filtros com parâmetros que geram assinaturas com partições não sobrepostas, você deve fazer o seguinte caso uma assinatura específica esteja perdida e necessite ser recriada: remova a partição que estava com assinatura, recrie a assinatura e, em seguida, recrie a partição. A replicação gera scripts de criação para as partições de Assinante existentes quando é gerado um script de criação de publicação. Para obter mais informações, consulte Replicação de script. |
Para exibir informações sobre partições existentes
- 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
No Publicador do banco de dados de publicação, execute sp_addmergepartition (Transact-SQL). Especifique o nome da publicação para @publisher e o valor com parâmetros que define a partição para um dos seguintes:
@suser_sname - quando o filtro com parâmetros estiver definido pelo valor retornado por SUSER_SNAME (Transact-SQL).
@host_name - quando o filtro com parâmetros estiver definido pelo valor retornado por HOST_NAME (Transact-SQL).
Crie e inicialize o instantâneo com parâmetros para esta partição nova. Para obter mais informações, consulte Como criar um instantâneo para uma publicação de mesclagem com filtros com parâmetros (Programação Transact-SQL de replicação).
Para excluir uma partição
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:
@suser_sname - quando o filtro com parâmetros estiver definido pelo valor retornado por SUSER_SNAME (Transact-SQL).
@host_name - quando o filtro com parâmetros estiver definido pelo valor retornado por HOST_NAME (Transact-SQL).
Isso também remove o trabalho de instantâneo e qualquer arquivo de instantâneo para a partição.
Consulte também