Preparar um banco de dados espelho para espelhamento (SQL Server)Prepare a Mirror Database for Mirroring (SQL Server)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Antes de uma sessão de espelhamento do banco de dados poder iniciar, o proprietário do banco de dados ou administrador de sistema devem ter certeza de que o banco de dados espelho foi criado e está pronto para espelhar.Before a database mirroring session can start, the database owner or system administrator must make sure that the mirror database has been created and is ready for mirroring. A criação de um novo banco de dados espelho requer minimamente um backup cheio do banco de dados principal e um backup de log subsequente e a restauração de ambos sobre a instância do servidor espelho, usando WITH NORECOVERY.Creating a new mirror database minimally requires taking a full backup of the principal database and a subsequent log backup and restoring them both onto the mirror server instance, using WITH NORECOVERY.

Este tópico descreve como preparar um banco de dados espelho no SQL Server 2017SQL Server 2017 usando o SQL Server Management StudioSQL Server Management Studio ou o Transact-SQLTransact-SQL.This topic describes how to prepare a mirror database in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Antes de começarBefore You Begin

RequisitosRequirements

  • As instâncias de servidor principal e espelho devem ser executadas na mesma versão do SQL ServerSQL Server.The principal and mirror server instances must be running on the same version of SQL ServerSQL Server. Embora o servidor espelho possa ter uma versão posterior do SQL Server, essa configuração é recomendável somente durante um processo de atualização cuidadosamente planejado.While it is possible for the mirror server to have a higher version of SQL Server, this configuration is only recommended during a carefully planned upgrade process. Nessa configuração, você corre o risco de um failover automático, no qual a movimentação de dados é suspensa automaticamente porque os dados não podem migrar para uma versão anterior do SQL Server.In such a configuration, you run the risk of an automatic failover, in which data movement is automatically suspended because data cannot move to a lower version of SQL Server. Para obter mais informações, veja Atualizando instâncias espelhadas.For more information, see Upgrading Mirrored Instances.

  • As instâncias de servidor principal e espelho devem ser executadas na mesma edição do SQL ServerSQL Server.The principal and mirror server instances must be running on the same edition of SQL ServerSQL Server. Para obter informações sobre o suporte para o espelhamento de banco de dados no SQL Server 2017SQL Server 2017, consulte Edições e recursos com suporte do SQL Server 2017.For information about support for database mirroring in SQL Server 2017SQL Server 2017, see Editions and Supported features of SQL Server 2017.

  • O banco de dados deve usar o modelo de recuperação completa.The database must use the full recovery model.

    Para obter mais informações, veja Exibir ou alterar o modelo de recuperação de um banco de dados (SQL Server) ou sys.databases (Transact-SQL) e ALTER DATABASE (Transact-SQL).For more information, see View or Change the Recovery Model of a Database (SQL Server) or sys.databases (Transact-SQL) and ALTER DATABASE (Transact-SQL).

  • O nome do banco de dados espelho deve ser igual ao nome do banco de dados principal.The name of the mirror database must be the same as the name of the principal database.

  • O banco de dados espelho deve estar no estado de RESTORING para espelhar o trabalho.The mirror database must be in the RESTORING state for mirroring to work. Ao preparar um banco de dados espelho, é necessário usar RESTORE WITH NORECOVERY para todas as operações de restauração.When preparing a mirror database, you must use RESTORE WITH NORECOVERY for every restore operation. Minimamente, você precisará restaurar o backup completo WITH NORECOVERY do banco de dados principal, seguido por todos os backups de log subsequentes.Minimally, you will need to restore WITH NORECOVERY a full backup of the principal database, followed by all subsequent log backups.

  • O sistema onde você planeja criar o banco de dados espelho deve ter uma unidade de disco com espaço suficiente para conter o banco de dados espelho.The system where you plan to create the mirror database must possesses a disk drive with sufficient space to hold the mirror database.

Limitações e restriçõesLimitations and Restrictions

  • Não é possível espelhar os bancos de dados do sistema mestre, msdb, tempou modelo .You cannot mirror the master, msdb, temp, or model system databases.

  • Não é possível espelhar um banco de dados que pertence a um grupo de disponibilidade AlwaysOn.You cannot mirror a database that belongs to an Always On availability group.

