Como configurar, manter e colocar online um Servidor em Espera Passiva (Transact-SQL)
A configuração de um servidor em espera geralmente envolve a criação de um backup completo e de backups periódicos de log de transações no servidor primário e a aplicação seguinte desses backups, em sequência, ao servidor em espera. O servidor em espera é fica no estado somente leitura entre as restaurações. Quando o servidor em espera precisa ficar disponível para uso, os backups de log de transações pendentes, incluindo o backup de log de transações ativo, do servidor primário, são aplicados ao servidor em espera e o banco de dados é recuperado.
Para criar backups no servidor primário
Execute a instrução BACKUP DATABASE para criar o backup completo.
Execute a instrução BACKUP LOG para criar um backup de log de transações.
Repita a Etapa 2 para cada log de transações que você queira criar com o tempo.
Para configurar e manter o servidor em espera
Execute a instrução RESTORE DATABASE usando a cláusula NORECOVERY para restaurar o backup completo criado na Etapa 1 no servidor primário.
Execute a instrução RESTORE LOG usando a cláusula STANDBY para aplicar cada log de transações criado na Etapa 2 no servidor primário. Especifique o nome do arquivo de desfazer com o conteúdo das páginas de dados antes que as transações não confirmadas que afetam essas páginas sejam revertidas.
Observação Para obter um desempenho mais rápido, quando você aplicar vários logs, use WITH NORECOVERY. Às vezes, um arquivo em espera é necessário apenas como uma cópia de failover somente leitura que você poderá usar se a entidade for colocada offline.
Repita a Etapa 2 para cada log de transações criado no servidor primário.
Para colocar o servidor em espera online (falha do servidor primário)
Se possível, faça backup de log de transações ativas no momento (a parte final do log). Para criar um backup do final do log quando não for possível iniciar o banco de dados normalmente, execute a instrução BACKUP LOG no banco de dados primário usando WITH NO_TRUNCATE. Esse é o último backup de log de transações aplicado ao servidor em espera quando esse servidor é colocado online. Para obter mais informações, consulte Como criar um backup de log de transações (Transact-SQL).
Execute a instrução RESTORE LOG usando a cláusula STANDBY para aplicar todos os backups de log de transações, incluindo o backup ativo criado na Etapa 1, que ainda não foi aplicado ao servidor em espera.
Observação Para obter um desempenho mais rápido, quando você aplicar vários logs, use WITH NORECOVERY. Para obter um exemplo de quando usar WITH STANDBY e quando usar WITH NORECOVERY, veja abaixo.
Execute a instrução RESTORE DATABASE WITH RECOVERY para recuperar o banco de dados e colocar o servidor em espera online.
Exemplo
Este exemplo configura o banco de dados MyAdvWorks em um servidor em espera. O banco de dados pode ser usado no modo somente leitura entre operações de restauração.
-- Restore the initial full backup on the standby server.
USE master
GO
RESTORE DATABASE MyAdvWorks
FROM MyAdvWorks_1
WITH STANDBY = 'c:\undo.ldf'
GO
-- Apply the first transaction log backup.
RESTORE LOG MyAdvWorks
FROM MyAdvWorks_log1
WITH STANDBY = 'c:\undo.ldf'
GO
-- Apply the next transaction log backup.
RESTORE LOG MyAdvWorks
FROM MyAdvWorks_log2
WITH STANDBY = 'c:\undo.ldf'
GO
-- Repeat for each transaction log backup created on the
-- primary server.
--
-- Time elapses.. .. ..
--
-- The primary server has failed. Back up the
-- tail of the transaction log on the primary server.
BACKUP LOG MyAdvWorks
TO MyAdvWorks_log3
WITH NO_TRUNCATE
GO
-- Apply the final (active) transaction log backup
-- to the standby server. All preceding transaction
-- log backups must have been already applied.
RESTORE LOG MyAdvWorks
FROM MyAdvWorks_log3
WITH NORECOVERY
GO
-- Recover the database on the standby server,
-- making it available for normal operations.
RESTORE DATABASE MyAdvWorks
WITH RECOVERY
GO
Consulte também