在 Azure 虚拟机(经典)中对 SQL Server 进行自动备份
自动备份会在运行 SQL Server 2014 Standard 或 Enterprise 的 Azure VM 上,自动为所有现有数据库和新数据库配置向 Microsoft Azure 的托管备份。 这样,便可以配置使用持久 Azure Blob 存储的定期数据库备份。 自动备份依赖于 SQL Server IaaS 代理扩展。
重要
Azure 具有用于创建和处理资源的两个不同的部署模型:资源管理器部署模型和经典部署模型。 本文介绍如何使用经典部署模型。 Microsoft 建议大多数新部署使用资源管理器模型。 若要查看本文中的 Resource Manager 版本,请参阅在 Azure 虚拟机 Resource Manager 中对 SQL Server 进行自动备份。
先决条件
若要使用自动备份,请考虑以下先决条件:
操作系统:
- Windows Server 2012
- Windows Server 2012 R2
- Windows Server 2016
SQL Server 版本:
- SQL Server 2014 Standard
- SQL Server 2014 Enterprise
注意
资源管理器虚拟机支持 SQL Server 2016 的自动备份。 有关详细信息,请参阅 SQL Server 2016 Azure 虚拟机的自动备份 v2(资源管理器)。
数据库配置:
- 目标数据库必须使用完整恢复模式。
Azure PowerShell:
SQL Server IaaS 扩展:
设置
下表描述了可为自动备份配置的选项。 对于经典 VM,必须使用 PowerShell 配置以下设置。
设置 | 范围(默认值) | 说明 |
---|---|---|
自动备份 | 启用/禁用(已禁用) | 为运行 SQL Server 2014 Standard 或 Enterprise 的 Azure VM 启用或禁用自动备份。 |
保持期 | 1-30 天(30 天) | 保留备份的天数。 |
存储帐户 | Azure 存储帐户(为指定的 VM 创建的存储帐户) | 用于在 Blob 存储中存储自动备份文件的 Azure 存储帐户。 在此位置创建容器,用于存储所有备份文件。 备份文件命名约定包括日期、时间和计算机名称。 |
加密 | 启用/禁用(已禁用) | 启用或禁用加密。 启用加密时,用于还原备份的证书使用相同的命名约定存放在同一 automaticbackup 容器中的指定存储帐户内。 如果密码发生更改,将使用该密码生成新证书,但旧证书在备份之前仍会还原。 |
密码 | 密码文本(无) | 加密密钥的密码。 仅当启用了加密时才需要此设置。 若要还原加密的备份,必须具有创建该备份时使用的正确密码和相关证书。 |
备份系统数据库 | 启用/禁用(已禁用) | 完整备份 Master、Model 和 MSDB |
配置备份计划 | 手动/自动(自动) | 选择“自动”可根据日志增长自动进行完整备份和日志备份。 选择“手动”可指定完整备份和日志备份的计划。 |
使用 PowerShell 进行配置
在下面的 PowerShell 示例中,为现有 SQL Server 2014 VM 配置了自动备份。 New-AzureVMSqlServerAutoBackupConfig 命令会自动备份设置配置为在 $storageaccount 变量指定的 Azure 存储帐户中存储备份。 这些备份将保留 10 天。 Set-AzureVMSqlServerExtension 命令使用这些设置更新指定的 Azure VM。
$storageaccount = "<storageaccountname>"
$storageaccountkey = (Get-AzureStorageKey -StorageAccountName $storageaccount).Primary
$storagecontext = New-AzureStorageContext -StorageAccountName $storageaccount -StorageAccountKey $storageaccountkey
$autobackupconfig = New-AzureVMSqlServerAutoBackupConfig -StorageContext $storagecontext -Enable -RetentionPeriod 10
Get-AzureVM -ServiceName <vmservicename> -Name <vmname> | Set-AzureVMSqlServerExtension -AutoBackupSettings $autobackupconfig | Update-AzureVM
可能需要花费几分钟来安装和配置 SQL Server IaaS 代理。
要启用加密,请修改上述脚本,使其将 EnableEncryption 参数连同 CertificatePassword 参数的密码(安全字符串)一起传递。 以下脚本启用上一示例中的自动备份设置,并添加加密。
$storageaccount = "<storageaccountname>"
$storageaccountkey = (Get-AzureStorageKey -StorageAccountName $storageaccount).Primary
$storagecontext = New-AzureStorageContext -StorageAccountName $storageaccount -StorageAccountKey $storageaccountkey
$password = "P@ssw0rd"
$encryptionpassword = $password | ConvertTo-SecureString -AsPlainText -Force
$autobackupconfig = New-AzureVMSqlServerAutoBackupConfig -StorageContext $storagecontext -Enable -RetentionPeriod 10 -EnableEncryption -CertificatePassword $encryptionpassword
Get-AzureVM -ServiceName <vmservicename> -Name <vmname> | Set-AzureVMSqlServerExtension -AutoBackupSettings $autobackupconfig | Update-AzureVM
若要禁用自动备份,请对 New-AzureVMSqlServerAutoBackupConfig 运行不带 -Enable 参数的同一个脚本。 与安装一样,可能需要花费几分钟时间来禁用自动备份。
注意
禁用和卸载 SQL Server IaaS 代理不会删除以前配置的托管备份设置。 应该在禁用或卸载 SQL Server IaaS 代理之前禁用自动备份。
后续步骤
自动备份会在 Azure VM 上配置托管备份。 因此,请务必查看有关托管备份的文档,了解其行为和影响。
可以在以下主题中找到针对 Azure VM 上的 SQL Server 的其他备份和还原指导:Azure 虚拟机中 SQL Server 的备份和还原。
有关其他可用自动化任务的信息,请参阅 SQL Server IaaS 代理扩展。
有关在 Azure VM 中运行 SQL Server 的详细信息,请参阅 Azure 虚拟机中的 SQL Server 概述。