DPM 在受保护的 SQL Server 上在哪里使用空间?

DPM 在受保护的 SQL Server 上在哪里使用空间?

我正在使用 Microsoft System Center Data Protection Manager 2016 来保护 Windows Server 2016 上的 SQL Server 2017。我相信每当 DPM 进行备份(同步或快速完整备份)时,它都会在数据传输到 DPM 服务器之前暂时使用 SQL Server 主机上的某些空间。

我发现了一些支持这一观点的证据,特别是对于事务日志备份,https://blogs.technet.microsoft.com/dpm/2013/08/21/optimizations-in-protecting-sql-databases-with-high-churn-by-dpm/ 部分内容如下

临时事务日志文件存储在名为“DPM_SQL_POTECT\”+“MachineName”+“SQL Server 实例名称\”+“数据库名称”+“_log.ldf\Backup\”的文件夹中。此文件夹与日志定义文件位置相同。

(请注意,在帖子的其他地方可以清楚地看到目录名称实际上是以 开头的DPM_SQL_PROTECT,只是我引用的部分有拼写错误)。


但是,我找不到有关快速完整备份(即 SQL Server 完整数据库备份)临时空间使用情况的任何类似信息。查看受保护 SQL Server 上的 DPMRA.errlog 文件表明使用了本地 VSS 卷影副本空间:

CMultiVolumeUsnIterator:AddIncludeFiles(文件路径:e:\Program Files\ Microsoft SQL Server\MSSQL14.SQLNGR1\MSSQL\Data\,文件规范:kslds.mdf,快照路径:\? \GLOBALROOT\Device \HarddiskVolumeShadowCopy9\Program Files\Microsoft SQL Server\MSSQL14.SQLNGR1\MSSQL\Data)

但我不确定我的解释是否正确。此外,在该受保护的服务器上,尽管已完成许多快速完整备份,但vssadmin list shadowstorage报告

未找到满足查询条件的项目。

这似乎与 VSS 空间正在被使用的想法相矛盾。


最后,SQL Server 自己的日志中有与快速完整备份相对应的条目,这些条目将转储设备标识为

设备信息:(FILE=1,TYPE=VIRTUAL_DEVICE:{'{990A7582-1356-4B6B-8D70-8F3235748794}1'})

其中 GUID 似乎每次都会改变,但我一直无法找到有关虚拟设备背后的真实存储是什么的任何解释。


是否有人知道如何确定(并控制)受保护服务器上用于这些备份的位置和空间量?

谢谢!

马丁

答案1

根据 Microsoft 支持,对拼写错误等进行了微小编辑:

对于快速完整备份,DPM 将创建托管 SQL 数据库文件的卷的卷影副本。在对 SQL 日志和数据库文件执行写入时,写入时复制会将数据复制到位于系统卷信息文件夹中的快照文件。快照的大小取决于备份的持续时间和备份过程中的数据变动量(对文件的更改)。

该空间用于托管数据库和日志文件的卷。对于 Express Full,您可以使用 VSSADMIN.EXE 重定向 VSS 快照的位置,方法是删除当前的影子存储空间并将其添加到另一个卷。例如,要从 E: 卷移动到 S: 卷:

vssadmin Delete ShadowStorage /For=E: /On=E:
vssadmin Add ShadowStorage /For=E: /On=S: /MaxSize=UNBOUNDED


另请参阅 MS 支持:

如果所有 SQL 数据库都位于同一个保护组中,它们将按顺序备份,并且每次备份都会创建一个新的影子副本。如果 SQL DB 位于不同的 PG 中但计划同时运行,则多个影子副本将处于活动状态。


最后,MS 支持确认有关事务日志文件临时副本存储的描述(如问题中所述)对于 SQL Server 2017、DPM 2016 和 Windows Server 2016 仍然正确。

相关内容