简单&快速sql server数据库备份和恢复

时间:2010-06-23 13:58:10

标签: sql sql-server-2005 sql-server-2008 backup restore

我正在寻找一种简单(尽可能简单)备份和恢复数据库的方式。

我想在一个状态下进行备份,然后在执行某些操作后返回到备份状态。

尝试数据库 - >任务 - >备份...然后数据库 - >任务 - >恢复,但我总是收到错误:

Restore failed for...DBName

The tail of the log for the database "database name" has not been backed up...

所以,我想通过一个简单的操作进行备份和恢复,可以建议我 一个解决方案,无论是GUI还是非GUI?

3 个答案:

答案 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选项,这样就不会破坏备份链。

http://msdn.microsoft.com/en-us/library/ms186865.aspx

答案 2 :(得分:1)

恢复时,您需要选中“覆盖现有数据库”选项,否则会失败。

MSSQL 2005及以上features snapshots,听起来很适合您的要求。