sql-server-2008 - 选择追加到现有备份而不是覆盖

标签 sql-server-2008 database-restore database-backups

我有一个数据库,两天前我对其进行了第一次备份。 然后昨天我花了整整一个时间添加新记录。 今天早上我运行了备份,(但我选择附加到现有备份集),如下图所示。

我刚刚运行了恢复,发现它清除了我昨天的所有数据,并从 2 天前的备份中恢复了它。 不是今天早上备份的版本。

为了安全起见,我压缩了这个备份文件。

我更改了数据库中的一些数据,然后再次运行备份,但这次我选择了“覆盖所有现有备份集”

现在,当我恢复数据库时,它似乎可以正确从备份中恢复数据。 我想我在这里吸取了教训,如果我错了,那就正确

我的问题是,我是否失去了一整天的工作?

我仍然安全地保存着今天早上的备份 .bak 文件。 我可以用正确的数据恢复吗?

alt text http://img62.imageshack.us/img62/1934/backup1.gif

最佳答案

好消息是您没有(或至少不应该)丢失您的工作。通过选择“附加”选项(这是默认行为),所发生的一切就是将最新的备份附加到上次备份的末尾。因此,在同一个备份文件上您有 2 个备份。

当您从备份文件恢复时,如果您通过 GUI 执行此操作,您应该可以选择要恢复的特定备份集 - 并且应该有两个备份集可供您恢复。

如果您通过 T-SQL 执行此操作,恢复命令将类似于:

RESTORE DATABASE [my_db] FROM  DISK = N'C:\my_db.bak' WITH  FILE = 2...

这里的关键是“FILE = 2”选项,它指定要恢复哪个备份集。

希望能帮助您找回数据。

关于sql-server-2008 - 选择追加到现有备份而不是覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2929575/

相关文章:

备份到 Azure 存储 BLOB 时出现 SQLVDI 错误

sql - 选择值等于给定值或更低且最接近给定值的行

sql - 将未格式化的txt文件导入SQL

SQL Server 2005 仅恢复一种架构

sql-server - Analysis Services .abf 文件数据库还原

mysql - 为什么我无法在 MySQL 中创建表?

MySQL数据库备份: performance issues

python - 从数据存储区下载数据

sql-server - 为什么 sql server 自动对表变量的行进行排序?

sql - 将数据从表复制到执行 INSERT 或 UPDATE 的表