RecomendaçõesRecommendations

  • Use um backup de banco de dados completo muito recente ou diferencial recente do banco de dados principal.Use a very recent full database backup or a recent differential database backup of the principal database.

  • Se um trabalho de backup de log estiver agendado para ser executado com muita frequência no banco de dados principal, talvez você precise desabilitar o trabalho de backup até o início do espelhamento.If a log backup job is scheduled to run very frequently on the principal database, you might have to disable the backup job until mirroring has started.

  • 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.If possible, the path (including the drive letter) of the mirror database should be identical to the path of the principal database.

    Se os caminhos dos arquivos precisarem ser diferentes, por exemplo, se o banco de dados principal estiver na unidade 'F:', mas o sistema espelho não tiver uma unidade F:, será necessário incluir a opção MOVE na instrução RESTORE.If the file paths must differ, for example, if the principal database is on drive 'F:' but the mirror system lacks an F: drive, you must include the MOVE option in the RESTORE STATEMENT.

    Importante

    Ao adicionar um arquivo durante uma sessão de espelhamento sem afetá-la, é necessário que o caminho do arquivo exista nos dois servidores.Adding a file during a mirroring session without impacting the session requires that the path of the file exists on both servers. Portanto, se você mover os arquivos de banco de dados quando estiver criando o banco de dados espelho, uma operação adicionar arquivo posterior pode não funcionar no banco de dados espelho e causar a suspensão do espelhamento.Therefore, if you move the database files when creating the mirror database, a later add-file operation might fail on the mirror database and cause mirroring to be suspended. Para obter informações sobre como lidar com uma falha na operação de criar arquivo, veja Solução de problemas de configuração de espelhamento de banco de dados (SQL Server).For information about dealing with a failed create-file operation, see Troubleshoot Database Mirroring Configuration (SQL Server).

  • Se o banco de dados principal tiver catálogos de texto completo, é recomendável conferir Espelhamento de banco de dados e catálogos de texto completo (SQL Server).If the principal database has any full-text catalogs, we recommend that you see Database Mirroring and Full-Text Catalogs (SQL Server).

  • Em um banco de dados de produção, sempre faça backup em um dispositivo separado.For a production database, always back up to a separate device.

SegurançaSecurity

TRUSTWORTHY é definido como OFF em um backup de banco de dados.TRUSTWORTHY is set to OFF when a database is backed up. Portanto, em um novo banco de dados espelho, TRUSTWORTHY será sempre OFF.Therefore, TRUSTWORTHY is always OFF on a new mirror database. Se o banco de dados tiver que ser confiável depois de um failover, serão necessárias etapas de instalação adicionais.If the database needs to be trustworthy after a failover, additional setup steps are necessary. Para obter mais informações, veja Configurar um banco de dados espelho para usar a propriedade confiável (Transact-SQL).For more information, see Set Up a Mirror Database to Use the Trustworthy Property (Transact-SQL).

Para obter informações sobre como habilitar a decodificação automática da chave mestre de um banco de dados espelho, veja Configurar um banco de dados espelho criptografado.For information about enabling automatic decryption of the database master key of a mirror database, see Set Up an Encrypted Mirror Database.

PermissõesPermissions

Proprietário de banco de dados ou administrador do sistema.Database owner or system administrator.

Para preparar um banco de dados espelho existente para reiniciar o espelhamentoTo Prepare an Existing Mirror Database to Restart Mirroring

Se o espelhamento foi removido e o banco de dados espelho ainda está no estado de RECOVERING, você pode reinicializar o espelhamento.If mirroring has been removed and the mirror database is still in the RECOVERING state, you can restart mirroring.

  1. Faça pelo menos um backup de log no banco de dados principal.Take at least one log backup on the principal database. Para obter mais informações, veja Fazer backup de um log de transações (SQL Server).For more information, see Back Up a Transaction Log (SQL Server).

  2. No banco de dados espelho, use RESTORE WITH NORECOVERY para restaurar todos os backups de logs efetuados no banco de dados principal desde que o espelhamento foi removido.On the mirror database, use RESTORE WITH NORECOVERY to restore all log backups taken on the principal database since mirroring was removed. Para obter mais informações, veja Restaurar um backup de log de transações (SQL Server).For more information, see Restore a Transaction Log Backup (SQL Server).

