Instalar um service pack em um sistema com tempo de inatividade mínimo para bancos de dados espelhados
Este tópico descreve como minimizar o tempo de inatividade para bancos de dados espelhados ao instalar service packs e hotfixes. Esse processo envolve atualizar sequencialmente as instâncias do SQL Server 2012 que estão participando do espelhamento de banco de dados. Esta forma de atualização, conhecida como atualização sem interrupção, reduz o tempo de inatividade a um único failover. Observe que, para sessões em modo de alto desempenho, nas quais o servidor espelho está geograficamente distante do servidor principal, uma atualização sem interrupção pode ser inadequada.
A atualização sem interrupção é um processo de vários estágios que consiste no seguinte:
Proteção de seus dados.
Se a sessão incluir uma testemunha, recomendamos a remoção da testemunha. Caso contrário, quando a instância do servidor espelho estiver sendo atualizada, a disponibilidade do banco de dados dependerá da testemunha que permanece conectada à instância do servidor principal. Depois que você remover uma testemunha, poderá atualizá-la a qualquer momento durante o processo de atualização sem interrupção, sem arriscar o tempo de inatividade do banco de dados.
Observação Para obter mais informações, consulte Quorum: como uma testemunha afeta a disponibilidade do banco de dados (Espelhamento de Banco de Dados).
Se uma sessão estiver sendo executada em modo de alto desempenho, altere o modo operacional para o modo de segurança alta.
Atualize cada instância de servidor que esteja envolvida no espelhamento de banco de dados. Uma atualização sem interrupção envolve a atualização da instância do servidor, que é atualmente o servidor espelho, executando o failover manual de cada um de seus bancos de dados espelhados e atualizando a instância do servidor que era o servidor principal (e agora é o novo servidor espelho). Neste momento, é necessário retomar o espelhamento.
Observação Antes de iniciar uma atualização sem interrupção, recomendamos a execução de um failover manual em, pelo menos, uma das sessões de espelhamento.
Reverta para o modo de alto desempenho, se for necessário.
Retorne a testemunha para a sessão de espelhamento, se for necessário.
Os procedimentos para esses estágios são descritos aqui.
Importante |
---|
Uma instância do servidor pode estar executando diferentes funções de espelhamento (servidor principal, servidor espelho ou testemunha) em sessões de espelhamento simultâneas. Nesse caso, será preciso adaptar o processo básico de atualização sem interrupção na mesma proporção. |
Para proteger os dados antes de uma atualização (uma prática recomendada)
Execute um backup de banco de dados completo em todos os bancos de dados principais.
Para fazer backup de um banco de dados
Execute o comando DBCC CHECKDB em todos os bancos de dados principais.
Para remover uma testemunha de uma sessão
Se a sessão de espelhamento envolver uma testemunha, recomendamos a remoção da testemunha antes da atualização sem interrupção.
Para remover a testemunha
Para alterar uma sessão em modo de alto desempenho para modo de segurança alta
Se a sessão de espelhamento estiver sendo executada em modo de alto desempenho, antes de executar uma atualização sem interrupção, altere o modo operacional para alta segurança sem failover automático. Use um dos métodos a seguir:
No SQL Server Management Studio: altere a opção Modo de operação para Segurança alta sem failover automático (síncrono) usando a página Espelhamento da caixa de diálogo Propriedades do Banco de Dados. Para obter mais informações sobre como acessar essa página, consulte Iniciar o Assistente para Configurar Segurança de Espelhamento de Banco de Dados (SQL Server Management Studio).
No Transact-SQL: defina a segurança da transação para FULL. Para obter mais informações, consulte Alterar a segurança da transação em uma sessão de espelhamento de banco de dados (Transact-SQL).
Para executar a atualização sem interrupção
Para minimizar o tempo de inatividade, recomendamos o seguinte: inicie a atualização sem interrupção atualizando qualquer parceiro de espelhamento que seja atualmente o servidor espelho em todas as sessões de espelhamento. Pode ser necessário atualizar várias instâncias do servidor neste momento.
Observação Uma testemunha pode ser atualizada em qualquer ponto do processo de atualização sem interrupção. Por exemplo, se uma instância do servidor for um servidor espelho na Sessão 1 e for uma testemunha na Sessão 2, será possível atualizar a instância do servidor agora.
A instância do servidor a ser atualizada primeiro depende da configuração atual das sessões de espelhamento, da seguinte maneira:
Se qualquer instância do servidor já for o servidor espelho em todas as suas sessões de espelhamento, instale o service pack ou o hotfix nessa instância do servidor.
Se todas as instâncias do servidor forem atualmente o servidor principal em alguma sessão de espelhamento, selecione uma instância do servidor a ser atualizada primeiro. Em seguida, execute manualmente um failover em cada um dos bancos de dados principais e atualize a instância do servidor instalando o service pack ou hotfix.
Após ser atualizada, a instância de servidor reingressa automaticamente em cada uma das sessões de espelhamento.
Para executar um failover manual
Para obter informações sobre o funcionamento do failover manual, consulte Troca de função durante uma sessão de espelhamento de banco de dados (SQL Server).
Em cada sessão de espelhamento cuja instância de servidor espelho acabou de ser atualizada, aguarde a sessão a ser sincronizada. Depois, conecte-se à instância do servidor principal e execute o failover manual na sessão. No failover, a instância de servidor atualizada se torna o servidor principal dessa sessão, enquanto o antigo servidor principal torna-se o servidor espelho.
O objetivo dessa etapa é que outra instância do servidor torne-se o servidor espelho em cada sessão de espelhamento na qual é um parceiro.
Depois de executar o failover, recomendamos a execução do comando DBCC CHECKDB no banco de dados principal.
Instale o service pack ou o hotfix em cada instância do servidor que seja agora o servidor espelho, em todas as sessões de espelhamento na qual seja um parceiro. Talvez seja necessário atualizar servidores múltiplos nesse momento.
Importante Em uma configuração de espelhamento complexa, algumas instâncias do servidor podem ainda ser o servidor principal original em uma ou mais sessões de espelhamento. Repita as etapas de 2 a 4 para essas instâncias de servidor até que todas as instâncias envolvidas sejam atualizadas.
Continue a sessão de espelhamento.
Observação O failover automático não funcionará até que a testemunha seja atualizada.
Instale os service packs ou hotfixes nas instâncias do servidor restantes que sejam a testemunha em todas as suas sessões de espelhamento. Depois que uma testemunha atualizada reingressa em uma sessão de espelhamento, o failover automático torna-se possível novamente. Pode necessário atualizar vários servidores nesse momento.
Para retornar a uma sessão em modo de alto desempenho
Opcionalmente, retorne ao modo de alto desempenho usando um dos seguintes métodos:
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 retornar a testemunha a uma sessão de espelhamento
Opcionalmente, em modo de segurança alta, restabeleça a testemunha para cada sessão de espelhamento.
Para restabelecer a testemunha
Consulte também
Tarefas
Iniciar o Monitor de Espelhamento de Banco de Dados (SQL Server Management Studio)
Exibir o estado de um banco de dados espelho (SQL Server Management Studio)
Referência
espelhamento de banco de dados ALTER DATABASE (Transact-SQL)
Conceitos
Espelhamento de banco de dados (SQL Server)
Modos de operação de espelhamento de banco de dados
Troca de função durante uma sessão de espelhamento de banco de dados (SQL Server)