Pré-requisitos, restrições e recomendações para espelhamento de banco de dados
Aplica-se a: SQL Server
Observação
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use Grupos de disponibilidade AlwaysOn em vez disso.
O espelhamento de banco de dados no SQL Server é uma tecnologia distinta do Espelhamento de Banco de Dados do Microsoft Fabric.
Este tópico descreve os pré-requisitos e as recomendações para configuração do espelhamento de banco de dados. Para obter uma introdução ao espelhamento de banco de dados, confira Espelhamento de Banco de Dados (SQL Server).
Suporte para espelhamento de banco de dados
Para obter uma lista dos recursos compatíveis com as edições do SQL Server no Windows, confira:
- Edições e recursos com suporte do SQL Server 2022
- Edições e recursos com suporte do SQL Server 2019
- Edições e recursos com suporte do SQL Server 2017
- Edições e recursos com suporte do SQL Server 2016
Observe que o espelhamento de banco de dados funciona com qualquer nível de compatibilidade de banco de dados com suporte. Para obter informações sobre os níveis de compatibilidade com suporte, veja Nível de compatibilidade de ALTER DATABASE (Transact-SQL).
Pré-requisitos
Para que uma sessão de espelhamento seja estabelecida, os parceiros e a testemunha, se houver, deverão ser executados na mesma versão do SQL Server.
Os dois parceiros, ou seja, o servidor principal e servidor espelho, deve estar executando a mesma edição do SQL Server. A testemunha, se houver, pode ser executada em qualquer edição do SQL Server que oferecer suporte ao espelhamento de banco de dados.
Observação
Você pode atualizar instâncias de servidor parceiras em uma sessão de espelhamento para uma versão mais recente do SQL Server. Para obter mais informações, veja Atualizando instâncias espelhadas.
O banco de dados deve usar o modelo de recuperação completa. Os modelos de recuperação simples e bulk-logged não oferecem suporte ao espelhamento de banco de dados. Por isso, todas as operações em massa são sempre totalmente registradas para um banco de dados espelhado. Para obter informações sobre modelos de recuperação, veja Modelos de recuperação (SQL Server).
Verifique se o servidor espelho tem espaço em disco suficiente para o banco de dados espelho.
Observação
Para obter informações sobre como usar o espelhamento de banco de dados em um banco de dados replicado, veja Espelhamento e replicação de banco de dados (SQL Server).
Quando você está criando o banco de dados espelho no servidor espelho, assegure-se de restaurar o backup do banco de dados principal especificando o mesmo nome de banco de dados WITH NORECOVERY. Além disso, todos os backups de log criados depois daquele backup também devem ser aplicados, novamente com WITH NORECOVERY.
Importante
Se o espelhamento de banco de dados for interrompido, antes que você possa reiniciá-lo, todos os backups de logs subsequentes do banco de dados principal deverão ser aplicados ao banco de dados espelho.
Restrições
Somente bancos de dados de usuários podem ser espelhados. Você não pode espelhar os bancos de dados master, msdb, tempdbou model .
Um banco de dados espelhado não pode ser renomeado durante uma sessão de espelhamento de banco de dados.
O espelhamento de banco de dados não oferece suporte a FILESTREAM. Um grupo de arquivos FILESTREAM não pode ser criado no servidor principal. O espelhamento de banco de dados não pode ser configurado para um banco de dados que contenha grupos de arquivos FILESTREAM.
Não há suporte para espelhamento de banco de dados com transações de banco de dados cruzado ou transações distribuídas. Para obter mais informações, confira Transações entre bancos de dados e transações distribuídas para espelhamento de banco de dados e grupos de disponibilidade Always On (SQL Server).
Recomendações para configuração de servidores de parceiro
Os parceiros devem ser executados em sistemas comparáveis que podem controlar cargas de trabalho idênticas.
Observação
Se você planeja usar modo de alta segurança com failover automático, a carga normal em cada parceiro de failover deve ser menor que 50 por cento da CPU. Se sua carga de trabalho sobrecarregar a CPU, haverá a possibilidade de um parceiro de failover não verificar as outras instâncias de servidor na sessão de espelhamento. Isso causa um failover desnecessário. Se você não puder manter o uso de CPU abaixo de 50 por cento, recomendaremos que use o modo alta segurança sem failover automático ou modo de alto desempenho.
Se possível, o caminho (inclusive a letra da unidade) do banco de dados espelho deve ser idêntico ao caminho do banco de dados principal. Será necessário incluir a opção MOVE na instrução RESTORE se os layouts de arquivo forem diferentes. Por exemplo, se o banco de dados principal estiver na unidade 'F:' mas o sistema espelho não tiver uma unidade F:.
Importante
Se você mover os arquivos de banco de dados quando estiver criando o banco de dados espelho, é possível que não consiga adicionar arquivos ao banco de dados posteriormente, sem suspender o espelhamento.
Todas as instâncias de servidor em uma sessão de espelhamento devem usar a mesma página de código mestre e ordenação. Diferenças podem causar um problema durante a sessão de espelhamento.
Opcionalmente, calcule a hora de parar um banco de dados, para garantir que a configuração do sistema fornecerá o desempenho solicitado. Para obter mais informações, confira Estimar a interrupção do serviço durante troca de função (Espelhamento de Banco de Dados).
Para obter um melhor desempenho, use um adaptador de rede dedicado (placa de interface de rede) para espelhamento.
Não fazemos nenhuma recomendação sobre a confiabilidade de uma WAN (rede de longa distância) para espelhamento de banco de dados no modo de alta segurança. Se você decidir usar o modo de alta segurança em uma WAN, cuidado ao adicionar uma testemunha à sessão, porque podem ocorrer failovers automáticos indesejados. Para obter mais informações, veja Recomendações para implantação de espelhamento de banco de dados, posteriormente neste tópico.
Recomendações para implantação de espelhamento de banco de dados
Um desempenho ideal de espelhamento de banco de dados é obtido usando uma operação assíncrona. Uma sessão de espelhamento que usa operação síncrona pode experimentar desempenho reduzido quando sua carga de trabalho gerar grandes quantidades de dados de log de transações.
Em ambientes de teste, é apropriado explorar todos os modos operacionais para avaliar o desempenho do espelhamento de banco de dados. Porém, antes de implantar o espelhamento em um ambiente de produção, verifique se você entendeu o funcionamento real da rede.
O modo de alta segurança com failover automático é projetado para uma rede de muito serviço que tem uma conexão dedicada, ou uma configuração de rede bastante simples que minimiza as origens de possíveis falhas na rede. Tal ambiente de rede de alta qualidade é necessário no modo de alta segurança com failover automático e é recomendado em todas as sessões de espelhamento de banco de dados. No entanto, o modo de alto desempenho e o modo de alta segurança sem failover automático são muito menos afetados pela confiabilidade da rede.
Portanto, para ambientes de produção, recomendamos que você obedeça às seguintes diretrizes de implantação:
Inicie a execução no modo assíncrono, de alto desempenho. Esse modo é o menos sensível ao ambiente de rede e fornece a melhor configuração para explorar o espelhamento. Recomendamos que você execute seu sistema de forma assíncrona até ter confiança de que sua largura de banda oferece suporte ao espelhamento e ter desenvolvido uma compreensão da configuração de espelhamento e do desempenho do modo assíncrono em seu ambiente. Para obter mais informações, consulte Database Mirroring Operating Modes.
Importante
Durante o teste, recomendamos que você monitore suas sessões quanto a erros de rede que possam causar falhas no espelhamento de banco de dados. Para obter mais informações sobre origens de falha potenciais, consulte Possible Failures During Database Mirroring. Para obter informações sobre como monitorar o espelhamento de banco de dados, veja Monitorando o espelhamento de banco de dados (SQL Server).
Quando você tiver certeza de que a operação assíncrona está atendendo a suas necessidades empresariais, tente a operação síncrona para aumentar a proteção dos dados. Quando você testar o funcionamento do espelhamento síncrono em seu ambiente, recomendamos que tente primeiro o modo de alta segurança sem failover automático. O principal objetivo desse teste é verificar como a operação síncrona afeta o desempenho do banco de dados. Para obter mais informações, consulte Database Mirroring Operating Modes.
Aguarde para habilitar o failover automático até que esteja confiante de que o modo de alta segurança sem failover automático esteja atendendo às necessidades comerciais e que os erros de rede não estejam provocando falhas. Para obter mais informações, confira Troca de Função Durante uma Sessão de Espelhamento de Banco de Dados (SQL Server).
Consulte Também
Configurando o espelhamento de banco de dados (SQL Server)
Segurança do transporte para espelhamento de banco de dados e Grupos de Disponibilidade Always On (SQL Server)
Espelhamento de banco de dados (SQL Server)
Solução de problemas de configuração de espelhamento de banco de dados (SQL Server)