Alterações de comportamento na replicação do SQL Server

Este tópico descreve alterações de quebra na replicação do SQL Server. As alterações de comportamento afetam como os recursos funcionam ou interagem no SQL Server 2008 em comparação com as versões anteriores do SQL Server.

Alterações de comportamento feitas no SQL Server 2005

Essa seção descreve alterações de comportamento feitas nos recursos de replicação em SQL Server 2005.

Alterações de comportamento que afetam todos os tipos de replicação

As alterações a seguir afetam todos os tipos de replicação

Recurso

Descrição

Modelo de segurança do agente de replicação

Nas versões anteriores de SQL Server, os agentes são executados, por padrão, sob o contexto da conta de serviço do agente SQL Server. O SQL Server agora permite controle refinado de cada conta sob a qual os agentes de replicação executam e fazem conexões Integradas do Windows Microsoft para bancos de dados e outros recursos; uma conta diferente pode ser especificada para cada agente. Para obter mais informações, consulte Segurança e proteção (Replicação) e Modelo de segurança do agente de replicação. Para obter mais informações sobre como essa alteração afeta as atualizações, consulte a seção "Novo Modelo de Segurança de Agentes de Replicação" de Considerações sobre atualização de bancos de dados replicados e Alterações de quebra na replicação do SQL Server.

Gerenciador de Sincronização do Windows

Em versões de SQL Server anteriores a SQL Server 2005, a capacidade de sincronizar assinaturas com o Gerenciador de Sincronização era habilitada por padrão. Em SQL Server 2005, deve-se habilitar explicitamente essa opção caso se deseje usar o Gerenciador de Sincronização. Para obter mais informações, consulte Como sincronizar uma assinatura usando o Gerenciador de Sincronização do Windows (Gerenciador de Sincronização do Windows).

Visualizador de conflitos de replicação

Em SQL Server 2000, o Visualizador de conflitos de replicação foi empacotado para redistribuição. Em SQL Server 2005, o visualizador não é empacotado separadamente. Para incluir o Visualizador de conflitos de replicação em um aplicativo, deve-se instalar Microsoft .NET Framework 2.0 no computador no qual o aplicativo será implantado e copiar alguns arquivos para o computador. Para obter mais informações, consulte “Outros Problemas de Atualização de Replicação" na Ajuda do Supervisor de Atualização. Para obter mais informações sobre o Supervisor de Atualização, consulte Usando o Supervisor de Atualização para preparar para atualizações.

Alterações de opção de esquema

Opções de esquema lhe permitem especificar de que forma atributos e objetos associados a tabelas, como índices e restrições, são replicados. O comportamento de várias opções de esquema foi alterado em SQL Server 2005. A seção a seguir, neste tópico, fornece mais informações.

Alterações de comportamento de opções de esquema

A tabela a seguir resume alterações de opção de esquema em SQL Server 2005.

ObservaçãoObservação

Se a opção de esquema de 0x8000 foi definida em SQL Server 2000, ela será desabilitado durante a atualização para SQL Server 2005. Para opções de esquema 0x10 ou 0x40, a replicação pode criar um número maior de índices em SQL Server 2005 do que em SQL Server 2000.

Opção

Comportamento se a opção é definida no SQL Server 2000

Comportamento se a opção é definida no SQL Server 2005

0x80

Cria uma restrição ou índice. Se a opção 0x8000 também estiver habilitada, a chave primária será criada como uma restrição com um índice. Se a opção 0x8000 não estiver habilitada, somente o índice na coluna de chave primária será criado.

Cria uma restrição de chave primária no Assinante. Quaisquer índices relativos à restrição também são replicados, mesmo se as opções 0x10 e 0x40 não forem habilitadas (essas opções controlam a criação de índice para outros casos).

0x4000

Cria uma restrição ou índice. Se a opção 0x8000 também estiver habilitada, a restrição exclusiva será criada como uma restrição com um índice. Se a opção 0x8000 não estiver habilitada, somente o índice na coluna será criado.

Cria quaisquer restrições exclusivas no Assinante. Quaisquer índices relativos à restrição também são replicados, mesmo se as opções 0x10 e 0x40 não forem habilitadas (essas opções controlam a criação de índice para outros casos).

0x8000

Cria restrições de chave primária e restrições exclusivas se as opções 0x80 ou 0x4000 também forem especificadas. Se nenhuma dessas opções for especificada, a opção 0x8000 não tem efeito.

A opção não tem efeito.

Alterações de comportamento para replicação de transação

As alterações a seguir afetam a replicação de transação

Recurso

Descrição

Propriedade de objeto de assinante

