Considerações sobre a replicação de mesclagem

Existe um número de considerações pra replicação de mesclagem:

  • A adição de uma coluna uniqueidentifier para as tabelas publicadas.

  • Colunas de carimbo data/hora.

  • Tipos de dados de objeto grande (LOB).

  • Inserção de dados em massa em tabelas publicadas.

  • Nível de compatibilidade da publicação. Para obter mais informações, consulte a seção "Nível de compatibilidade para publicações de mesclagem” em Usando várias versões do SQL Server em uma topologia de replicação.

Adição da coluna uniqueidentifier

A replicação de mesclagem usa uma coluna de identificador exclusibo (GUID globalmente para identificar cada linha durante o processo de replicação de mesclagem. Se uma tabela publicada não tiver uma coluna de uniqueidentifier com a propriedade ROWGUIDCOL e um índice exclusivo, a replicação adicionará uma. Certifique-se de que qualquer instrução SELECT e INSERT que faz referência às tabelas publicadas use as listas de colunas. Se uma tabela não for mais publicada e nem a replicação adicionada à coluna, a coluna será removida. Se a coluna já existia, ela não será removida.

Colunas de carimbo de data/hora

A replicação de mesclagem dá suporte às colunas de carimbo de data/hora. A coluna de carimbo de data/hora é reproduzida, mas os valores literais de carimbo de data/hora não. Os valores de carimbo de data/hora são regenerados quando o instantâneo for aplicado ao Assinante. Como os valores de carimbo data/hora são regenerados no Assinante, as colunas de carimbo data/hora são filtradas ao executar validação de artigo.

Tipos de dados de objeto grande (LOB)

Se uma tabela publicada incluir qualquer LOB, recomendamos que você especifique um valor TRUE para o parâmetro @stream_blob_columns de sp_addmergearticle (Transact-SQL). Se TRUE não estiver especificado, todo o LOB deverá ser criado na memória no Publicador, o qual pode fazer o Publicador executar fora da RAM se o LOB for muito grande.

Observação importanteImportante

A habilitação dessa otimização de memória pode prejudicar o desempenho do Merge Agent durante a sincronização. Esta opção só deve ser usada ao replicar colunas que contêm megabytes de dados.

Atualizações nas colunas text, ntext e image serão replicadas somente se a coluna for explicitamente atualizada por uma instrução UPDATE: a atualização aciona um gatilho que atualiza os metadados, assegurando que a transação seja propagada para outros Assinantes. A utilização somente das operações WRITETEXT e UPDATETEXT não propaga a alteração a outros sites. Se seu aplicativo utilizar WRITETEXT e UPDATETEXT para atualizar as colunas text ou ntext, adicione explicitamente uma instrução fictícia UPDATE depois das operações WRITETEXT ou UPDATETEXT dentro da mesma transação, para acionar o gatilho e, assim, assegurar que a alteração seja propagada para outros sites. Para obter mais informações sobre estes tipos de dados, consulte ntext, text e image (Transact-SQL).

ObservaçãoObservação

Recomendamos que você use os tipos de dados varchar(max), nvarchar(max), varbinary(max) em vez de text, ntext e tipos de dados image , respectivamente.

Inserção de dados em massa em tabelas publicadas.

A replicação de mesclagem rastreia as alterações em tabelas publicadas que usam gatilhos e tabelas do sistema. Se você efetuar uma inserção de dados em massa usando o utilitário bcp ou o comando BULK INSERT, os gatilhos não serão acionados por padrão. Se gatilhos não forem acionados, as inserções não serão rastreadas e não serão propagadas a outros nós. Para assegurar que as alterações sejam rastreadas, recomendamos que você use uma das abordagens a seguir ao executar inserções em massa:

  • Use a opção de FIRE_TRIGGERS para o utilitário bcp ou o comando BULK INSERT. Essa opção assegura que os gatilhos sejam acionados da mesma forma que uma operação de inserção comum. Para obter mais informações, consulte Utilitário bcp e BULK INSERT (Transact-SQL).

  • Execute o procedimento armazenadosp_addtabletocontents após executar a inserção em massa. Este procedimento insere referências em tabelas do sistema para qualquer linha em uma tabela de origem atualmente não incluída. Para obter mais informações, consulte sp_addtabletocontents (Transact-SQL).