No momento, estou tentando manter uma cópia de nosso banco de dados de produção atualizada, restaurando um backup completo, seguido por um diferencial e, em seguida, complementando com logs de transações conforme eles se tornam disponíveis no banco de dados de produção. A origem é o SQL Server 2008 Enterprise Edition e o destino é o SQL Server 2014 Web. Fazendo isso, notei que você pode restaurar o mesmo log várias vezes (desde que um mais recente não tenha sido restaurado depois).
Pergunta: o que acontece quando você restaura o mesmo log de transações várias vezes? Ele é sobrescrito? Descartado? Isso está estragando meu banco de dados?
Por exemplo
sqlcmd -E -Q "RESTORE LOG [databasename] FROM DISK = 'D:\ LOG\SERVERNAME_databasename_LOG_20160809_141504.trn' WITH NORECOVERY" 0 páginas processadas para o banco de dados 'databasename', arquivo 'databasename_dat' no arquivo 1. Processadas 0 páginas para o banco de dados ' databasename', arquivo 'MyDBDat' no arquivo 1. Processou 65662 páginas para o banco de dados 'databasename', arquivo 'databasename_log' no arquivo 1. RESTORE LOG processou com sucesso 65662 páginas em 27,589 segundos (18,593 MB/s).
sqlcmd -E -Q "RESTORE LOG [databasename] FROM DISK = 'D:\LOG\SERVERNAME_databasename_LOG_20160809_141504.trn' WITH NORECOVERY" 0 páginas processadas para o banco de dados 'databasename', arquivo 'databasename_dat' no arquivo 1. Processadas 0 páginas para o banco de dados ' databasename', arquivo 'MyDBDat' no arquivo 1. Processou 65662 páginas para o banco de dados 'databasename', arquivo 'databasename_log' no arquivo 1. RESTORE LOG processou com sucesso 65662 páginas em 26,238 segundos (19,551 MB/s).
Restaurar o mesmo log de transações repetidas vezes não compra nada. As alterações no log já terão sido aplicadas aos arquivos do banco de dados após a primeira restauração e nenhuma outra ação será necessária nas restaurações subsequentes do mesmo backup do log de transações.
Além disso, lembre-se de que você não pode acessar um banco de dados até que tenha emitido o comando de recuperação, A MENOS QUE esteja usando um arquivo de espera que permitirá o acesso somente leitura.
Dependendo de POR QUE você deseja manter a sincronização com seu banco de dados de produção, parece que você pode querer pesquisar o envio de logs