Share via


Considerações sobre atualização de bancos de dados replicados

O SQL Server 2008 suporta a atualização de bancos de dados replicados de versões anteriores do SQL Server; não é necessário interromper a atividade de outros nós durante a atualização de um nó. Verifique se você está em conformidade com as regras que dizem respeito às versões suportadas em uma topologia:

  • O SQL Server 2000 service pack 3 (SP3) é a versão mínima exigida para participar de uma topologia de replicação com o SQL Server 2008. Não há uma versão mínima necessária se você usa o SQL Server 2005.

  • Um Distribuidor pode ser de qualquer versão, desde que ela seja maior ou igual à do Publicador (em muitos casos, o Distribuidor tem a mesma instância que o Publicador).

  • Um Publicador pode ser de qualquer versão, contanto que ela seja menor ou igual à versão do Distribuidor.

  • A versão de assinante depende do tipo de publicação:

    • Um Assinante de uma publicação transacional pode ser de qualquer uma das duas versões do Publicador. Por exemplo, um Publicador do SQL Server 2000 pode ter Assinantes do SQL Server 2008 e um Publicador do SQL Server 2008 pode ter Assinantes do SQL Server 2000.

    • Um Assinante de uma publicação de mesclagem pode ser de qualquer versão menor ou igual à do Publicador.

ObservaçãoObservação

Esse tópico está disponível na documentação de Ajuda da instalação e nos Manuais Online do SQL Server. Os links do tópico que aparecem em negrito na documentação da Ajuda da instalação se referem a tópicos que só estão disponíveis nos Manuais Online.

Executar o Log Reader Agent para replicação transacional antes da atualização

Antes de atualizar para o SQL Server 2008, você deve verificar se todas as transações confirmadas de tabelas publicadas foram processadas pelo Log Reader Agent. Para isso, execute as seguintes etapas para cada banco de dados que contém publicações transacionais:

  1. Verifique se o Log Reader Agent está executando para o banco de dados. Por padrão, o agente é executado continuamente.

  2. Interrompa a atividade de usuário em tabelas publicadas.

  3. Conceda um tempo para que o Log Reader Agent copie transações para o banco de dados de distribuição e, depois, interrompa o agente.

  4. Execute sp_replcmds para verificar se todas as transações foram processadas. O conjunto de resultados deste procedimento deve ser vazio.

  5. Execute sp_replflush para fechar a conexão de sp_replcmds.

  6. Execute a atualização do servidor para o SQL Server 2008.

  7. Reinicie o SQL Server Agent e o Log Reader Agent se eles não iniciarem automaticamente depois da atualização.

Executar agentes para replicação de mesclagem após a atualização

Depois da atualização, execute o Snapshot Agent para cada publicação de mesclagem e o Merge Agent para cada assinatura a fim de atualizar os metadados de replicação. Você não precisa aplicar o novo instantâneo, pois não é necessário reinicializar assinaturas. Metadados de assinatura são atualizados na primeira vez que o Merge Agent é executado após a atualização. Isso significa que o banco de dados de assinatura pode permanecer online e ativo durante a atualização do Publicador.

A replicação de mesclagem armazena metadados de publicação e de assinatura em várias tabelas do sistema nos bancos de dados de publicação e de assinatura. A execução do Snapshot Agent atualiza os metadados de publicação e a do Merge Agent, os metadados de assinatura. Só é necessário gerar um instantâneo de publicação. Se uma publicação de mesclagem usar filtros com parâmetros, cada partição também terá um instantâneo. Não é necessário atualizar esses instantâneos particionados. (No SQL Server 2000, os filtros com parâmetros eram chamados de filtros dinâmicos, e os instantâneos particionados eram conhecidos como instantâneos dinâmicos).

Execute os agentes do SQL Server Management Studio, do Replication Monitor ou da linha de comando. Para obter mais informações sobre como executar o Snapshot Agent, consulte os seguintes tópicos:

Para obter mais informações sobre como executar o Merge Agent, consulte os seguintes tópicos:

Depois de atualizar o SQL Server em uma topologia que utiliza a replicação de mesclagem, altere o nível de compatibilidade de publicação de qualquer publicação caso queira usar novos recursos. Para obter mais informações, consulte Usando várias versões do SQL Server em uma topologia de replicação.

Atualizando as edições Standard, Workgroup ou Express

