Estou tentando encontrar uma solução para restaurar o banco de dados com um arquivo de backup completo e, em seguida, com logs de transações de hora em hora que serão criados a cada hora através do site FTP.
Então, aqui está um cenário.
Eu me conecto ao site FTP do provedor de dados e obtenho um arquivo de backup completo primeiro e restauro o banco de dados com 24 logs de transações diariamente. Então, farei uma corrida noturna (por volta das 12h) para atualizar todos os logs de transações dos dados do dia anterior.
Aprendi que existe uma opção chamada Standby
, então tentei fazer backup completo com espera, mas parece que não posso fazer isso porque o banco de dados precisa ser atualizado. Recebi este erro quando tentei Restaurar backup completo com o modo "Standby":
Este backup não pode ser restaurado usando WITH STANDBY porque é necessária uma atualização do banco de dados. Reeditar o RESTORE sem WITH STANDBY confirma isso. Agora, como a opção standby não é uma opção, qual deve ser a maneira de ler os dados do banco de dados se estivermos tentando continuar fazendo a restauração do log de transações todos os dias (com 24 arquivos)?
Estou voltando à maneira de restaurar o banco de dados usando NORECOVERY
o backup completo e, em seguida, todos os outros arquivos de log de transações (porque com RECOVERY
o modo, não posso restaurar os adicionais posteriormente).
Mas, preciso acessar o banco de dados para ler dados regularmente e consultar os dados. Não tenho certeza se existe uma maneira de ler os dados (durante o horário de trabalho) quando tentamos atualizar o banco de dados com logs de transações. Não é como se pudéssemos mudar do RECOVERY
modo durante o horário de trabalho para o NORECOVERY
modo durante o lote noturno, correto? Tenho que configurar como dois bancos de dados separados (um para restauração e outro para de alguma forma pegar dados de outro banco de dados). Não tenho certeza de que isso seja possível.
O que devo fazer?
Basicamente, precisamos obter os dados atualizados de outra empresa através de FTP. Depois de obter os dados, o desenvolvedor precisa usá-los para criar relatórios.
As opções mais fáceis são atualizar a instância de origem para a mesma versão do destino (ou garantir que as versões do mecanismo de banco de dados sejam compatíveis) ou executar uma restauração de um backup completo todos os dias para atualizar.
Por exemplo, digamos que a origem seja o SQL Server 2008 e o destino seja o SQL Server 2012. A atualização da instalação de origem do SQL Server 2008 para o SQL Server 2012 ajudaria a garantir uma correspondência de versão do banco de dados para que
STANDBY
pudesse ser usada.A aplicação de alterações a uma versão inferior do SQL Server exigirá um pouco de esforço de desenvolvimento.
O artigo de Jonathan Kehayias Database Version vs Database Compatibility Level traz algumas informações interessantes relacionadas a essa mensagem de erro:
Parece que quando você pretende usar a
WITH STANDBY
opção que o processo de atualização não deve ser necessário, ou a restauração falhará como você experimentou.Eu nunca notei esse processo de atualização até que Paul White compartilhou o link em outro post onde eu erroneamente relacionei essa atualização com o nível de compatibilidade. Achei que valeria a pena compartilhar aqui também.