Para preparar um novo banco de dados espelhoTo Prepare a New Mirror Database

Para preparar um banco de dados espelhoTo prepare a mirror database

Observação

Para obter um exemplo Transact-SQLTransact-SQL desse procedimento, veja Exemplo (Transact-SQL), mais adiante nesta seção.For a Transact-SQLTransact-SQL example of this procedure, see Example (Transact-SQL), later in this section.

  1. Conecte-se à instância de servidor principal.Connect to principal server instance.

  2. Crie um backup de banco de dados completo ou diferencial do banco de dados principal.Create either a full database backup or a differential database backup of the principal database.

  3. Geralmente, você precisa efetuar pelo menos um backup de log no banco de dados principal.Typically, you need to take at least one log backup on the principal database. Porém, um backup de log pode ser desnecessário, caso o banco de dados tenha acabado de ser criado e nenhum backup realizado ou se o modelo de recuperação foi alterado de SIMPLE para FULL.However, a log backup might be unnecessary, if the database has just been created and no log backup has been taken yet, or if the recovery model has just been changed from SIMPLE to FULL.

  4. A menos que os backups estejam em uma unidade de rede que esteja acessível de ambos os sistemas, copie o banco de dados e os backups de log para o sistema que hospedará a instância de servidor espelho.Unless the backups are on a network drive that is accessible from both systems, copy the database and log backups to the system that will host the mirror server instance.

  5. Conecte-se à instância de servidor espelho.Connect to mirror server instance.

  6. Usando RESTORE WITH NORECOVERY, crie o banco de dados espelho restaurando o backup completo do banco de dados e, opcionalmente, o backup de banco de dados diferencial mais recente, na instância do servidor espelho.Using RESTORE WITH NORECOVERY, create the mirror database by restoring the full database backup and, optionally, the most recent differential database backup, onto the mirror server instance.

    Observação

    Se restaurar o grupo de arquivos de banco de dados pelo grupo de arquivos, restaure todo o banco de dados.If you restore the database filegroup by filegroup, be sure to restore the whole database.

  7. Usando RESTORE WITH NORECOVERY, aplique quaisquer backups de log pendentes ou backups ao banco de dados espelho.Using RESTORE WITH NORECOVERY, apply any outstanding log backup or backups to the mirror database.

Exemplo (Transact-SQL)Example (Transact-SQL)

Antes de poder iniciar uma sessão de espelhamento de banco de dados, é preciso criar o banco de dados espelho.Before you can start a database mirroring session, you must create the mirror database. Isso deve ser feito antes de iniciar a sessão de espelhamento.You should do this just before starting the mirroring session.