Antes de atualizar de uma edição do SQL Server 2008 para outra, verifique se a funcionalidade que você está usando tem suporte na edição para a qual deseja atualizar. Para obter mais informações, consulte a seção "Recursos de replicação do SQL Server 2008" no tópico Recursos compatíveis com as edições do SQL Server 2008.

Novo modelo de segurança do Replication Agent

Nas versões do SQL Server anteriores ao SQL Server 2005, por padrão os agentes eram executados no contexto da conta de serviço do SQL Server Agent. O SQL Server 2005 introduziu um controle refinado de cada conta sob a qual os agentes de replicação são executados e estabelecem conexões integradas do Windows com bancos de dados e outros recursos; é possível especificar uma conta diferente 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.

O novo modelo de segurança tem as seguintes implicações para atualizar e executar o SQL Server 2000 em uma topologia:

  • Os scripts de replicação criados no SQL Server 2000 devem ser atualizados para o SQL Server 2008 para aproveitar os aprimoramentos de segurança. Para obter mais informações, consulte Como atualizar scripts de replicação (Programação Transact-SQL de replicação).

  • Um Distribuidor ou Assinante atualizado do SQL Server 2000 para o SQL Server 2008 continua a ser executado sob a conta de Agente SQL Server e provavelmente tem mais privilégios do que o necessário. Após a atualização, é recomendável especificar contas separadas para os agentes com os privilégios mínimos apropriados. Para especificar contas separadas:

    1. Gere um script para a publicação e as assinaturas.

    2. Faça as alterações desejadas nos scripts. Para obter mais informações, consulte Como atualizar scripts de replicação (Programação Transact-SQL de replicação).

    3. Descarte a publicação e as assinaturas. Para obter mais informações, consulte Publicando dados e objetos de banco de dados e Assinando publicações.

    4. Recrie-as usando os scripts modificados.

    Para obter informações sobre os privilégios exigidos por agentes, consulte Modelo de segurança do agente de replicação; para obter informações sobre como gerenciar logons e senhas, consulte Gerenciando logons e senhas na replicação. As novas configurações de replicação criadas após uma atualização exigem configuração de conta específica para cada agente de replicação.

    ObservaçãoObservação

    Todos os agentes configurados para usar a Autenticação do SQL Server em conexões de bancos de dados locais passam a usar a Autenticação do Windows. Conexões locais são aquelas estabelecidas por um agente com uma instância do SQL Server executada no mesmo computador que o agente. Por exemplo, o Merge Agent de uma assinatura pull é executado no Assinante; por isso, as conexões estabelecidas com o Assinante são conexões locais.

  • Os participantes de uma topologia de replicação que executam versões anteriores do SQL Server mantêm o modelo de segurança de replicação anterior inalterado. Por exemplo:

    • Uma assinatura pull para um Assinante que executa o SQL Server 2000 não usa o novo modelo de segurança porque o Merge Agent ou o Distribution Agent são criados no Assinante.

    • Uma assinatura push de um Distribuidor que executa o SQL Server 2008 para um Assinante que executa o SQL Server 2000 usa o novo modelo de segurança, pois o Merge Agent ou o Distribution Agent são criados no Distribuidor.

    • Um Publicador que executa o SQL Server 2000 com um Distribuidor que executa o SQL Server 2008 não usa o novo modelo de segurança (para o Snapshot Agent, o Log Reader Agent ou o Queue Reader Agent), pois os agentes são criados no contexto do banco de dados de publicação.

  • O SQL Server 2005 e o SQL Server 2008 usam o mesmo modelo de segurança.

Sincronização da Web para replicação de mesclagem

A opção de sincronização da Web para replicação de mesclagem requer que o SQL Server Replication Listener (replisapi.dll) seja copiado para o diretório virtual do servidor IIS (Serviços de Informações da Internet) usado para sincronização. Quando você configura a sincronização da Web, o arquivo é copiado para o diretório virtual pelo Assistente para Configuração da Sincronização da Web. Se você atualizar os componentes do SQL Server instalados no servidor IIS, deverá copiar replisapi.dll manualmente do diretório COM para o diretório virtual no servidor IIS. Para obter mais informações sobre como configurar a sincronização da Web, consulte Configurando a sincronização da Web.

Restaurando um banco de dados replicado de uma versão anterior

Para assegurar que as configurações de replicação sejam mantidas na restauração do backup de um banco de dados replicado de uma versão anterior, restaure para um servidor e um banco de dados que tenham os mesmos nomes que o servidor e o banco de dados dos quais foi obtido o backup.