MSSQL_REPL027183
Detalhes da mensagem
Nome do produto |
SQL Server |
Versão do produto |
10.50 |
Número da compilação do produto |
|
ID do evento |
27183 |
Origem do evento |
MSSQLSERVER |
Componente |
Mecanismo de banco de dados do SQL Server |
Nome simbólico |
|
Texto da mensagem |
O processo de mesclagem não pôde enumerar as alterações nos artigos que apresentaram filtros de linha com parâmetros. Se a falha persistir, aumente o tempo limite da consulta nesse processo, reduza o período de retenção da publicação e aprimore os índices nas tabelas publicadas. |
Explicação
Esse erro surge quando o tempo limite do Merge Agent ocorre durante o processamento de alterações em uma publicação filtrada. O tempo limite pode ser causado por um dos seguintes problemas:
A otimização das partições pré-computadas não está sendo usada.
Fragmentação de índice em colunas usadas para filtragem.
Tabelas de metadados de mesclagens grandes, como MSmerge_tombstone, MSmerge_contents e MSmerge_genhistory.
Tabelas filtradas não associadas em uma chave exclusiva e associação de filtros que envolvem um grande número de tabelas.
Ação do usuário
Para resolver o problema:
Aumente o valor do parâmetro -QueryTimeOut do Merge Agent para permitir que o processamento continue enquanto você aborda os problemas subjacentes que estão causando o erro. Os parâmetros de agente podem ser especificados em perfis de agente e na linha de comando. Para obter mais informações, consulte:
Use a otimização de partições pré-computadas, se possível. Por padrão, essa otimização será usada se um número de requisitos de publicação forem atendidos. Para obter mais informações sobre esses requisitos, consulte Otimizando o desempenho de filtro com parâmetros com partições pré-computadas. Se a publicação não satisfizer esses requisitos, considere reprojetar a publicação.
Especifique a menor definição possível para o período de retenção da publicação, porque a replicação não poderá limpar os metadados nos bancos de dados de assinatura e publicação antes do período de retenção ser atingido. Para obter mais informações, consulte Validade e desativação de assinatura.
Como parte da manutenção da replicação de mesclagem, verifique esporadicamente o crescimento das tabelas do sistema associadas à replicação de mesclagem: MSmerge_contents, MSmerge_genhistory, MSmerge_tombstone, MSmerge_current_partition_mappings e MSmerge_past_partition_mappings. Periodicamente, indexe novamente essas tabelas. Para obter mais informações, consulte Reorganizando e recriando índices.
Certifique-se de que as colunas usadas para filtragem estejam indexadas corretamente e reconstrua tais índices, se necessário. Para obter mais informações, consulte Reorganizando e recriando índices.
Defina a propriedade join_unique_key para filtros de junção com base em colunas exclusivas. Para obter mais informações, consulte Filtros de junção.
Limite o número de tabelas na hierarquia de filtro de junção. Se você estiver gerando filtros de junção de cinco ou mais tabelas, considere outras soluções: não filtre tabelas pequenas, que não estão sujeitas a alterações ou que sejam basicamente tabelas de pesquisa. Use filtros de junção somente entre tabelas que devem ser particionadas entre assinaturas.
Faça um número menor de alterações em tabelas filtradas entre as sincronizações ou execute o Merge Agent mais frequentemente. Para obter mais informações sobre como definir agendas de sincronização, consulte Como especificar agendas de sincronização (SQL Server Management Studio) e Como especificar agendas de sincronização (Programação Transact-SQL de replicação).