Pergunta

Gente,

Suponha que você receba um backup desconectado de um banco de dados SQL Server (2005 ou 2008) e restaurar que a sua instância do SQL Server.

Existe uma maneira, existe um catálogo do sistema ou algo assim, para saber quando a última operação de gravação ocorreu nesse banco de dados particular? Eu gostaria de ser capaz de descobrir o que dia um backup de banco de dados em particular foi de - infelizmente, isso não é realmente a ser gravado explicitamente em qualquer lugar, e verificar todas as dezenas de tabela de dados para o selo maior data / hora não é realmente uma opção, quer ....

Todas as idéias? Claro - Eu posso olhar para o carimbo de data / hora do arquivo .bak * - mas eu posso saber mais precisamente a partir de dentro SQL Server (Management Studio) ??

Obrigado! Marc

Foi útil?

Solução

Você pode tentar RESTORE HEADERONLY em seu arquivo de backup, como descrito aqui

que deve dar-lhe a informação que você está procurando.

Outras dicas

Se você tiver acesso à instância do SQL Server onde o backup foi originalmente executado, você deve ser capaz de consulta msdb:

SELECT backup_set_id, backup_start_date, backup_finish_date
FROM  msdb.dbo.backupset  
WHERE database_name = 'MyDBname' AND type = 'D' 

Existem vários quadro relativo aos conjuntos de backup:

  • backupfile - contém uma linha para cada arquivo de arquivo de dados ou log backup
  • backupmediafamily - contém uma linha para cada família de mídia
  • backupmediaset - contém uma linha para cada conjunto de mídias de backup
  • backupset - contém uma linha para cada conjunto de backup

Ao consultar essas tabelas você pode determinar quando os últimos backups ocorreu, o tipo de backups ocorreu e onde os arquivos foram escritos para.

Um pouco tarde, mas deve ser o que quiser.

Cada gravação para o banco de dados é uma entrada no arquivo de log. Que tem um LSN. Isso deve ser armazenada no backup para restaurações de log, pelo menos.

Então, como para coincidir com LSN a um datetime?

SELECT TOP 5 [End Time] AS BringFirst, *
FROM ::fn_dblog (NULL, NULL)
WHERE [End Time] IS NOT NULL
ORDER BY BringFirst DESC

Eu nunca usei isso antes (só tinha um jogo para esta resposta). Algumas gravações são muito provável parte do próprio backup, mas você deve ser capaz de distingui-los com um pouco de picar ao redor.

tanto quanto eu sei que no banco de dados mestre existe uma Log-mesa onde cada gravação é armazenado com informações detalhadas. Mas não estou certo se você precisa ativar o Log-mecanismo - de modo que o padrão é não log e você tem que habilitá-lo. No Oracle, por exemplo, é a volta existe uma tabela de sistema de banco de dados de log que você pode consultar.

Se isto não é o caso -. Você poderia ainda escrever-se um gatilho e que se aplicam em cada mesa / coluna necessário e fazer o log-se

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top