Restaurei um banco de dados para um servidor SQL diferente, mas curiosamente as tabelas de backupset msdb neste servidor estão mostrando o histórico de backup do banco de dados do servidor de origem.
Isso é esperado?
Nota: não restaurei o msdb.
Passos para reproduzir:
- No servidor de origem, execute um backup completo, seguido de alguns backups de log.
- No servidor de destino, usando a UI de restauração do banco de dados, execute a restauração do backup completo e dos backups de log.
- Abra a consulta abaixo no servidor de destino e você verá o histórico completo e de backup de log (do servidor de origem) deste banco de dados aparecer aqui.
Consulta:
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
msdb.dbo.backupset.database_name,
msdb.dbo.backupset.backup_start_date,
msdb.dbo.backupset.backup_finish_date,
msdb.dbo.backupset.expiration_date,
CASE msdb..backupset.type
WHEN 'D' THEN 'Database'
WHEN 'L' THEN 'Log'
END AS backup_type,
msdb.dbo.backupset.backup_size,
msdb.dbo.backupmediafamily.logical_device_name,
msdb.dbo.backupmediafamily.physical_device_name,
msdb.dbo.backupset.name AS backupset_name,
msdb.dbo.backupset.description
FROM
msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
WHERE
(CONVERT(datetime, msdb.dbo.backupset.backup_start_date, 102) >= GETDATE() - 7)
ORDER BY
msdb.dbo.backupset.backup_finish_date desc
Isso está documentado nestes artigos: Instruções RESTORE (Transact-SQL) e Histórico de backup e informações de cabeçalho (SQL Server)
Isso não dá nenhuma explicação sobre isso, mas acho útil, pois
restorehistory
você pode extrair apenas a data de restauração, não a data de backup. Eu uso isso em meu monitoramento de envio de log no servidor secundário.A restauração de um banco de dados não traz nenhum histórico de backup anterior. A restauração atualizará algumas das tabelas msdb, mas apenas atualizará a restauração e adicionará o conjunto de backup do backup que foi usado para criar a restauração.
Fazer a reprodução fornecida mostra apenas o único item que mencionei acima. Se eu fiz backup de um banco de dados 100 vezes e depois fiz o 100º backup e o restaurei para outra instância, não vejo 100 backups no msdb. Você está acessando a instância errada ou também restaurou o msdb, mesmo tendo notado que não restaurou o msdb.