备份 SQL Server 虚拟机

已完成

Azure 备份提供备份托管 SQL Server 的虚拟机(VM)的功能。 这些备份不仅包含 SQL Server 数据库,还包含 VM 中的所有其他内容,因此可以根据需要进行完整还原。 尽管此方法可能不适用于每个方案,但它提供了针对勒索软件攻击等问题的可靠防护措施。

VM 级备份是 SQL Server 感知型备份,也称为应用程序感知型备份,可确保创建应用程序一致性备份。 这意味着还原 VM 级备份不会中断 SQL Server 功能。 使用此选项时,SQL Server 日志指示 I/O 已暂时冻结,然后在完成后恢复。

将 SQL Server 备份与快照相结合可能会导致问题。 如果快照延迟导致备份失败,请 [HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\BCDRAGENT] 对密钥设置以下值:

"USEVSSCOPYBACKUP"="TRUE"

将本地磁盘或网络共享用于备份文件

与内部部署 SQL Server 实例一样,数据库可以备份到连接到虚拟机的磁盘或网络共享(包括 SQL Server 有权访问的 Azure Files 文件共享)。 如果要备份到与 VM 本地相连的磁盘,请确保它们不会写入在关闭或重启时会被擦除的临时存储空间。 你可能还希望确保将备份复制到第二个位置,以免创建单一故障点。

将数据库备份到 URL 并从其中还原

另一个选项是配置 VM 中安装的 SQL Server 实例的备份到 URL。 与在本地进行的备份不同,从 IaaS VM 的 URL 进行备份和还原实际上是本地选项。

备份到 URL 需要 Azure 存储帐户,并使用 Azure Blob 存储服务。 存储帐户中有容器,Blob 存储在容器中。 与本地磁盘上的路径不同,备份文件的路径看起来类似于https://ACCOUNTNAME.blob.core.windows.net/ContainerName/MyDatabase.bak。 可以在容器下包含更多文件夹名称,以便更轻松地识别备份(例如 FULL、DIFF、LOG)。

要备份到 URL 或从其中还原,必须在 SQL Server 实例和 Azure 之间建立身份验证。 请记住,在 Azure VM 内部,SQL Server 不知道它是在 Azure 上运行的。 SQL Server 凭据可以由 Azure 存储帐户名称和访问密钥身份验证或共享访问签名组成。 如果使用前者,备份会作为页 blob 进行存储;如果使用后者,则作为块 blob 进行存储。 从 SQL Server 2016 开始,只有块 Blob 可用,因此应使用共享访问签名。 从成本的角度来看,块 Blob 也更便宜,并且共享访问签名令牌提供更好的安全控制。

从 URL 还原就像从磁盘或网络共享还原一样简单。 在 SQL Server Management Studio UI 中,从向导中的备份媒体类型中选择 URL。 如果使用 Transact-SQL,而不是使用 FROM DISK,则需将 FROM URL 与相应的位置和备份文件名一起使用。 下面是一些示例语句:

下面的语句备份事务日志。

BACKUP LOG contoso 
TO URL = 'https://myacc.blob.core.windows.net/mycontainer/contoso202003271200.trn' 

以下语句将还原完整数据库备份,而无需恢复它,以便应用差异备份或事务日志备份。

RESTORE DATABASE contoso 
FROM URL = 'https://myacc.blob.core.windows.net/mycontainer/contoso20200327.bak' 
WITH NORECOVERY

使用 SQL Server 资源提供程序自动备份

安装了 SQL Server 的任何 IaaS VM 都可以使用 SQL Server 资源提供程序。 其选项之一是能够配置自动备份,以便 Azure 负责备份 SQL Server 数据库。 它需要使用存储帐户。

这样实现备份的一个好处是可以管理备份的保留时间。 另一个好处是,由于能够将数据库和事务日志备份全部放在一个易于配置的位置,因此可以确保 RPO。 下图显示了在 Azure 门户中配置自动备份的示例。

在 Azure 门户中的 VM 中为 SQL Server 配置自动备份

自动备份选项目前仅适用于基于 Windows Server 的 SQL Server 安装。

重要

您选择一种在 IaaS 上的 SQL Server 部署中备份数据库的方法。 例如,如果使用自动备份(尤其是事务日志备份),则不要在 VM 内的实例级别配置这些备份。 如果操作不协调,可能会造成日志链问题,从而影响数据库还原,因为每个日志备份都会清除日志,您必须拥有一整条未中断的日志备份链才能执行日志还原。 例如,如果事务日志备份发生在来宾内部以及 Azure 级别,则可能需要将备份拼凑在一起才能进行还原。

虽然备份可以自动化,但还原不能。 您需要在 SQL Server 中配置并使用从 URL 还原的功能。