如何使用Windows Server Backup备份SQL Server数据库?


11

显然,Windows Server备份有一些 SQL Server数据库的备份支持:

恢复应用程序的能力。Windows Server Backup使用Microsoft®SQLServer®之类的应用程序内置的VSS功能来保护应用程序数据。[来源:TechNet ]

另外,人们报告Windows Server Backup似乎触发了SQL Server中的某种备份操作

但是,我找不到有关如何使用Windows Server Backup 精确备份SQL Server数据库的(官方)文档。

  • 我只需要备份.mdf吗?在.mdf.ldf
  • 在线还是离线?
  • 恢复以这种方式备份的SQL Server数据库的正式程序是什么?
  • 在进行增量/差异备份时,有什么特别的考虑要考虑吗?
  • 所有这些都记录在哪里?

(我知道如何使用SQL Server维护计划,sqlmaint.exeT-SQL BACKUP和SQL Server代理进行备份。我只是对Windows Server Backup(显然是?)提供的替代方法感兴趣。)


哪个版本的Windows Server和哪个版本的SQL Server?
pauska

@pauska:就我个人而言,我会对Windows Server 2012 R2和SQL Server 2012感兴趣。(我故意让问题更笼统,以使其对他人更有用。)
Heinzi 2013年

1
我有一个Windows Server 2008,正在执行完整备份。据我所知,它是从SQL Server Express中提取数据库作为其完全备份的一部分,因为每个数据库都说该数据库是在备份运行时最后一次备份的。这让我感到困惑,因为我试图弄清如何备份这些数据库,因为我找不到在任何地方都可以执行此操作的脚本。我想无论如何我都会写一个脚本来做到这一点,以便我知道它正在工作并且确切地知道我拥有什么。
Dave Cousineau

Answers:


5

Windows Server Backup不能用作SQL Server的备份工具。

...但是,该设计使其特别适合 IT专业人士的小型组织或个人...

引用Windows Server 2008 Windows Server循序渐进指南部分的内容:“谁应该使用Windows Server Backup?”

您引用的部分基本上是说,启动Windows Server Backup后,它将触发Windows中的VSS功能。SQL Server将意识到正在发生卷影复制,并借助于SQL Server Writer服务将确保可以执行数据库文件(* .mdf,*。ndf,*。ldf)的副本。

SQL Server Writer服务的用途定义如下:

运行时,数据库引擎将锁定并具有对数据文件的独占访问权。当SQL Writer服务未运行时,Windows中运行的备份程序无权访问数据文件,并且必须使用SQL Server备份执行备份。

使用SQL Writer服务允许Windows备份程序在SQL Server运行时复制SQL Server数据文件。

SQL Writer服务部分的引文:“目的”

因此,基本上这就是Windows Server Backup的全部操作。

在运行SQL Server时使用Windows Server Backup创建的备份应保持一致,但尚未写入磁盘的事务不在卷影副本中。数据库快照是在联机时拍摄的。

但是,MSDN文章“ 快照备份”指出:

仅以下类型的备份可以是快照备份:

  • 完整备份
  • 部分备份
  • 文件备份
  • 差异数据库备份。仅当供应商使用VSS接口时才支持这些功能。

另外:

除本主题前面所述外,快照备份在功能上等效于相应的常规备份。您可以在还原序列中使用快照备份,以及非快照完整备份,差异备份和日志备份。与其他备份一样,快照备份在msdb数据库中进行跟踪,快照备份由backupset.is_snapshot = 1标识。有关msdb的详细信息,请参阅msdb数据库。

SQL Server不支持从快照备份进行联机还原。恢复快照备份会自动使数据库脱机。零散还原可以合并快照备份,但是所有还原序列都是脱机还原。有关零碎还原的更多信息,请参阅执行零碎还原。

要回答您的问题:

  • 我只需要备份.mdf吗?.mdf和.ldf?
  • 在线还是离线?
  • 恢复以这种方式备份的SQL Server数据库的正式程序是什么?
  • 在进行增量/差异备份时,有什么特别的考虑要考虑吗?
  • 所有这些都记录在哪里?

