Migrando uma configuração de envio de logs do SQL Server 2000 para o SQL Server 2008

Não é possível atualizar uma configuração de envio de logs do SQL Server 2000 para o SQL Server 2008. O Assistente para Planos de Manutenção de Banco de Dados, que foi integral para envio de logs no SQL Server 2000, não é usado como parte da configuração de envio de logs introduzidos no SQL Server 2005. Assim, o envio de logs deixa de funcionar quando você atualizar um servidor para o SQL Server 2008.

Você pode migrar uma configuração de envio de logs do SQL Server 2000. Este tópico descreve os métodos para fazer isso:

  • A migração com failover lhe permite manter a disponibilidade de seu banco de dados enquanto você atualiza cada servidor na configuração de envio de logs. Não é necessário reiniciar o banco de dados secundário.

  • A migração sem failover permite um procedimento mais simples que não exige que você realize failover para seu servidor secundário. Seguindo esse procedimento, seu banco de dados ficará indisponível durante a atualização do servidor primário. Não é necessário reiniciar o banco de dados secundário.

  • Reimplante totalmente o envio de logs, inclusive a reinicialização do banco de dados secundário a partir de um backup completo.

Após migrar sua configuração de envio de logs para o SQL Server 2008, é possível excluir as tabelas e os trabalhos do SQL Server Agent criados pelo envio de logs do SQL Server 2000.

ObservaçãoObservação

A compactação de backup foi introduzida no SQL Server 2008 Enterprise. Uma configuração de envio de logs migrada usa a opção de configuração no nível do servidor do padrão de compactação de backup para controlar se a compactação de backup será utilizada para os arquivos de backup de log de transações. O comportamento de compactação de backups de log pode ser especificado para cada configuração de envio de logs. Para obter mais informações, consulte Como habilitar o envio de logs (SQL Server Management Studio).

Restrições

Após a migração de uma configuração de envio de logs do SQL Server 2000 para o SQL Server 2008, não é necessário colocar os bancos de dados secundários no modo de espera.

Migrando com failover

A migração de uma configuração de envio de logs com o uso de failover envolve manter a instância do servidor primário na versão original do SQL Server temporariamente, enquanto se atualiza a instância do servidor secundário. A atualização de uma instância de servidor atualiza apenas bancos de dados online. Bancos de dados offline, como um banco de dados secundário de envio de logs, permanecem na versão original do SQL Server. Contanto que um banco de dados permaneça offline, backups de log da versão original de SQL Server são restauráveis.

Para fins de esclarecimento, esse procedimento refere-se à instância do servidor primário de envio de logs do SQL Server 2000 como Servidor A e à instância do servidor secundário de envio de logs do SQL Server 2000 como Servidor B. Essa configuração é representada na ilustração a seguir, que mostra uma instância do servidor primário, A, e uma única instância do servidor secundário, B.