Ao usar o Assistente para Nova Publicação SQL Server 2005 para criar uma publicação, o proprietário de objetos criados no Assinante usa como padrão o valor do proprietário do objeto correspondente no Publicador. Em versões anteriores, o proprietário não era especificado durante a criação do objeto no Assinante; ele usava como padrão o proprietário associado à conta do Distribution Agent usada para conexão com o Assinante. O comportamento está inalterado para o procedimento armazenado sp_addarticle (Transact-SQL).

Modo de segurança de assinaturas atualizáveis

O parâmetro @security_mode de sp_link_publication controla como os gatilhos de assinaturas de atualização imediatas executam chamadas no Publicador. Em SQL Server 2005, as opções para esse parâmetro são:

  • 0: Usa Autenticação SQL Server com o logon especificado no procedimento armazenado como logon e senha.

  • 1: Usa o contexto de segurança Autenticação (SQL Server ou Autenticação Integrada do Windows) do usuário que está efetuando a mudança no Assinante.

  • 2: Usa um logon de servidor vinculado, existente, definido pelo usuário.

Em versões anteriores de SQL Server, a opção 0 foi usada para especificar uma chamada de procedimento dinâmico remoto (RPC) do Assinante para o Publicador em vez de um servidor vinculado.

Alterações de comportamento para replicação de mesclagem

As alterações a seguir afetam replicação de mesclagem

Recurso

Descrição

Nível de compatibilidade da publicação

Em versões anteriores de SQL Server, o nível de compatibilidade era aumentado automaticamente se você habilitasse um recurso que exigisse um nível superior. Em SQL Server 2005, deve-se definir manualmente o nível de compatibilidade para 90RTM antes de habilitar funcionalidade que exija aquele nível de compatibilidade. 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.

Ações compensatórias

Em versões anteriores de SQL Server, ações compensatórias eram tomadas se erros (como violações de restrição) fossem encontrados durante a sincronização. Em alguns casos esse comportamento é desejável, mas em alguns isso pode ser problemático; por exemplo, um Assinante configurado de forma incorreta que gere um erro pode levar alterações a serem desfeitas no Publicador e em todos os outros Assinantes.

Em SQL Server 2005, o parâmetro @compensate_for_errors de sp_addmergearticle controla se ações compensatórias são tomadas. Quando definidas para False (o padrão), ações compensatórias são desabilitadas; entretanto, os erros ainda são registrados e mesclas subseqüentes irão continuar tentando aplicar as alterações. Embora os dados nas linhas afetadas pareçam estar fora de convergência, tão logo o erro seja abordado a alteração pode ser aplicada e os dados serão convergidos. Quando definido para True, uma alteração que não pode ser aplicada a um nó durante a sincronização leva a ações compensatórias que desfazem a alteração em todos os demais nós.

ObservaçãoObservação
Se a tabela de origem para um artigo já estiver publicada em outra publicação, o valor de compensate_for_errors deve ser o mesmo para os dois artigos. Para assinaturas pull em Assinantes que estão executando o SQL Server 2000 versão 8.00.858 e anteriores (que incluem Service Pack 3), ações compensatórias ainda irão ocorrer mesmo com @compensate_for_errors definidos para False.

Tabelas com conflito

Em versões anteriores de SQL Server, a replicação de mesclagem criava uma única tabela com conflito para cada artigo de tabela em uma publicação, com um nome na forma conflict_<Nome_do_Artigo>. Em SQL Server 2005, a informação está contida em duas tabelas: MSmerge_conflicts_info e uma tabela com um nome na forma MSmerge_conflict_<Nome_da_Publicação>_<Nome_do_Artigo>.

Limpeza de metadados com base na retenção

O SQL Server 2005 usa limpeza de metadados com base na retenção, que foi introduzida no Service Pack 1 do SQL Server 2000. Metadados são excluídos periodicamente das seguintes tabelas do sistema:

  • MSmerge_contents

  • MSmerge_tombstone

  • MSmerge_genhistory

  • Qualquer tabela anterior à imagem, se houver. Tabelas anteriores à imagem estão presentes se a opção de otimização de sincronização @keep_partition_changes for habilitada na publicação (consulte a seção a seguir para obter mais informações sobre essa opção).

O parâmetro @keep_partition_changes

O parâmetro @keep_partition_changes foi definido como False por padrão em versões anteriores de SQL Server, por que resulta em mais dados armazenados no Publicador. Agora ele está definido como True se o nível de compatibilidade de publicação for 90RTM ou superior, e o parâmetro @use_partition_groups for definido como Falso. Para obter mais informações sobre essas opções, consulte Filtro de linha com parâmetros.