Pré-requisitos, restrições e recomendações para espelhamento de banco de dados

ObservaçãoObservação

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use o Grupos de Disponibilidade AlwaysOn.

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 sobre espelhamento de banco de dados, consulte Espelhamento de banco de dados (SQL Server).

ObservaçãoObservação

O formato de armazenamento do SQL Server em disco é o mesmo nos ambientes de 64 bits e 32 bits. Portanto, uma sessão de espelhamento de banco de dados pode combinar instâncias de servidor executadas em um ambiente de 32 bits e instâncias de servidor executadas em um ambiente de 64 bits.

Neste tópico:

  • Suporte para espelhamento de banco de dados

  • Pré-requisitos

  • Restrições

  • Recomendações para configuração de servidores de parceiro

  • Recomendações para implantação de espelhamento de banco de dados

Suporte para espelhamento de banco de dados

Para obter informações sobre suporte para espelhamento de bancos de dados no SQL Server 2012, consulte Recursos compatíveis com as edições do SQL Server 2012.

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, consulte Nível de compatibilidade de ALTER DATABASE (Transact-SQL).

[Início]

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çãoObservaçã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, consulte Minimizar o tempo de inatividade de bancos de dados espelhados ao atualizar instâncias do servidor.

  • 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, consulte Modelos de recuperação (SQL Server).

  • Verifique se o servidor espelho tem espaço em disco suficiente para o banco de dados espelho.

    ObservaçãoObservação

    Para obter informações sobre como usar espelhamento de banco de dados em um banco de dados replicado, consulte 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.

    Observação importanteImportante

    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.

[Início]

Restrições

  • Somente bancos de dados de usuários podem ser espelhados. Você não pode espelhar os bancos de dados master, msdb, tempdb ou 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.

  • Em um sistema de 32 bits, o espelhamento de banco de dados dá suporte a um máximo de 10 bancos de dados por instância de servidor, devido aos números de threads de trabalho consumidos em cada sessão de espelhamento de banco de dados.

  • 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, consulte Transações envolvendo todos os bancos de dados sem suporte para espelhamento de banco de dados ou Grupos de Disponibilidade AlwaysOn (SQL Server).

[Início]

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çãoObservaçã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:.

    Observação importanteImportante

    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 agrupamento. 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, consulte Estime 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, consulte Recomendações para implantação de espelhamento de banco de dados, posteriormente neste tópico.

[Início]

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:

  1. 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 Modos de operação de espelhamento de banco de dados.

    Observação importanteImportante

    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 Possíveis falhas durante espelhamento de banco de dados. Para obter informações sobre como monitorar o espelhamento de banco de dados, consulte Monitorando o espelhamento de banco de dados (SQL Server).

  2. 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 Modos de operação de espelhamento de banco de dados.

  3. 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, consulte Troca de função durante uma sessão de espelhamento de banco de dados (SQL Server).

[Início]

Consulte também

Conceitos

Configurando uma sessão de espelhamento de banco de dados (SQL Server)

Segurança de transporte para espelhamento de banco de dados e grupos de disponibilidade AlwaysOn (SQL Server)

Espelhamento de banco de dados (SQL Server)

Solução de problemas de configuração de espelhamento de banco de dados (SQL Server)