Eu tenho um esquema de replicação que foi criado há vários meses. Desde então, o esquema teve uma variedade de mudanças. Todas as assinaturas existentes foram atualizadas à medida que essas alterações foram feitas, pois a publicação também está configurada para enviar alterações de esquema.
Recentemente, no entanto, ao tentar adicionar uma nova assinatura, o instantâneo inicial falha ao ser aplicado. A causa do erro é que duas exibições diferentes falham ao serem aplicadas, pois as tabelas nas quais elas dependem ainda não foram criadas pelo instantâneo.
Sei que posso especificar a ordem de processamento dos artigos por meio do procedimento armazenado sp_changemergearticle. Mas, pelo que entendi... a configuração da ordem de processamento aqui é para especificar a ordem na qual as alterações de dados são aplicadas aos assinantes durante a sincronização. Existe uma maneira de especificar a ordem em que os artigos são aplicados quando uma nova assinatura é inicializada? Ele usa a mesma configuração?
Achei que gerar um novo instantâneo faria com que o mecanismo descobrisse a ordem correta, mas no caso da minha publicação atual, isso não aconteceu. A nova assinatura falha ao aplicar o instantâneo mesmo depois de gerar um novo instantâneo. Ele me diz o script exato que falha e ao aplicar manualmente é óbvio que está falhando porque uma tabela necessária para a exibição ainda não existe.
Qual o melhor jeito de consertar isso? A configuração da ordem de processamento de um artigo afeta a ordem do esquema, bem como a ordem dos dados, ou preciso procurar outro lugar para definir a ordem em que os artigos são criados em novas assinaturas?
Pelo que posso dizer, a configuração da ordem de processamento não tem nenhum efeito na ordem em que o instantâneo aplica seus artigos durante a inicialização. Principalmente porque atualmente todos os meus artigos têm valor 0 para sua ordem de processamento. Então, isso é algo que posso controlar ou estou à mercê do processo de geração de instantâneos?
Sim, utilizar sp_changemergearticle para alterar a ordem de processamento aliviará esse problema.
Tenho a mesma dúvida, muito bem exposta pelo Thomas. Tanto quanto eu sei, a ordem de processamento não faz nenhuma diferença na ordem do esquema de instantâneo, mas apenas na ordem de aplicação dos dados.
Acho que o esquema é aplicado na mesma ordem em que os artigos são adicionados à publicação. Não tenho certeza e gostaria de receber uma confirmação disso.
Os números adicionados ao final dos arquivos .SCH podem ser uma pista para entender a lógica por trás da constituição e aplicação do instantâneo.