Um servidor secundário e nenhum servidor monitor

  1. Atualize a instância de servidor secundário, Servidor B, para SQL Server 2008. Ao atualizar o Servidor B, o banco de dados de envio de logs permanece um banco de dados SQL Server 2000 porque está offline. Esse banco de dados é atualizado na próxima etapa. Os trabalhos de envio de logs do SQL Server 2000 que copiam e restauram arquivos de log já não funcionarão.

    ObservaçãoObservação

    Nesse momento, usuários podem continuar acessando o banco de dados primário no Servidor A.

  2. O failover da instância de servidor primário, Servidor A, para a instância de servidor secundário, Servidor B.

    1. Para efetuar o failover, restaure todos os backups de log de transações não aplicáveis do banco de dados primário no servidor A para o servidor o B.

    2. Faça manualmente o backup da parte final do log de transações no banco de dados primário especificando o WITH NORECOVERY. Esse backup de log captura quaisquer registros de log ainda sem backup e coloca o banco de dados offline.

      O exemplo a seguir efetua backup da parte final do log do banco de dados do AdventureWorks no servidor primário. O arquivo de backup é nomeado como Failover_AW_20080315.trn:

      BACKUP LOG AdventureWorks 
        TO DISK = N'\\FileServer\LogShipping\AdventureWorks\Failover_AW_20080315.trn'
        WITH NORECOVERY;
      GO
      
    3. Coloque o banco de dados secundário, do servidor B, online restaurando a parte final do log de transações com o WITH RECOVERY.

    O processo de failover traz seu banco de dados secundário online, sendo em seguida atualizado automaticamente para um banco de dados SQL Server 2008. O processo de atualização de banco de dados é completamente registrado.

    ObservaçãoObservação

    Depois de atualizado, o banco de dados de envio de logs no Servidor B está disponível para os usuários. Entretanto, até o envio de logs do SQL Server 2008 ser configurado no Servidor B, os backups de log do banco de dados no Servidor B não serão efetuados.

  3. Atualize o Servidor A para SQL Server 2008. O banco de dados de envio de logs permanece um banco de dados SQL Server 2000 temporariamente porque está offline.

  4. No Servidor B, configure o envio de logs do SQL Server 2008 com o Servidor B como o servidor primário e o Servidor A como Servidor secundário. Depois de iniciar o envio de logs de transações para o Servidor A, o banco de dados de envio de logs no Servidor A será atualizado para um banco de dados do SQL Server 2008 quando o primeiro backup de log for aplicado.

    Observação importanteImportante

    Ao configurar o envio de logs no Servidor B, certifique-se de ter especificado a opção Não, o banco de dados secundário é inicializado., na guia Inicializar Banco de Dados Secundário da caixa de diálogo Configurações de Banco de Dados Secundário. Para obter mais informações, consulte Como habilitar o envio de logs (SQL Server Management Studio).

  5. Opcionalmente, se desejar fazer do Servidor A seu servidor primário novamente, realize o failover para o Servidor A. Para obter mais informações, consulte Alterando funções entre servidores primários e secundários.

Migrando sem failover

É possível migrar sua configuração de envio de logs do SQL Server 2000 para o SQL Server 2005 sem o uso de failover. Esse procedimento lhe permite atualizar facilmente as duas instâncias de servidor em sua configuração de envio de logs; no entanto, seu banco de dados primário fica indisponível enquanto você estiver atualizando a instância de servidor primário para o SQL Server 2008.

  1. Atualize a instância de servidor secundário para SQL Server 2008. Ao atualizar a instância de servidor secundário, o banco de dados de envio de logs permanece um banco de dados SQL Server 2000 porque está em um estado offline. Os trabalhos de envio de logs do SQL Server 2000 que copiam e restauram arquivos de log já não estarão funcionando.

  2. Atualize o servidor primário para SQL Server 2008. O banco de dados primário fica indisponível enquanto a atualização está em andamento.

  3. Configure o envio de logs da instância de servidor primário para a instância de servidor secundário. Certifique-se de especificar a opção Não, o banco de dados secundário é inicializado., na guia Inicializar Banco de Dados Secundário da caixa de diálogo Configurações de Banco de Dados Secundário. Para obter mais informações, consulte Como habilitar o envio de logs (SQL Server Management Studio).

    Observação importanteImportante

    Especifique o mesmo compartilhamento de backup que você usou com sua configuração de log de envio do SQL Server 2000. Isso garante que todos os backups de log sejam devidamente aplicados ao banco de dados secundário quando você habilitar o envio de logs no SQL Server 2008.

    Como o processo de atualização do banco de dados é uma operação de registro completo, seu banco de dados secundário é atualizado no banco de dados do SQL Server 2008 quando você iniciar o envio de logs para a instância de servidor secundário.

Reimplantando o envio de logs

Se você não desejar migrar sua configuração de envio de logs, é possível reimplantar o envio de logs do zero, reinicializando seu banco de dados secundário com um backup completo e com a restauração do banco de dados primário. Essa pode ser uma boa opção se você tem um banco de dados pequeno ou se uma alta disponibilidade não é crucial durante o procedimento de atualização.

Para habilitar o envio de logs

Removendo tabelas e trabalhos de envio de logs do SQL Server 2000

O SQL Server 2008 não usa nenhuma das tabelas de envio de logs usadas pelo SQL Server 2000. Assim, você pode excluir essas tabelas depois de atualizar seu servidor para SQL Server 2008. Essas tabelas são as seguintes:

  • log_shipping_databases

  • log_shipping_monitor

  • log_shipping_plan_databases

  • log_shipping_plan_history

  • log_shipping_plans

  • log_shipping_primaries

  • log_shipping_secondaries

Também é possível excluir quaisquer trabalhos de envio de logs do SQL Server Agent que tenham sido criados para a configuração de envio de logs pelo SQL Server 2000.