Esse exemplo usa o banco de dados de exemplo do AdventureWorks2012AdventureWorks2012 que, por padrão, usa o modelo de recuperação simples.This example uses the AdventureWorks2012AdventureWorks2012 sample database, which uses the simple recovery model by default.

  1. Para usar espelhamento de banco de dados com o banco de dados AdventureWorks2012AdventureWorks2012 , modifique-o para usar o modelo de recuperação completa:To use database mirroring with the AdventureWorks2012AdventureWorks2012 database, modify it to use the full recovery model:

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks   
    SET RECOVERY FULL;  
    GO  
    
  2. Depois de modificar o modelo de recuperação do banco de dados de SIMPLE para FULL, crie um backup completo, que pode ser usado para criar o banco de dados do espelho.After modifying the recovery model of the database from SIMPLE to FULL, create a full backup, which can be used to create the mirror database. Como o modelo de recuperação acabou de ser alterado, a opção WITH FORMAT estará especificada para criar um novo conjunto de mídias.Because the recovery model has just been changed, the WITH FORMAT option is specified to create a new media set. Isso é útil para separar os backups sob o modelo de recuperação completa de qualquer backup anterior feito sob o modelo de recuperação simples.This is useful to separate the backups under the full recovery model from any previous backups made under the simple recovery model. Com a finalidade deste exemplo, o arquivo de backup (C:\AdventureWorks.bak) será criado na mesma unidade como o banco de dados.For the purpose of this example, the backup file (C:\AdventureWorks.bak) is created on the same drive as the database.

    Observação

    Em um banco de dados de produção, você deve sempre fazer backup em um dispositivo separado.For a production database, you should always back up to a separate device.

    Na instância de servidor principal (em PARTNERHOST1), crie um backup completo do banco de dados principal conforme segue:On the principal server instance (on PARTNERHOST1), create a full backup of the principal database as follows:

    BACKUP DATABASE AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
        WITH FORMAT  
    GO  
    
  3. Copiar o backup completo para servidor espelho.Copy the full backup to the mirror server.

  4. Usando RESTORE WITH NORECOVERY, restaure o backup completo na instância do servidor espelho.Using RESTORE WITH NORECOVERY, restore the full backup onto the mirror server instance. O comando para restaurar depende que os caminhos dos bancos de dados principal e espelho sejam idênticos.The restore command depends on whether the paths of principal and mirror databases are identical.

    • Se os caminhos forem idênticos:If the paths are identical:

      Na instância de servidor espelho (em PARTNERHOST5), restaure o backup completo conforme a seguir:On the mirror server instance (on PARTNERHOST5), restore the full backup as follows:

      RESTORE DATABASE AdventureWorks   
          FROM DISK = 'C:\AdventureWorks.bak'   
          WITH NORECOVERY  
      GO  
      
    • Se os caminhos forem diferentes:If the paths differ:

      Se o caminho do banco de dados espelho for diferente do caminho do banco de dados principal (por exemplo, as letras da unidade são diferentes), crie o banco de dados espelho requer que a operação de restauração inclua uma cláusula MOVE.If the path of the mirror database differs from the path of the principal database (for instance, their drive letters differ), creating the mirror database requires that the restore operation include a MOVE clause.

      Importante

      Se os nomes do caminho dos bancos de dados espelho e principal forem diferentes, não será possível adicionar um arquivo.If the path names of the principal and mirror databases differ, you cannot add a file. Isso acontece porque, ao receber o log para a operação do arquivo adicionado, a instância do servidor espelho tenta colocar o novo arquivo no local usado pelo banco de dados principal.This is because on receiving the log for the add file operation, the mirror server instance attempts to place the new file in the location used by the principal database.

      Por exemplo, o seguinte comando restaura um backup de um banco de dados principal que está em C:\Arquivos de Programas\Microsoft SQL Server\MSSQL.n\MSSQL\Data\ para um local diferente, D:\Arquivos de Programas\Microsoft SQL Server\MSSQL.n\MSSQL\Data\, em que o banco de dados espelho reside.For example, the following command restores a backup of a principal database residing in C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\ to a different location, D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\, where the mirror database is to reside.

      RESTORE DATABASE AdventureWorks  
         FROM DISK='C:\AdventureWorks.bak'  
         WITH NORECOVERY,   
            MOVE 'AdventureWorks_Data' TO   
               'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Data.mdf',   
            MOVE 'AdventureWorks_Log' TO  
               'D:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Data\AdventureWorks_Log.ldf';  
      GO  
      
  5. Depois de criar o backup completo, deve-se criar um backup de log no banco de dados principal.After you create the full backup, you must create a log backup on the principal database. Por exemplo, a seguinte instrução Transact-SQLTransact-SQL faz o backup de log ao mesmo arquivo usado pelo backup completo anterior:For example, the following Transact-SQLTransact-SQL statement backs up the log to the same file used by the preceding full backup:

    BACKUP LOG AdventureWorks   
        TO DISK = 'C:\AdventureWorks.bak'   
    GO  
    
  6. Antes de poder iniciar o espelhamento, é necessário aplicar o backup de log exigido (e qualquer backup de log subsequente).Before you can start mirroring, you must apply the required log backup (and any subsequent log backups).

    Por exemplo, a seguinte instrução Transact-SQLTransact-SQL restaura o primeiro log do C:\AdventureWorks.bak:For example, the following Transact-SQLTransact-SQL statement restores the first log from C:\AdventureWorks.bak:

    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\AdventureWorks.bak'   
        WITH FILE=1, NORECOVERY  
    GO  
    
  7. Se qualquer backup de log adicional ocorrer antes de começar o espelhamento, deve-se também restaurar todos os backups de log, em sequência, ao servidor espelho usando WITH NORECOVERY.If any additional log backups occur before you start mirroring, you must also restore all of those log backups, in sequence, to the mirror server using WITH NORECOVERY.

    Por exemplo, a instrução seguinte Transact-SQLTransact-SQL restaura dois logs adicionais de C:\AdventureWorks.bak:For example, the following Transact-SQLTransact-SQL statement restores two additional logs from C:\AdventureWorks.bak:

    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\AdventureWorks.bak'   
        WITH FILE=2, NORECOVERY  
    GO  
    RESTORE LOG AdventureWorks   
        FROM DISK = 'C:\AdventureWorks.bak'   
        WITH FILE=3, NORECOVERY  
    GO  
    

