备份和还原

介绍数据备份和还原如何适用于 Parallel Data Warehouse (PDW)。 备份和还原操作可用于灾难恢复。 备份和还原还可用于将数据库从一台设备复制到另一台设备。

备份和还原基本信息

PDW 数据库备份是设备数据库的副本,以可用于将原始数据库还原到设备的格式存储。

PDW 数据库备份是使用 BACKUP DATABASE t-sql 语句创建的,并被格式化用于 RESTORE DATABASE 语句;不能用于任何其他目的。 备份只能还原到具有相同数量或更多数量计算节点的设备。

PDW 使用 SQL Server 备份技术备份和还原设备数据库。 SQL Server 备份选项已预先配置为使用备份压缩。 不能设置压缩、校验和、块大小和缓冲区计数等备份选项。

数据库备份存储在一个或多个备份服务器上,这些服务器存在于你自己的客户网络中。 PDW 将用户数据库备份从计算节点并行写入一个备份服务器,并将用户数据库备份直接并行从备份服务器还原到计算节点。

备份以 Windows 文件系统中的一组文件形式存储在备份服务器上。 PDW 数据库备份只能还原到 PDW。 但是,你可以使用标准 Windows 文件备份流程将数据库备份从备份服务器存档到另一个位置。 有关备份服务器的详细信息,请参阅获取和配置备份服务器

数据库备份类型

有两种类型的数据需要备份:用户数据库和系统数据库(例如 master 数据库)。 PDW 不会备份事务日志。

完整数据库备份是指备份整个 PDW 数据库。 这是默认备份类型。 用户数据库的完整备份包含数据库用户和数据库角色。 Master 备份包含登录信息。

一次差异备份包含自上次完成完整备份以来的所有更改。 差异备份所需的时间通常比完整备份所需的时间少,并且可以更频繁地执行。 如果多个差异备份基于同一完整备份,则每个差异备份会包含之前差异备份中的所有更改。

例如,可以每周创建一次完整备份,每日创建一次差异备份。 要还原用户数据库,需要还原完整备份以及最后一个差异备份(如果存在)。

仅支持用户数据库的差异备份。 master 数据库的备份始终是完整备份。

要备份整个设备,需要执行所有用户数据库的备份和 master 数据库的备份。

数据库备份流程

下图显示了数据库备份期间的数据流。

PDW backup process

备份流程的工作原理如下:

  1. 用户将 BACKUP DATABASE tsql 语句提交到控制节点。

    • 备份是指完整备份或差异备份。
  2. 对于用户数据库,控制节点(MPP 引擎)会创建分布式查询计划来执行并行数据库备份。

  3. 备份中涉及的每个节点使用 SQL Server 备份功能将其备份文件复制到备份服务器。

    • 涉及的每个节点将一个备份文件复制到备份服务器。

    • 用户数据库备份(完整或差异)包括每个计算节点上存储的数据库部分的备份,以及数据库用户和数据库角色的备份。

  4. 设备使用 InfiniBand 网络并行执行备份。

    • PDW 并行执行每个完整备份和差异备份。 但是,多个数据库备份不会同时运行。 每个备份请求必须等待以前提交的备份完成。

    • master 数据库的备份仅备份控制节点中的数据。 此备份类型是串行执行的。

  5. PDW 数据库备份是一组存储在位于设备外的目录中的文件。 目录名称指定为网络路径和目录名称。 该目录不能是本地路径,并且不能位于设备上。

  6. 备份完成后,可以根据需要使用 Windows 文件系统将备份目录复制到其他位置。

    • 备份只能还原到具有相同或更多计算节点数的 PDW 设备。

    • 在执行还原之前,不能更改备份的名称。 备份目录的名称必须与备份的原始名称的名称匹配。 备份的原始名称位于备份目录中的 backup.xml 文件中。 要将数据库还原到其他名称,可以在还原命令中指定新名称。 例如:RESTORE DATABASE MyDB1 FROM DISK = ꞌ\\10.192.10.10\backups\MyDB2ꞌ

数据库还原模式

完整数据库还原使用数据库备份中的数据重新创建 PDW 数据库。 数据库还原先还原完整备份,然后选择性地还原一个差异备份。 数据库还原包括数据库用户和数据库角色。

仅还原标头将返回数据库的标头信息。 它不会将数据还原到设备。

设备还原是指整个设备的还原。 这包括还原所有用户数据库和 master 数据库。

还原过程

下图显示了数据库还原期间的数据流。

Restore process

还原到计算节点数相同的设备**

还原数据时,设备会检测源设备和目标设备上的计算节点数。 如果两个设备具有相同的计算节点数,还原流程将如下所示:

  1. 要还原的数据库备份在非设备备份服务器上的 Windows 文件共享上提供。 为了获得最佳性能,此服务器连接到设备 InfiniBand 网络。

  2. 用户将 RESTORE DATABASE tsql 语句提交到控制节点。

    • 还原是指完整还原或标头还原。 完整还原将还原完整备份,然后选择性地还原差异备份。
  3. 控制节点(MPP 引擎)创建分布式查询计划来执行并行数据库还原。

    • 分析平台系统 (PDW) 并行执行用户数据库的还原。 但是,多个数据库备份和还原不会同时运行。 MPP 引擎将每个还原语句放入队列;它必须等待之前提交的备份和还原请求完成。

    • master 数据库的还原仅将数据还原到控制节点;还原是串行执行的。

    • 标头信息的还原是一项快速操作,不会将任何数据还原到计算或控制节点。 相反,控制节点会将结果作为查询输出返回。

  4. 备份文件将并行复制到正确的计算节点,通常通过设备 InfiniBand 网络复制。

  5. 每个计算节点还原其用户数据库部分。 如果任一还原未成功完成,所有数据库都将被删除,并且还原操作无法成功完成。

还原到计算节点数更大的设备

将备份还原到计算节点数更大的设备会与计算节点数成比例地增加分配的数据库大小。

例如,将 60 GB 数据库从 2 节点设备(每个节点 30 GB)还原到 6 节点设备时,SQL Server PDW 会在 6 节点设备上创建 180 GB 数据库(6 个节点,每个节点 30 GB)。 SQL Server PDW 最初将数据库还原到 2 个节点以匹配源配置,然后将数据重新分发到所有 6 个节点。

重新分发之后,与较小源设备上的每个计算节点相比,每个计算节点都会包含较少的实际数据和较多的可用空间。 使用附加空间可将更多数据添加到数据库。 如果还原的数据库大小大于所需大小,则可以使用 ALTER DATABASE 收缩数据库文件大小。

备份和还原任务 说明
准备服务器作为备份服务器。 获取和配置备份服务器
备份数据库。 BACKUP DATABASE
还原数据库。 RESTORE DATABASE