Partilhar via


Como minimizar o tempo de inatividade de bancos de dados espelhados durante a atualização de instâncias do servidor

Ao atualizar instâncias do servidor do SQL Server 2005 para o SQL Server 2008, você pode diminuir o tempo de inatividade de cada banco de dados espelhado para apenas um único failover manual executando uma atualização em seqüência, conhecida como atualização sem interrupção. Uma atualização sem interrupção consiste em um processo de várias etapas que, em sua forma mais simples, envolve atualizar a instância do servidor que funciona como o servidor espelho de uma sessão de espelhamento, executar o failover manual no banco de dados espelhado, atualizar o antigo servidor principal e continuar o espelhamento. Na prática, o processo exato dependerá do modo de operação e do número e do layout de sessões de espelhamento em execução nas instâncias do servidor que você está atualizando.

ObservaçãoObservação

Para obter informações sobre como executar uma atualização sem interrupção para instalar um service pack ou hotfix, consulte Como instalar um service pack em um sistema com tempo de inatividade mínimo para bancos de dados espelhados.

Preparação recomendada (práticas recomendadas)

Antes de iniciar uma atualização sem interrupção, é recomendável:

  1. Executar um failover manual em pelo menos uma das sessões de espelhamento:

    ObservaçãoObservação

    Para obter informações sobre o funcionamento do failover manual, consulte Failover manual.

  2. Proteger seus dados:

    1. Executar um backup de banco de dados completo em todos os bancos de dados principais:

      Como executar backup de um banco de dados (SQL Server Management Studio).

      Como criar um backup de banco de dados completo (Transact-SQL)

    2. Execute o comando DBCC CHECKDB em todos os bancos de dados principais.

Etapas da atualização sem interrupção

As etapas específicas de uma atualização sem interrupção dependem do modo de operação da configuração de espelhamento. No entanto, as etapas básicas são as mesmas.

A ilustração a seguir é um fluxograma que mostra as etapas básicas de uma atualização sem interrupção para cada modo de operação. Os procedimentos correspondentes estão descritos após a ilustração.

Fluxograma mostrando as etapas de uma atualização de rolagem

Observação importanteImportante

Uma instância de servidor pode estar executando diferentes funções de espelhamento (servidor principal, servidor espelho ou testemunha) em sessões de espelhamento simultâneas. Nesse caso, você terá de adaptar o processo básico de atualização sem interrupção. Para obter mais informações, consulte Sessões de espelhamento de banco de dados.

Para alterar uma sessão em modo de alto desempenho para modo de segurança alta

Para remover uma testemunha de uma sessão

Para executar a atualização sem interrupção

  1. Para minimizar o tempo de inatividade, recomendamos o seguinte: inicie a atualização sem interrupção atualizando qualquer parceiro de espelhamento que no momento seja o servidor espelho em todas as suas sessões de espelhamento. Você pode ter de atualizar instâncias de servidor múltiplas nesse momento.

    ObservaçãoObservação

    Uma testemunha pode ser atualizada em qualquer ponto do processo de atualização sem interrupção. Por exemplo, se uma instância de servidor for um servidor espelho na Sessão 1 e for uma testemunha na Sessão 2, você poderá atualizar a instância de servidor agora.

    A instância de servidor a ser atualizada primeiro depende da configuração atual de suas sessões de espelhamento, como se segue:

    • Se qualquer instância de servidor já for o servidor espelho em todas as suas sessões de espelhamento, atualize a instância de servidor para a versão nova.

    • Se todas as suas instâncias de servidor forem atualmente o servidor principal em alguma sessão de espelhamento, selecione uma instância de servidor para atualizar primeiro. Depois, execute manualmente um failover em cada um de seus bancos de dados principais e atualize essa instância de servidor.

    Depois de ser atualizada, uma instância de servidor retoma automaticamente cada uma de suas sessões de espelhamento.

  2. Para cada sessão de espelhamento cuja instância de servidor espelho acabou de ser atualizada, espere que a sessão seja sincronizada. Depois, conecte-se à instância de servidor principal e execute o failover manual da sessão. Em failover, a instância de servidor atualizada torna-se o servidor principal para aquela sessão e o servidor principal anterior torna-se o servidor espelho.

    O objetivo dessa etapa é que outra instância de servidor torne-se o servidor espelho em cada sessão de espelhamento na qual é um parceiro.

    Restrições depois de você executar failover para uma instância de servidor atualizada.

    Depois de executar failover em uma instância de servidor do SQL Server 2005 para uma instância de servidor do SQL Server 2008, a sessão de banco de dados é suspensa. Ela não pode ser retomada até que o outro parceiro seja atualizado. Porém, o servidor principal ainda aceita conexões e permite acesso a dados e modificações no banco de dados principal.

    ObservaçãoObservação

    O estabelecimento de uma nova sessão de espelhamento requer que todas as instâncias de servidor estejam executando a mesma versão do SQL Server.

  3. Depois de executar failover, recomendamos que você execute o comando DBCC CHECKDB no banco de dados principal.

  4. Atualize cada instância de servidor que seja agora o servidor espelho em todas as sessões de espelhamento nas quais é um parceiro. Você pode ter de atualizar servidores múltiplos nesse momento.

    Observação importanteImportante

    Em uma configuração de espelhamento complexa, alguma instância de servidor pode ainda ser o servidor principal original em uma ou mais sessões de espelhamento. Repita as etapas 2-4 para essas instâncias de servidor até que todas as instâncias envolvidas sejam atualizadas.

  5. Retome a sessão de espelhamento.

    ObservaçãoObservação

    O failover automático não funcionará até que a testemunha tenha sido atualizada e novamente adicionada à sessão de espelhamento.

  6. Atualize qualquer instância de servidor restante que seja a testemunha em todas as suas sessões de espelhamento. Depois que uma testemunha atualizada voltar a uma sessão de espelhamento, o failover automático torna-se possível novamente. Você pode ter de atualizar servidores múltiplos nesse momento.

Para voltar a uma sessão em modo de alto desempenho

  • Opcionalmente, volte ao modo de alto desempenho usando um dos métodos seguintes:

    • No SQL Server Management Studio: altere a opção Modo de operação para Alto desempenho (assíncrono) usando a Página Espelhamento da caixa de diálogo Propriedades do Banco de Dados.

    • No Transact-SQL: use ALTER DATABASE para definir a segurança de transações como OFF.

Para adicionar uma testemunha de volta a uma sessão de espelhamento