SQL Server 找回没有备份的数据
时间:2011-03-29 来源:Amaranthus
问题:
有一个库, 做的是 全备份+日志备份,在2011年3月8日,14点产生一次全备份,在14:10分产生日志备份,在14:12分down 机,请问 怎么能恢复 14:10 到 14:12分中的这段数据(前提,前期日志备份全部正确可用),机器硬盘完好。
使用方法:
1.如果数据库已经损坏
如果数据库已经损坏,可以使用 backup log {数据库名} to {磁盘逻辑地址} with no_truncate 备份数据库。
因为可能存在对受损数据库备份日志尾部时,日志备份中正常捕获的部分元数据可能不可用。
尾日志备份可捕获日志尾部,即使数据库离线、损坏或缺少数据文件。
这可能导致还原信息命令和 msdb 生成不完整的元数据。但只有元数据是不完整的,而捕获的日志是完整且可用的。
如果尾日志备份包含不完整的元数据,则 backupset 表中的 has_incomplete_metadata 将设置为 1。
此外,在 RESTORE HEADERONLY 的输出中,HasIncompleteMetadata 将设置为 1。
如果尾日志备份中的元数据不完整,则 backupfilegroup 表在尾日志备份时将丢失文件组的大多数相关信息。
大多数 backupfilegroup 表列为 NULL;只有以下几列有意义:
- backup_set_id
- filegroup_id
- type
- type_desc
- is_readonly
2. 如果数据库未损坏
使用 backup log {数据库名} to {磁盘逻辑地址} with NORECOVERY 备份尾日志