Atualização de Instâncias Espelhadas
Aplica-se a: SQL Server
Ao atualizar uma instância espelhada do SQL Server para uma nova versão, para um novo service pack ou uma atualização cumulativa do SQL Server ou para um novo service pack ou atualização cumulativa do Windows, você pode reduzir o tempo de inatividade para cada banco de dados espelhado para um failover manual executando uma atualização sem interrupção (ou dois failovers manuais em caso de failback para a primária original). 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 SQL Server que funciona como o servidor espelho de uma sessão de espelhamento, executar o failover manual no banco de dados espelhado, atualizar a antiga instância principal do SQL Server e retomar 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 SQL Server que você está atualizando.
Observação
Para saber mais sobre como usar o espelhamento de banco de dados com envio de log durante a migração, baixe este white paper sobre Espelhamento de Banco de Dados e Envio de Log.
Pré-requisitos
Antes de começar, examine as seguintes informações importantes:
Versão com suporte e atualizações da edição: verifique se você pode atualizar para o SQL Server da sua versão do sistema operacional Windows e da versão do SQL Server. Por exemplo, não é possível atualizar diretamente de uma instância do SQL Server 2005 para a versão mais recente do SQL Server.
Escolher um método de atualização do mecanismo de banco de dados: selecione o método e as etapas de atualização apropriados com base em sua análise de atualizações de versão e de edição com suporte e também com base em outros componentes instalados em seu ambiente a fim de atualizar os componentes na ordem correta.
Planejar e testar o plano de atualização do mecanismo de banco de dados: Analise as notas de versão e os problemas conhecidos da atualização, a lista de verificação pré-atualização, e desenvolva e teste o plano de atualização.
Requisitos de hardware e software para a instalação do SQL Server 2016: Analise os requisitos de software para a instalação do SQL Server. Se for necessário um software adicional, instale-o em cada nó antes de começar o processo de atualização para minimizar qualquer tempo de inatividade.
Preparação recomendada (práticas recomendadas)
Antes de iniciar uma atualização sem-interrupção, é recomendável:
Executar um failover manual em pelo menos uma das sessões de espelhamento:
Observação
Para obter informações sobre como funciona o failover manual, confira Troca de função durante uma sessão de espelhamento de banco de dados (SQL Server).
Proteger seus dados:
Executar um backup de banco de dados completo em todos os bancos de dados principais:
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.
Observação
Para obter informações sobre os modos de operação, consulte Modos de operação do Espelhamento de Banco de Dados.
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.
Importante
Uma instância do servidor pode estar executando diferentes funções de espelhamento (servidor principal, servidor espelho ou testemunha) nas sessões de espelhamento simultâneas. Nesse caso, é preciso adaptar o processo básico de atualização sem-interrupção na mesma proporção. Para obter mais informações, confira Troca de Função Durante uma Sessão de Espelhamento de Banco de Dados (SQL Server).
Observação
Em muitos casos, após a atualização sem interrupção, você executará failback para o servidor principal original.
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 a atualização sem-interrupção, altere o modo operacional para segurança alta sem failover automático.
Importante
Se o servidor espelho está geograficamente distante do servidor principal, uma atualização sem-interrupção pode ser inadequada.
Em 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 informações sobre como acessar essa página, confira Iniciar o assistente para Configurar Segurança de Espelhamento de Banco de Dados (SQL Server Management Studio).
Em Transact-SQL: defina a segurança de transações como FULL. Para obter mais informações, confira Alterar a segurança da transação em uma sessão de espelhamento de banco de dados (Transact-SQL)
Para remover uma testemunha de uma sessão
Se a sessão de espelhamento envolver uma testemunha, recomendamos a remoção da testemunha antes de executar a atualização sem-interrupção. 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 remover uma testemunha, é possível 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, confira Quorum: como uma testemunha afeta a disponibilidade do banco de dados (Espelhamento de banco de dados).
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 no momento seja o servidor espelho em todas as suas 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 de suas sessões de espelhamento, como a seguir:
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 nova versão.
Se todas as instâncias de servidor forem atualmente o servidor principal em quaisquer sessões de espelhamento, selecione uma instância de servidor para atualizar primeiro. Em seguida, execute manualmente um failover em cada um de seus bancos de dados principais e atualize essa instância de servidor.
Depois de ser atualizada, a instância do servidor retoma automaticamente cada uma das sessões de espelhamento.
Em cada sessão de espelhamento cuja instância do servidor de espelho acabou de ser atualizada, aguarde a sessão ser sincronizada. Depois, conecte-se à instância do servidor principal e execute o failover manual na sessão. Em failover, a instância do 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 do servidor torne-se o servidor espelho em cada sessão de espelhamento na qual é um parceiro.
Restrições depois da execução de failover para uma instância de servidor atualizada.
Depois de executar failover de uma instância de servidor anterior para uma instância do servidor do SQL Server atualizada, 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ção
O estabelecimento de uma nova sessão de espelhamento exige que todas as instâncias de servidor estejam executando a mesma versão do SQL Server.
Depois de executar o failover, recomendamos a execução do comando DBCC CHECKDB no banco de dados principal.
Atualize cada instância de servidor que seja agora o servidor espelho em todas as sessões de espelhamento nas quais é um parceiro. Pode necessário atualizar vários servidores 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 2 a 4 para essas instâncias do 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 tenha sido atualizada e novamente adicionada à sessão de espelhamento.
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. 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:
Em 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 .
Em Transact-SQL: use ALTER DATABASE para definir a segurança da transação como OFF.
Para adicionar uma testemunha de volta a uma sessão de espelhamento
Opcionalmente, em modo de segurança alta, restabeleça a testemunha para cada sessão de espelhamento.
Para retornar uma testemunha
Consulte Também
Atualizar para o SQL Server 2016 usando o Assistente de Instalação (instalação)
Instalar o SQL Server 2016 do prompt de comando
espelhamento de banco de dados ALTER DATABASE (Transact-SQL)
BACKUP (Transact-SQL)
Exibir o estado de um banco de dados espelho (SQL Server Management Studio)
Espelhamento de banco de dados (SQL Server)
Troca de função durante uma sessão de espelhamento de banco de dados (SQL Server)
Forçar serviço em uma sessão de espelhamento de banco de dados (Transact-SQL)
Iniciar o Monitor de Espelhamento de Banco de Dados (SQL Server Management Studio)
Modos de operação de espelhamento de banco de dados