你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Applies to:SQL Server on Azure VM
从 SQL Server 2016 或更高版本的 Standard、Enterprise 或 Developer Edition 起,自动备份会在 Azure VM 上自动为 SQL Server 上的所有现有数据库和新数据库配置到 Microsoft Azure 的托管备份。 这样,便可以配置使用持久 Azure Blob 存储的定期数据库备份。
Prerequisites
要对 Azure VM 上的 SQL Server 使用自动备份,需要:
- 已注册 SQL IaaS 代理扩展的 Azure VM 上的 SQL Server。
- Windows Server 2012 R2 或更高版本。
- SQL Server 2016 及更高版本。 有关 SQL Server 2014,请参阅适用于 SQL Server 2014 的自动备份。
- Database configuration:
- Target user databases must use the full recovery model. 系统数据库不需要使用完整恢复模式。 但是,如果需要为
model
或msdb
创建日志备份,则必须使用完整恢复模型。 有关对备份使用完整恢复模型产生的影响的详细信息,请参阅使用完整恢复模型的备份。 - SQL Server VM 已注册到 SQL IaaS 代理扩展,并且已启用自动备份功能。 由于自动备份依赖于扩展,因此只有默认实例或单个命名实例的目标数据库支持自动备份。 如果没有默认实例,并且存在多个命名实例,SQL IaaS 代理扩展将失败,自动备份将无法工作。
- If you're running automated backups on a secondary Always On availability group replica, the replica must be Readable for the backups to succeed.
- Target user databases must use the full recovery model. 系统数据库不需要使用完整恢复模式。 但是,如果需要为
Settings
下表描述了可为自动备份配置的选项。 实际配置步骤根据你使用的是 Azure 门户还是 Azure Windows PowerShell 命令而有所不同。 Automated Backup uses backup compression by default and it can't be disabled.
Basic Settings
Setting | Range (Default) | Description |
---|---|---|
Automated Backup | Enable/Disable (Disabled) | 为运行 SQL Server 2016 或更高版本 Developer、Standard 或 Enterprise 的 Azure VM 启用或禁用自动备份。 |
Retention Period | 1-90 天(90 天) | 服务在 msdb 中保留备份元数据的天数。 在备份的保留期到期后,系统将从 msdb 中删除元数据,但不会从存储容器中删除文件。 可以使用存储帐户的生命周期管理策略,来根据业务需求平衡备份保留期与成本管理。 |
Storage Account | Azure 存储帐户 | 用于在 Blob 存储中存储自动备份文件的 Azure 存储帐户。 在此位置创建容器,用于存储所有备份文件。 备份文件命名约定包括日期、时间和数据库 GUID。 |
Encryption | Enable/Disable (Disabled) | 启用或禁用备份加密。 启用备份加密时,用于还原备份的证书使用相同的命名约定存放在同一 automaticbackup 容器中的指定存储帐户内。 如果密码发生更改,则使用该密码生成新证书,但旧证书在备份之前仍会还原。 |
Password | Password text | 加密密钥的密码。 仅当启用了加密时才需要此设置。 若要还原加密的备份,必须具有创建该备份时使用的正确密码和相关证书。 |
Advanced Settings
Setting | Range (Default) | Description |
---|---|---|
系统数据库备份 | Enable/Disable (Disabled) | 启用后,此功能还会备份系统数据库:master 、msdb 和 model 。 对于 msdb 和 model 数据库,如果想要创建日志备份,请验证这些数据库是否处于完整恢复模式。 永远不会为 master 数据库创建日志备份,也不会为 tempdb 创建任何备份。 |
Backup Schedule | Manual/Automated (Automated) | 默认情况下,系统会根据日志的增长情况自动确定备份计划。 用户可以使用手动备份计划来指定备份时段。 此情况下,仅按指定的频率、在特定日期的指定时段内进行备份。 |
完整备份频率 | Daily/Weekly | 完整备份的频率。 上述两种情况下,均在下一个计划的时间段内开始完整备份。 如果选择“每周”,备份可能会跨越好几天,直到所有数据库都已成功备份。 |
完整备份开始时间 | 00:00 – 23:00 (01:00) | 在给定的日期可以开始执行完整备份的时间。 |
完整备份时段 | 1 – 23 小时(1 小时) | 在给定的日期可以执行完整备份的时段持续时间。 |
日志备份频率 | 5 – 60 分钟(60 分钟) | 日志备份的频率。 |
Note
自动备份计划根据日志增长情况进行备份。 不建议在数据库处于简单恢复模式时使用自动备份。
了解完整备份频率
必须了解每日与每周完整备份之间的差别。 请考虑以下两个示例解决方案。
应用场景 1:每周备份
某个 SQL Server VM 包含多个大型数据库。
在星期一,用户使用以下设置启用了自动备份:
- Backup schedule: Manual
- Full backup frequency: Weekly
- Full backup start time: 01:00
- Full backup time window: 1 hour
这意味着,下一个可用备份时段为星期二凌晨 1 点,持续时间为 1 小时。 到时,自动备份将开始逐个备份数据库。 在此方案中,由于数据库非常大,完整备份将完成前几个数据库。 但是,一小时后,并非所有数据库都能得到备份。
如果出现此情况,自动备份会在第二天(即星期三凌晨 1 点)备份剩余的数据库,此操作持续 1 小时。 如果到时仍无法备份所有数据库,系统会在后一天的同一时间再次尝试备份。 在所有数据库均已成功备份之前,系统会不断执行此计划。
再次达到星期二后,自动备份会重新开始备份所有数据库。
此方案表明,自动备份仅在指定的时段内运行,且每个数据库每周备份一次。 另外,如果在一天内无法完成所有备份,备份可能会跨越好几天。
应用场景 2:每日备份
某个 SQL Server VM 包含多个大型数据库。
在星期一,用户使用以下设置启用了自动备份:
- 备份计划:手动
- 完整备份频率:每日
- 完整备份开始时间:22:00
- 完整备份时段:6 小时
这意味着,下一个可用备份时段为星期一晚上 10 点,持续时间为 6 小时。 到时,自动备份将开始逐个备份数据库。
然后,在星期二晚上 10 点,再次开始完整备份所有数据库,此操作持续为 6 小时。
Important
备份在每个间隔期间按顺序发生。 对于具有大量数据库的实例,请计划时间足以容纳所有备份的备份间隔。 如果备份无法在给定的间隔内完成,则可能会跳过某些备份,并且单个数据库的两次备份之间的时间可能会超过已配置的备份间隔时间,这可能会对还原点目标 (RPO) 造成负面影响。
配置新 VM
在资源管理器部署模型中创建新的 SQL Server 2016 或更高版本计算机时,使用 Azure 门户配置自动备份。
在 SQL Server 设置选项卡上,选择自动备份下的启用。 启用自动备份后,可以配置以下设置:
- 备份保留期(最长 90 天)
- 用于备份的存储帐户和存储容器
- 备份的加密选项和密码
- 备份系统数据库
- 配置备份计划
To encrypt the backup, select Enable. Then specify the Password. Azure 创建一个证书来加密备份,并使用指定的密码来保护该证书。
选择选择存储容器以指定要存储备份的容器。
By default the schedule is set automatically, but you can create your own schedule by selecting Manual, which allows you to configure the backup frequency, backup time window, and the log backup frequency in minutes.
The following Azure portal screenshot shows the Automated Backup settings when you create a new SQL Server VM:
配置现有 VM
对于现有的 SQL Server 虚拟机,请转到 SQL 虚拟机资源,然后选择备份以配置自动备份。
Select Enable to configure your Automated Backup settings.
可以配置保留期(最长 90 天)、要在其中存储备份的存储帐户的容器以及加密和备份计划。 默认情况下,计划是自动的。
If you want to set your own backup schedule, choose Manual and configure the backup frequency, whether or not you want system databases backed up, and the transaction log backup interval in minutes.
When finished, select the Apply button on the bottom of the Backups settings page to save your changes.
首次启用自动备份时,Azure 会在后台配置 SQL Server IaaS 代理。 在此期间,Azure 门户可能不会显示自动备份已配置。 请等待几分钟,以便安装和配置代理。 之后,Azure 门户将反映出新设置。
使用 PowerShell 配置
可使用 PowerShell 配置自动备份。 开始之前,必须:
- 下载并安装最新的 Azure PowerShell。
- Open Windows PowerShell and associate it with your account with the Connect-AzAccount command.
Note
本文使用 Azure Az PowerShell 模块,这是与 Azure 交互时推荐使用的 PowerShell 模块。 若要开始使用 Az PowerShell 模块,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅将 Azure PowerShell 从 AzureRM 迁移到 Az。
安装 SQL Server IaaS 扩展
如果通过 Azure 门户预配了 SQL Server 虚拟机,应已安装 SQL Server IaaS 扩展。 You can determine whether it's installed for your VM by calling Get-AzVM command and examining the Extensions property.
$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
(Get-AzVM -Name $vmname -ResourceGroupName $resourcegroupname).Extensions
If the SQL Server IaaS Agent extension is installed, you should see it listed as "SqlIaaSAgent" or "SQLIaaSExtension." ProvisioningState for the extension should also show "Succeeded."
如果未安装或未能预配该扩展,可使用以下命令进行安装。 In addition to the VM name and resource group, you must also specify the region ($region) that your VM is located in.
$region = "EASTUS2"
Set-AzVMSqlServerExtension -VMName $vmname `
-ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
-Version "2.0" -Location $region
验证当前设置
如果在预配期间启用了自动备份,可以使用 PowerShell 检查当前配置。 Run the Get-AzVMSqlServerExtension command and examine the AutoBackupSettings property:
(Get-AzVMSqlServerExtension -VMName $vmname -ResourceGroupName $resourcegroupname).AutoBackupSettings
应会看到类似于下面的输出:
Enable : True
EnableEncryption : False
RetentionPeriod : 30
StorageUrl : https://test.blob.core.windows.net/
StorageAccessKey :
Password :
BackupSystemDbs : False
BackupScheduleType : Manual
FullBackupFrequency : WEEKLY
FullBackupStartTime : 2
FullBackupWindowHours : 2
LogBackupFrequency : 60
If your output shows that Enable is set to False, then you have to enable Automated Backup. 幸运的是,可通过相同的方式启用和配置自动备份。 有关信息,请参阅下一部分。
Note
如果在进行更改后立即检查设置,看到的可能是旧配置值。 请等待几分钟再检查设置,确保更改已应用。
配置自动备份
随时可以使用 PowerShell 来启用自动备份以及修改其配置和行为。
首先,为备份文件选择或创建存储帐户。 以下脚本将选择一个存储帐户,或者创建一个存储帐户(如果不存在)。
$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"
$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
-Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
{ $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
-Name $storage_accountname -SkuName Standard_GRS -Location $region }
Note
自动备份不支持在高级存储中存储备份,但可以从使用高级存储的 VM 磁盘创建备份。
如果要在存储帐户中使用自定义容器进行备份,请使用以下脚本检查容器或创建容器(如果不存在)。
$storage_container = "backupcontainer"
New-AzStorageContainer -Name $storage_container -Context $storage.Context
if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
else `
{ `
Write-Warning "Container $storage_container already exists." `
}
接下来,使用以下脚本获取存储帐户的访问密钥:
$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname -Name $storage_accountname)[0].value
Then use the Update-AzSqlVM command to enable and configure the Automated Backup settings to store backups in the Azure storage account. 在本示例中,备份设置为保留 10 天。 系统数据库备份已启用。 完整备份安排为每个星期六(每周)运行,时段从 20:00 开始,持续两小时。 日志备份计划为每隔 30 分钟运行。
Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType Manual `
-AutoBackupSettingFullBackupFrequency Weekly
-AutoBackupSettingDaysOfWeek Saturday `
-AutoBackupSettingFullBackupStartTime 20 `
-AutoBackupSettingFullBackupWindowHour 2 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingLogBackupFrequency 30 `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb
可能需要花费几分钟来安装和配置 SQL Server IaaS 代理。
To enable encryption, modify the previous script to pass the -AutoBackupSettingEnableEncryption parameter along with a password (secure string) for the -AutoBackupSettingPassword parameter. 以下脚本启用上一示例中的自动备份设置,并添加加密。
$password = "r@ndom Va1ue"
$encryptionpassword = $password | ConvertTo-SecureString -AsPlainText -Force
Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType Manual `
-AutoBackupSettingFullBackupFrequency Weekly `
-AutoBackupSettingDaysOfWeek Saturday `
-AutoBackupSettingFullBackupStartTime 20 `
-AutoBackupSettingFullBackupWindowHour 2 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingLogBackupFrequency 30 `
-AutoBackupSettingEnableEncryption `
-AutoBackupSettingPassword $encryptionpassword `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb
若要确认是否应用了这些设置,请 检查自动备份配置。
禁用自动备份
To disable Automated Backup, run the same script with the -AutoBackupSettingEnable parameter set to $false in the Update-AzSqlVM command. By setting the value to $false the feature is disabled. 与安装一样,可能需要花费几分钟时间来禁用自动备份。
Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable:$false
Example script
以下脚本提供一组可自定义的变量,用来为 VM 启用和配置自动备份。 根据具体的情况,可能需要根据要求自定义该脚本。 例如,如果想要禁用系统数据库备份或启用加密,则必须更改该脚本。
$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$region = "Azure region name such as EASTUS2"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"
$retentionperiod = 10
$backupscheduletype = "Manual"
$fullbackupfrequency = "Weekly"
$fullbackupdayofweek = "Saturday"
$fullbackupstarthour = "20"
$fullbackupwindow = "2"
$logbackupfrequency = "30"
# ResourceGroupName is the resource group which is hosting the VM where you are deploying the SQL Server IaaS Extension
Set-AzVMSqlServerExtension -VMName $vmname `
-ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
-Version "2.0" -Location $region
# Creates/use a storage account to store the backups
$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
-Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
{ $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
-Name $storage_accountname -SkuName Standard_GRS -Location $region }
# Creates/uses a custom storage account container
$storage_container = "yourbackupcontainer"
if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
else `
{ `
Write-Warning "Container $storage_container already exists." `
}
# Get storage account access key
$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname -Name $storage_accountname)[0].value
# Configure Automated Backup settings
Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType $backupscheduletype `
-AutoBackupSettingFullBackupFrequency $fullbackupfrequency `
-AutoBackupSettingDaysOfWeek $fullbackupdayofweek `
-AutoBackupSettingFullBackupStartTime $fullbackupstarthour `
-AutoBackupSettingFullBackupWindowHour $fullbackupwindow `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod $retentionperiod `
-AutoBackupSettingLogBackupFrequency $logbackupfrequency `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb
使用加密证书进行备份
如果决定加密备份,则将生成加密证书并将其保存在与备份相同的存储帐户中。 在此应用场景中,还需要输入密码,该密码将用于保护用于加密和解密备份的加密证书。 这样,你就无需担心此功能的配置之外的备份问题,还可确保可以信任备份是安全的。
启用备份加密后,强烈建议确定是否已成功创建并上传加密证书,以确保数据库的可还原性。 为此,可以立即创建一个数据库,并检查加密证书和数据是否已正确备份到新创建的容器。 这将表明所有配置都是正确的,没有发生异常。
如果证书由于某种原因未能上传,则可以使用证书管理器导出证书并保存它。 但是,你不希望将其保存在同一虚拟机上,因为这不会确保你在虚拟机关闭时有权访问证书。 若要了解在更改或创建自动备份配置后证书是否已正确备份,可以检查虚拟机中的事件日志,如果失败,则会看到以下错误消息:
如果证书备份正确,则将在事件日志中看到此消息:
作为通用实践,建议不时检查备份的运行状况。 为了能够还原备份,应执行下列操作:
确认加密证书已备份,并且你记住了密码。 如果不这样做,则将无法解密和还原备份。 如果由于某种原因,证书没有正确备份,则可以通过执行以下 T-SQL 查询来手动完成此操作:
BACKUP MASTER KEY TO FILE = <file_path> ENCRYPTION BY PASSWORD = <password> BACKUP CERTIFICATE [AutoBackup_Certificate] TO FILE = <file_path> WITH PRIVATE KEY (FILE = <file_path>, ENCRYPTION BY PASSWORD = <password>)
确认备份文件已上传并且至少包含 1 个完整备份。 由于发生错误,在删除虚拟机之前或者在虚拟机损坏的情况下,应确保始终至少有一个完整备份,这样你就知道自己仍然可以访问数据。 在删除 VM 的数据磁盘之前,应确保存储中的备份安全且可恢复。
Monitoring
可通过两种主要方式监视 SQL Server 2016 及更高版本上的自动备份。 由于自动备份使用 SQL Server 托管备份功能,同样的监视方法对两者均适用。
First, you can poll the status by calling msdb.managed_backup.sp_get_backup_diagnostics. Or query the msdb.managed_backup.fn_get_health_status table-valued function.
另一种方式是利用内置的数据库邮件功能进行通知。
- Call the msdb.managed_backup.sp_set_parameter stored procedure to assign an email address to the SSMBackup2WANotificationEmailIds parameter.
- Enable SendGrid to send the emails from the Azure VM.
- 使用 SMTP 服务器和用户名配置数据库邮件。 可在 SQL Server Management Studio 中或使用 Transact-SQL 命令配置数据库邮件。 For more information, see Database Mail.
- 配置 SQL Server 代理以使用数据库邮件。
- 验证是否通过本地 VM 防火墙和适用于 VM 的网络安全组允许该 SMTP 端口。
Known issues
使用自动备份功能时,请考虑这些已知问题。
无法在 Azure 门户中启用自动备份
下表列出了在从 Azure 门户启用自动备份时遇到问题时可能的解决方案:
Symptom | Solution |
---|---|
如果 IaaS 扩展处于失败状态,则启用自动备份将失败 | 如果 SQL IaaS 代理扩展处于失败状态,请进行修复。 |
如果数据库超过一百个,则启用自动备份会失败 | 这是 SQL IaaS 代理扩展的已知限制。 To work around this issue, you can enable Managed Backup directly instead of using the SQL IaaS Agent extension to configure Automated Backup. |
由于元数据问题,启用用自动备份失败 | 停止 SQL IaaS 代理服务。 运行 T-SQL 命令:use msdb exec autoadmin_metadata_delete 。 启动 SQL IaaS 代理服务,并尝试从 Azure 门户重新启用自动备份。 |
为 FCI 启用自动备份 | 不支持使用专用终结点的备份。 使用完整存储帐户 URI 进行备份。 |
使用自动备份来备份多个 SQL 实例 | 自动备份目前仅支持一个 SQL Server 实例。 如果有多个命名实例和默认实例,则自动备份适用于默认实例。 如果有多个命名实例且没有默认实例,则启用自动备份将失败。 |
由于帐户和权限,无法启用自动备份 | 检查以下各项: - SQL Server 代理正在运行。 - The NT Service\SqlIaaSExtensionQuery account has proper permissions for the Automated Backup feature both within SQL Server, and also for the SQL virtual machines resource in the Azure portal. - The SA account hasn't been renamed, though disabling it is acceptable. |
SQL 2016 + 的自动备份失败 | 在存储帐户上启用允许 Blob 公共访问。 这为已知问题提供了临时解决方法。 |
自动备份或托管备份的常见问题
下表列出了使用自动备份时可能出现的错误和解决方案:
Symptom | Solution |
---|---|
由于连接到存储帐户/超时错误,自动/托管备份失败 | 检查虚拟网络的网络安全组 (NSG),并且 Windows 防火墙未阻止来自虚拟机 (VM) 端口 443 上的存储帐户的出站连接。 |
由于内存/IO 压力,自动/托管备份失败 | See if you can increase the Max Server memory and/or resize the disk/VM if you're running out of IO/VM limits. 如果使用可用性组,请将备份分流到次要副本。 |
服务器重命名后自动备份失败 | 如果已重命名计算机主机名,则还需要在 SQL Server 内重命名主机名。 |
错误:由于内部错误,操作失败。 参数不得为空字符串。\r\n参数名称:sas Token 请稍后重试 | 这可能是由于 SQL Server 代理服务没有正确的模拟权限所致。 更改 SQL Server 代理服务以使用不同的帐户来解决此问题。 |
错误:到 Microsoft Azure 的 SQL Server 托管备份无法为 SQLServer 实例配置默认备份设置,因为容器 URL 无效。 也可能是你的 SAS 凭据无效 | 如果有大量数据库,则可能会出现此错误。 Use Managed backup instead of Automated Backup. |
VM 重启后,自动备份作业失败 | 检查 SQL 代理服务是否已启动且正在运行。 |
托管备份间歇性失败/错误:执行超时已过期 | This is a known issue fixed in CU18 for SQL Server 2019 and [KB4040376] for SQL Server 2014-2017. |
错误:远程服务器返回错误:(403) 已禁止 | 修复 SQL IaaS 代理扩展。 |
错误 3202:存储帐户上的写入失败 13(数据无效) | 请移除存储容器上的不可变 Blob 策略,并确保存储帐户至少使用 TLS 1.0。 |
错误 3063:写入备份块 blob 设备。 设备已达到允许的块限制。 | 如果从已将 Readable 配置设置为 NO 的辅助 Always On 可用性组副本运行自动备份,则可能会发生这种情况。 要在辅助副本上成功自动备份,该副本必须可读。 |
无法计划特定日期的备份 | 如果使用 SQL Server 2014 的自动备份,则预计会出现这种情况。 你可以从 SQL Server 2016 开始配置备份计划。 |
连接到远程服务器时出现 403 禁止错误 | 若要解决此问题,请执行以下操作: - 检查网络安全:确保网络安全组(NSG)允许必要端口上的流量,尤其是 HTTPS 的端口 443 。 - 验证 IP 地址:确保需要访问存储帐户的 VM 的 IP 地址已添加到存储帐户的允许列表中。 - 查看 DNS 设置:确认 DNS 设置已正确配置为解析存储帐户名称。 |
自动备份或托管备份禁用失败
下表列出了在从 Azure 门户禁用自动备份时遇到问题时可能的解决方案:
Symptom | Solution |
---|---|
如果 IaaS 扩展处于失败状态,则禁用自动备份将失败 | 如果 SQL IaaS 代理扩展处于失败状态,请进行修复。 |
由于元数据问题,禁用自动备份失败 | 停止 SQL IaaS 代理服务。 运行 T-SQL 命令:use msdb exec autoadmin_metadata_delete 。 启动 SQL IaaS 代理服务,并尝试从 Azure 门户禁用自动备份。 |
由于帐户和权限,无法禁用自动备份 | 检查以下各项: - SQL Server 代理正在运行。 - The NT Service\SqlIaaSExtensionQuery account has proper permissions for the Automated Backup feature both within SQL Server, and also for the SQL virtual machines resource in the Azure portal. - The SA account hasn't been renamed, though disabling it is acceptable. |
我想要了解哪些服务/应用程序正在执行 SQL Server 备份
- In SQL Server Management Studio (SSMS) Object Explorer, right-click the database > Select Reports>Standard Reports>Backup and Restore Events. 在报表中,你可以展开成功的备份操作部分,以查看备份历史记录。
- If you see multiple backups on Azure or to a virtual device, check if you're using Azure Backup to back up individual SQL databases or taking a virtual machine snapshot to a virtual device, which uses the
NT Authority/SYSTEM
account. If you're not, check the Windows Services console (services.msc) to identify any third-party applications which might be taking backups.
Next steps
自动备份会在 Azure VM 上配置托管备份。 因此,请务必查看有关托管备份的文档,了解其行为和影响。
可以在以下文章中找到针对 Azure VM 上 SQL Server 的其他备份和还原指导:Azure 虚拟机上的 SQL Server 的备份和还原。
有关其他可用自动化任务的信息,请参阅 SQL Server IaaS 代理扩展。
有关在 Azure VM 上运行 SQL Server 的详细信息,请参阅 Azure 虚拟机上的 SQL Server 概述。