答案:

  1. 是的,您可以为.mdf和.ldf文件制作Windows服务器备份(VSS)副本。备份应保持一致,但还原后数据库将离线。
  2. 如果SQL Server已停止/数据库已分离/数据库已脱机,则.mdf和.ldf文件的VSS副本是100%一致的。
  3. 我不确定如何使用Windows Server Backup还原数据库(至某个时间点),因为该数据库已还原为OFFLINE状态。处于离线状态的数据库无法再恢复/恢复,并且使数据库进入联机状态会导致数据库被视为已完全恢复。我建议使用单独的SQL Server FULL,DIFF和TLOG备份,以确保您可以将数据库还原到某个时间点。
  4. 事务日志不是使用Window Server Backup创建的快照的一部分,应该另外执行。作为备份序列的一部分,第三方供应商支持差异快照,但是Windows Server Backup似乎无法执行差异备份。在这种情况下,您还必须执行其他差异备份。(请参阅3.)
  5. 不同的参考

在现实生活中进行解释

在我们的环境中,类似的情况是VMware正在执行快照,而DBA正在使用Commvault执行SQL Server转储。备份历史记录如下所示:

DBNAME  TYPE BACKUPSET_NAME            IS_SNAPSHOT BACKUP_START_DATE        
------- ---- ------------------------- ----------- -----------------------  
DB_NAME  Full  NULL                    1           2016-12-10 18:23:59.000  
DB_NAME  Full  CommVault Galaxy Backup 0           2016-12-10 20:07:41.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-11 06:00:40.000  
DB_NAME  Full  NULL                    1           2016-12-11 18:24:00.000  
DB_NAME  Diff  CommVault Galaxy Backup 0           2016-12-11 20:03:38.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-12 06:02:29.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-12 07:02:17.000  

VMware快照将创建MSDB数据库历史记录表与条目IS_SNAPSHOT = 1,并FULL为所进行(每天)每个VMware快照。使用FULL,DIFF和TLOG备份执行本机(使用本机的Commvault)SQL Server备份。这些备份未标记为IS_SNAPSHOT,并且在msdb数据库的备份表中以附加的FULL(每周一次),DIFF(隔天一次)和LOG(每小时)条目存在。

通过此设置,我们既可以执行到快照日期时间的还原,然后使数据库联机,也可以使用“本地” SQL Server备份来执行到任何时间点的单个还原。


1

你不能 或者至少您可能不应该这样做。就SQL Server数据库而言,本机备份是受支持的方法。

我认为您可能会误解TechNet文章的内容。您引用的注释并不表示您可以将Windows Server备份用于SQL Server数据库。实际上,这只是在强调Windows Server备份使用与SQL Server相同的卷影复制服务。详细信息:TechNet:SQL Writer服务


我知道我不应该-不会将我的数据委托给这样一个文档记录不完善的功能。从理论上讲,我仍然好奇是否可行:SQL Server 确实提供了VSS编写器,而Windows Server Backup VSS请求器,因此我暂时不提问题。也许这只是将两者匹配的问题(例如,在线上有针对Hyper-V VSS编写器的说明)。
Heinzi 2013年

1
显然,Windows Server Backup 确实会触发某种SQL Server备份,请参阅此问题
Heinzi '16

1

sql备份不只是复制数据,它还会截断日志。您可以在手册页中找到数百个可以帮助您的选项,例如即时压缩备份文件。

我记得,vss备份用于复制冻结的虚拟机或对SAN上的lun进行快照以备份静态映像,但是备份将“崩溃一致”,就像电源中断一样,并且不是真正一致。

有关


0

认为它使用一种称为“快照备份”的特殊备份类型。

从SQL Server 2008文档中:

Microsoft Windows Server 2003卷影复制服务(VSS)以及使用此框架的所有备份软件和存储软件还使用SQL Server快照备份。有关更多信息,请参见SQL Writer服务。

这对我来说还很不清楚。尤其是如果这会截断事务日志。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.