O que acontece com as conexões ativas do banco de dados do SQL Server se eu fizer o backup do log de transações com a opção NORECOVERY?

1

Algumas informações: Estou migrando meus bancos de dados do SQL Server para uma nova máquina e escrevi alguns scripts do Powershell para enviar / aplicar backups completos e logs de transações de forma assíncrona ao novo servidor, mas minha pergunta é sobre backups de log finais. Eventualmente, eu preciso que meu banco de dados de origem esteja indisponível para os usuários, para que eu possa fazer o backup do log final e aplicá-lo à nova instância.

O que acontece com as conexões ativas se eu fizer algo assim:

Backup-SqlDatabase -ServerInstance $serverInstance -Database $db -BackupAction Log -NoRecovery -Credential $credential -BackupFile $backupFile

Ou similarmente:

BACKUP LOG <db> TO DISK = <path> WITH NORECOVERY

Se eu usar a opção NORECOVERY, sei que meu banco de dados estará indisponível, mas as transações não confirmadas serão recuperadas imediatamente ou o banco de dados continuará com transações ativas e recusará novas conexões?

Estou curioso para saber o que acontece aqui, mas agradeço muito qualquer outro conselho relevante sobre o meu processo. Obrigado antecipadamente!

    
por Ranic 17.06.2014 / 17:16

1 resposta

0

Realizar backups de logs finais fará com que o banco de dados fique inacessível (NORECOVERY) ou somente leitura (STANDBY). O que é esperado se eu precisar extrair a parte ativa do arquivo de log. Se você não fez, essa atividade ainda poderia ser gravada no arquivo de log e você perderia a consistência.

Se você usar STANDBY, o banco de dados será simplesmente marcado como somente leitura e você ainda poderá capturar o final do log. Outra opção para migrações que é um pouco mais comum é apenas configurar o envio de log para seu servidor remoto, se possível. A configuração do envio de logs permitirá que os dados sejam mantidos atualizados na sua instância remota enquanto você ainda estiver fazendo os preparativos finais. Então, para a última etapa, basta fazer um backup de log final, movendo esse arquivo menor para o servidor remoto e, em seguida, invertendo tudo.

    
por 18.06.2014 / 16:17