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

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

能够恢复应用程序。 Windows Server Backup使用内置于Microsoft®SQLServer®等应用程序中的VSSfunction来保护应用程序数据。 [来源: TechNet ]

另外,有人报告说Windows Server Backup似乎在SQL Server中触发某种备份操作 。

但是,我无法find(官方)关于如何使用Windows Server Backup备份SQL Server数据库的文档。

  • 我只需要备份.mdf.mdf.ldf
  • 在线还是只是离线?
  • 恢复这种备份SQL Server数据库的官方程序是什么?
  • 增量/差异备份时有什么特别的考虑?
  • 这些logging在哪里?

(我知道如何使用SQL Server维护计划, sqlmaint.exe ,T-SQL BACKUP和SQL Server Agent进行备份,我只是对Windows Server Backup(显然?)提供的备选scheme感兴趣。

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

…然而,这个devise使它特别适合那些不是 IT专业人士的小型组织或个人。

引自Windows Server 2008的Windows Server 2008分步指南部分:“谁应该使用Windows Server Backup?”

您引用的部分基本上是说,当Windows Server Backup启动时,它将触发Windows中的VSSfunction。 SQL Server将会知道正在进行卷影复制,并且在SQL Server编写器服务的帮助下,将确保可以执行数据库文件(* .mdf,* .ndf,* .ldf)的副本。

SQL Server编写器服务的目的定义如下:

运行时,数据库引擎将locking并拥有对数据文件的独占访问权限。 当SQL编写器服务未运行时,在Windows中运行的备份程序无法访问数据文件,并且必须使用SQL Server备份执行备份。

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

从SQL编写器服务部分报价:“目的”

所以这基本上是所有与Windows服务器备份发生的事情。

在SQL Server运行时使用Windows Server Backup创build的备份应该一致,但尚未写入磁盘的事务不在卷影副本中。 数据库快照是在线时进行的。

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

只有以下types的备份才能成为快照备份:

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

另外:

除了本主题前面提到的情况外,快照备份在function上与相应的传统备份等效。 您可以使用非快照完全备份,差异备份和日志备份的还原顺序使用快照备份。 与其他备份一样,在msdb数据库中跟踪快照备份,其中快照备份由backupset.is_snapshot = 1标识。有关msdb的更多信息,请参见msdb数据库。

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

回答你的问题:

  • 我只需要备份.mdf? .mdf和.ldf?
  • 在线还是只是离线?
  • 恢复这种备份SQL Server数据库的官方程序是什么?
  • 增量/差异备份时有什么特别的考虑?
  • 这些logging在哪里?

回答:

  1. 是的,您可以执行.mdf和.ldf文件的Windows Server Backup(VSS)副本。 备份应该是一致的,但恢复后数据库将会OFFLINE。
  2. 如果SQL Server已停止/数据库已分离/数据库处于OFFLINE状态,则.mdf和.ldf文件的VSS副本将保持100%一致。
  3. 我不确定如何使用Windows Server Backup进行数据库还原(到时间点),因为数据库在脱机状态下还原。 处于OFFLINE状态的数据库无法进一步恢复/恢复,并将数据库在线结果视为完全恢复。 我会推荐单独的SQL Server FULL,DIFF和TLOG备份,以确保您可以执行数据库恢复到一个时间点。
  4. 事务日志不是使用Window Server Backup创build的快照的一部分,应该额外执行。 作为备份序列的一部分,差异快照由第三方供应商支持,但Windows Server Backup似乎无法执行差异备份。 在这种情况下,您还必须执行其他差异备份。 (见3)
  5. 不同的参考
    • 了解备份的SQL Server日志序列号
    • logging序列号和恢复计划
    • 如何在不使用MSDB的情况下将差异/事务日志备份映射到其完整备份?
    • 日志序列号简介
    • 快照备份
    • SQL编写器
    • SQL Server中的备份和还原策略简介
    • 还原和恢复概述(SQL Server)

在现实生活中的解释

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

 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数据库历史logging表中创build一个条目, IS_SNAPSHOT = 1并为每个(每天)执行的VMware快照提供FULL 。 使用FULL,DIFF和TLOG备份进行原生(使用本机的Commvault)SQL Server备份。 这些备份不会标记为IS_SNAPSHOT并且作为msdb数据库的备份表中的其他FULL(每周一次),DIFF(每隔一天)和LOG(小时)条目存在。

使用此设置,我们可以执行恢复到snapshotdate时间,然后使数据库联机,或者我们可以使用“原生”SQL Server备份执行单个恢复到任何时间点。

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

我想您可能会误解TechNet文章的内容。 您所引用的注释并不表示您可以将Windows Server备份用于SQL Server数据库。 实际上只是强调Windows Server备份使用了SQL Server使用的相同的卷影复制服务。 更多信息:TechNet: SQL编写器服务

Sql备份不只是复制数据,它也会截断日志。 你可以在手册页中find数百个选项,这些选项可以帮助你,例如dynamic压缩备份文件。

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

有关

  • ServerFault.com,2010-09-18, 使用卷影副本的SQL Server备份
  • ServerFault.com,2015-07-20, 如果使用VSS,直接备份SQL Server数据是否安全?

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

从SQL Server 2008文档:

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

我对这一切都很不清楚。 特别是如果这会截断事务日志或不。