我正在寻找一种简单(尽可能简单)备份和恢复数据库的方式。
我想在一个状态下进行备份,然后在执行某些操作后返回到备份状态。
尝试数据库 - >任务 - >备份...然后数据库 - >任务 - >恢复,但我总是收到错误:
Restore failed for...DBName
The tail of the log for the database "database name" has not been backed up...
所以,我想通过一个简单的操作进行备份和恢复,可以建议我 一个解决方案,无论是GUI还是非GUI?
答案 0 :(得分:5)
使用RESTORE命令的WITH REPLACE
选项:
REPLACE选项会覆盖多个选项 恢复的重要安全检查 通常表演。被覆盖的 检查如下:
- 使用另一个数据库进行备份,恢复现有数据库 数据库。使用REPLACE选项, 还原允许您覆盖 任何现有的数据库 数据库在备份集中,即使 指定的数据库名称不同 从记录在的数据库名称 备份集。这可能导致 意外地覆盖数据库 一个不同的数据库。
- 使用完整或大容量日志恢复模型在数据库上进行还原 没有尾部日志备份的地方 采取和停止选项不是 使用即可。使用REPLACE选项,您 可能会失去承诺的工作,因为 最近写的日志还没有 备份。
- 覆盖现有文件。例如,错误可能允许 覆盖错误类型的文件, 例如.xls文件,或正在存在的文件 由另一个不是的数据库使用 线上。任意数据丢失 如果现有文件是可能的 覆盖,虽然恢复了 数据库已经完成。
主题也在MSDN中的恶心中有所涉及,请参阅Restoring Without Using a Tail-Log Backup,其中包含有关管理工作室方案(即您正在使用的工具)的“如何”文章的链接。
答案 1 :(得分:2)
您似乎已设置差异备份。它比恢复完整备份稍微复杂一些。
http://msdn.microsoft.com/en-us/library/ms175510.aspx
通过执行完全备份,您将打破DBA设置的备份链,因此在断开备份集之前首先检查DBA是个好主意。
编辑了非常有用的评论:
执行备份时应使用COPY_ONLY选项,这样就不会破坏备份链。
答案 2 :(得分:1)
恢复时,您需要选中“覆盖现有数据库”选项,否则会失败。
MSSQL 2005及以上features snapshots,听起来很适合您的要求。