昨晚,我在 SQL Server 管理中对数据库进行了完整备份,当我恢复数据库而不是完整时,它丢失了过去几个月的所有数据。
完整备份是昨晚进行的,发布时间为 - 07/05/2014 16:54 但是表中的信息已恢复至 24/02/2014
任何帮助将不胜感激 -
小智 5
您的备份文件是否包含多个备份(称为备份集),并且您是否仅从备份文件中恢复最早的备份集?
要查看文件中的备份集,请运行以下命令并记下Position
表示备份集的列:
RESTORE HEADERONLY FROM DISK='mybackup.bak'
Run Code Online (Sandbox Code Playgroud)
要从备份恢复特定备份集:
RESTORE DATABASE ... WITH FILE = <position from previous statement>
Run Code Online (Sandbox Code Playgroud)
如果您每次在备份脚本中使用相同的文件名(例如BACKUP DATABASE MyDb TO DISK='backup.bak'
),并且在备份之间未删除或更改该文件,则您的备份将添加到该文件的备份集中。如果随后RESTORE DATABASE ...
不带WITH FILE=<position>
子句运行,您将始终恢复备份介质中的第一个备份集 - 通常是最早的备份集。
该RESTORE HEADERONLY
命令对于备份文件很有用(如果您在与创建它的服务器不同的服务器上查看它)。您还可以通过运行以下命令在创建它们的服务器上查看备份:
SELECT backup_set_id, media_set_id, position, backup_finish_date
FROM msdb.dbo.backupset
Run Code Online (Sandbox Code Playgroud)
如果您想检查刚刚从多文件介质恢复的备份集,则可以运行:
SELECT * FROM msdb.dbo.restorehistory
Run Code Online (Sandbox Code Playgroud)
请注意,backup_set_id
它对应于 msdbbackupset
表,并依次对应于媒体文件和该文件中的位置。
来自MSDN:RESTORE 参数 (Transact-SQL):
备份集选项
文件={备份集文件号| @backup_set_file_number }
...
未指定时,默认为 1。
归档时间: |
|
查看次数: |
331 次 |
最近记录: |