Para obter um exemplo completo de configuração de espelhamento de banco de dados, exibição da configuração de segurança, preparo do banco de dados espelho, configuração de parceiros e adição de uma testemunha, veja Configurando o espelhamento de banco de dados (SQL Server).For a complete example of setting up database mirroring, showing security setup, preparing the mirror database, setting up the partners, and adding a witness, see Setting Up Database Mirroring (SQL Server).

Acompanhamento: depois de preparar um banco de dados espelhoFollow Up: After Preparing a Mirror Database

  1. Se algum backup de log adicional tiver sido realizado desde sua operação RESTORE LOG mais recente, você deverá aplicar manualmente todos os backups de log adicionais, usando RESTORE WITH NORECOVERY.If any additional log backups have been taken since your most recent RESTORE LOG operation, you must manually apply every additional log backup, using RESTORE WITH NORECOVERY.

  2. Inicie a sessão de espelhamento.Start the mirroring session. Para obter mais informações, veja Estabelecer uma sessão de espelhamento de banco de dados usando a Autenticação do Windows (SQL Server Management Studio) ou o Estabelecer uma sessão de espelhamento de banco de dados com a Autenticação do Windows (Transact-SQL).For more information, see Establish a Database Mirroring Session Using Windows Authentication (SQL Server Management Studio) or Establish a Database Mirroring Session Using Windows Authentication (Transact-SQL).

  3. Se você desabilitou o trabalho de backup no banco de dados principal, reabilite o trabalho.If you disabled the backup job on the principal database, reenable the job.

  4. Se o banco de dados precisar estar confiável após um failover, serão necessárias etapas adicionais de instalação após o início do espelhamento.If the database needs to be trustworthy after a failover, extra setup steps are necessary after mirroring begins. Para obter mais informações, veja Configurar um banco de dados espelho para usar a propriedade confiável (Transact-SQL).For more information, see Set Up a Mirror Database to Use the Trustworthy Property (Transact-SQL).

Tarefas relacionadasRelated Tasks

Consulte TambémSee Also

Espelhamento de banco de dados (SQL Server) Database Mirroring (SQL Server)
Segurança de transporte para espelhamento de banco de dados e grupos de disponibilidade AlwaysOn (SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
Configurando o espelhamento de banco de dados (SQL Server) Setting Up Database Mirroring (SQL Server)
Fazer backup e restaurar índices e catálogos de texto completo Back Up and Restore Full-Text Catalogs and Indexes
Espelhamento de banco de dados e catálogos de texto completo (SQL Server) Database Mirroring and Full-Text Catalogs (SQL Server)
Espelhamento e replicação de banco de dados (SQL Server) Database Mirroring and Replication (SQL Server)
BACKUP (Transact-SQL) BACKUP (Transact-SQL)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Argumentos de RESTORE (Transact-SQL)RESTORE Arguments (Transact-SQL)