针对 Azure 的 SQL Server 托管备份
SQL Server托管备份到 Microsoft Azure 管理并自动SQL Server备份到 Azure Blob 存储服务。 microsoft Azure SQL Server托管备份使用的备份策略基于数据库上的保留期和事务工作负荷。 Microsoft Azure 的 SQL Server 托管备份 支持指定保持期的时间点还原。
SQL Server Microsoft Azure 托管备份可以在数据库级别或实例级别启用,以管理 SQL Server 实例上的所有数据库。 SQL Server可以在本地运行,也可以在 Azure 虚拟机等托管环境中运行。 对于在 Azure 虚拟机 上运行SQL Server,建议SQL Server托管备份到 Microsoft Azure。
使用SQL Server托管备份到 Microsoft Azure 自动执行SQL Server备份的好处
目前,自动备份多个数据库需要制定备份策略、编写自定义代码并安排备份。 使用 SQL Server托管备份到 Microsoft Azure 时,只需提供保留期设置和存储位置。 SQL Server Microsoft Azure 托管备份计划、执行和维护备份。
SQL Server托管备份到 Microsoft Azure 可以在数据库级别配置,也可以在为 SQL Server 实例配置默认设置时进行配置。 使用SQL Server托管备份到 Microsoft Azure 自动执行备份具有以下优势:
通过在实例级别设置默认值,可将这些设置应用于任何此后创建的数据库,从而消除了不备份新数据库和丢失数据的风险。
启用 microsoft Azure SQL Server托管备份并在数据库级别设置保留期的选项,可以替代在实例级别设置的默认设置。 这使您可以对特定数据库的可恢复性具有更为精细的控制力。
使用 SQL Server托管备份到 Microsoft Azure 时,无需指定数据库的备份类型或频率。 指定保留期,SQL Server Microsoft Azure 托管备份确定数据库的备份类型和频率,该备份存储在 Azure Blob 存储服务上。 有关SQL Server Microsoft Azure 托管备份用于创建备份策略的条件集的详细信息,请参阅本主题中的组件和概念部分。
配置为使用加密后,即提高备份数据的安全性。 有关详细信息,请参阅 备份加密
有关使用 Azure Blob 存储进行SQL Server备份的好处的详细信息,请参阅使用 Azure Blob 存储 服务SQL Server备份和还原
术语和定义
Microsoft Azure 的 SQL Server 托管备份
SQL Server 的一项功能,该功能自动备份数据库并根据保持期维护这些备份。
保持期
保留期由SQL Server托管备份到 Microsoft Azure 来确定应在存储中保留哪些备份文件,以便将数据库恢复到指定时间范围内的某个时间点。 支持的值为 1 到 30 天的范围。
日志链
日志备份的连续序列称为日志链。 日志链从数据库的完整备份开始。
要求、概念和组件
权限
Transact-SQL 是main接口,用于配置和监视 microsoft Azure SQL Server托管备份。 通常,若要运行配置存储过程, db_backupoperator 具有 ALTER ANY CREDENTIAL 权限的数据库角色,并且 EXECUTE
需要 对sp_delete_backuphistory 存储过程具有权限。 用于查看信息的存储过程和函数通常分别需要针对存储过程的 Execute
权限以及针对函数的 Select
权限。
先决条件
先决条件:
SQL Server Microsoft Azure 托管备份使用 Azure 存储服务来存储备份文件。 创建 Azure 存储帐户的概念、结构和要求在 SQL Server URL 备份主题的“关键组件和概念简介”部分中详细介绍。
SQL 凭据 用于存储向 Azure 存储帐户进行身份验证所需的信息。 SQL 凭据对象存储帐户名称和访问密钥信息。 有关详细信息,请参阅SQL Server备份到 URL 主题中的关键组件和概念简介部分。 有关如何创建 SQL 凭据以存储 Azure 存储身份验证信息的演练,请参阅第 2 课:创建SQL Server凭据。
概念和关键组件
SQL Server托管备份到 Microsoft Azure 是一项管理备份操作的功能。 它将元数据存储在 msdb 数据库中,并使用系统作业来写入完整的数据库和事务日志备份。
组件
Transact-SQL 是与 Microsoft Azure 的 SQL Server 托管备份交互的主要界面。 系统存储过程用于启用、配置和监视 Microsoft Azure 的 SQL Server 托管备份。 系统函数用于检索现有配置设置、参数值和备份文件信息。 扩展事件用于呈现错误和警告。 警报机制通过 SQL 代理作业和 SQL Server 基于策略的管理启用。 以下列表列出了与 Microsoft Azure 的 SQL Server 托管备份相关的对象及其功能的说明。
也有 PowerShell cmdlet 可用于配置 Microsoft Azure 的 SQL Server 托管备份。 SQL Server Management Studio 支持还原由 Microsoft Azure 的 SQL Server 托管备份 使用 “还原数据库” 任务创建的备份
系统对象 | 说明 |
MSDB | 存储由 Microsoft Azure 的 SQL Server 托管备份创建的所有备份的元数据和备份历史记录。 |
smart_admin.set_db_backup (Transact-SQL) | 用于为数据库启用和配置SQL Server Microsoft Azure 托管备份的系统存储过程。 |
smart_admin.set_instance_backup (Transact-SQL) | 用于为 SQL Server 实例启用和配置默认设置的系统存储过程SQL Server Microsoft Azure 托管备份。 |
smart_admin.sp_ backup_master_switch (Transact-SQL) | 用于暂停和恢复SQL Server托管备份到 Microsoft Azure 的系统存储过程。 |
smart_admin.sp_set_parameter (Transact-SQL) | 用于为 Microsoft Azure SQL Server托管备份启用和配置监视的系统存储过程。 示例:启用扩展事件、通知的邮件设置。 |
smart_admin.sp_backup_on_demand (Transact-SQL) | 系统存储过程,用于对数据库执行临时备份,该数据库能够使用 microsoft Azure SQL Server托管备份而不中断日志链。 |
smart_admin.fn_backup_db_config (Transact-SQL) | 系统函数,用于将当前SQL Server托管备份返回到某个数据库或实例上所有数据库的 Microsoft Azure 状态和配置值。 |
smart_admin.fn_is_master_switch_on (Transact-SQL) | 返回主开关状态的系统函数。 |
smart_admin.sp_get_backup_diagnostics (Transact-SQL) | 用于返回扩展事件所记录的事件的系统存储过程。 |
smart_admin.fn_get_parameter (Transact-SQL) | 返回备份系统设置当前值(如监视和警报的电子邮件设置)的系统函数。 |
smart_admin.fn_available_backups (Transact-SQL) | 用于检查指定数据库或实例所有数据库的可用备份的存储过程。 |
smart_admin.fn_get_current_xevent_settings (Transact-SQL) | 返回当前扩展事件设置的系统函数。 |
smart_admin.fn_get_health_status (Transact-SQL) | 返回由指定期间扩展事件记录的合计错误数的系统函数。 |
监视针对 Azure 的 SQL Server 托管备份 | 用于监视的扩展事件、错误和警告的电子邮件通知、SQL Server基于策略的管理,用于SQL Server托管备份到 Microsoft Azure。 |
备份策略
Microsoft Azure SQL Server托管备份使用的备份策略:
安排的备份类型和备份频率是根据数据库的工作负载确定的。 保持期设置用于决定应在存储中保留备份文件的时间长度以及能否将数据库恢复到保留期内的某个时间点。
备份容器和文件命名约定:
SQL Server Microsoft Azure 托管备份使用除可用性数据库以外的所有数据库的 SQL Server 实例名称命名 Azure 存储容器。 对于可用性数据库,可用性组 GUID 用于命名 Azure 存储容器。
非可用性数据库的备份文件使用以下约定命名:使用数据库名称的前 40 个字符、不带“-”的数据库 GUID 和时间戳创建名称。 在各段之间插入下划线字符作为分隔符。 完整备份使用 .bak 文件扩展名,日志备份使用 .log 。 对于可用性组数据库,除了上方所述的文件命名约定之外,还在 40 个字符的数据库名称后添加可用性组数据库 GUID。 可用性组数据库 GUID 值为 sys.databases 中 group_database_id 的值。
完整数据库备份:如果以下任一情况成立,SQL Server托管备份到 Microsoft Azure 代理将计划完整数据库备份。
初次为数据库启动 Microsoft Azure 的 SQL Server 托管备份 ,或在实例级使用默认设置启用 Microsoft Azure 的 SQL Server 托管备份 时。
自上次完备数据库备份以来的日志增长等于或超过 1 GB。
距上次完整数据库备份以来已超过一周的最大时间间隔。
日志链中断。 Microsoft Azure 的 SQL Server 托管备份 会定期进行检查,通过比较备份文件的第一个和最后一个 LSN 确定日志链是否完整。 如果日志链因为任何原因而存在中断,则 Microsoft Azure 的 SQL Server 托管备份 会安排一次完整数据库备份。 日志链断裂的最常见原因可能是使用 Transact-SQL 或通过 SQL Server Management Studio 中的备份任务发出了备份命令。 其他常见的情况包括意外删除了备份文件或意外的备份覆盖。
事务日志备份:如果以下任一情况成立,SQL Server托管备份到 Microsoft Azure 计划日志备份:
找不到日志备份历史记录。 在首次启动 Microsoft Azure 的 SQL Server 托管备份 时通常存在这种情况。
使用的事务日志空间为 5 MB 或更大。
距上次日志备份达到 2 小时的最大时间间隔。
事务日志备份滞后于完整备份数据库时。 目标是使日志链保持在完整备份之前。
保持期设置
在启用备份时,必须以天为单位设置保持期:最短为 1 天,最长为 30 天。
Microsoft Azure 的 SQL Server 托管备份 根据保持期设置评估能否恢复到指定的时间点,以决定要保留什么备份文件并找出要删除的备份文件。 备份的 backup_finish_date 用于确定和匹配由保持期设置指定的时间。
重要注意事项
若要了解它们对 Microsoft Azure SQL Server托管备份操作的影响,有一些注意事项非常重要。 下面列出了这些注意事项:
对于数据库,如果现有完整数据库备份作业正在运行,则 Microsoft Azure 的 SQL Server 托管备份 将等待当前作业完毕,然后对该数据库进行另一次完整数据库备份。 同样,给定时间只能运行一个事务日志备份。 但是,完整数据库备份和事务日志备份可以同时运行。 失败会记录为扩展事件。
如果安排了超过 10 个并发的完整数据库备份,则会通过扩展事件的调试渠道发出一个警告。 Microsoft Azure 的 SQL Server 托管备份 随后针对其余需要备份的数据库保留一个优先级队列,直到安排并完成所有备份。
支持限制
以下是特定于 2014 SQL Server的一些限制:
SQL Server托管备份到 Microsoft Azure 代理仅支持数据库备份:完整备份和日志备份。 不支持文件备份自动化。
SQL Server使用 Transact-SQL 支持 Microsoft Azure 托管备份操作。 可通过使用扩展事件来进行监视和故障排除。 仅在配置 SQL Server 实例的存储和保持期默认设置以及根据 SQL Server 基于策略的管理策略监视备份状态和整体运行状况时支持 PowerShell 和 SMO。
不支持系统数据库。
Azure Blob 存储服务是唯一受支持的备份存储选项。 不支持备份到磁盘或磁带。
目前,Azure 存储中页 Blob 允许的最大文件大小为 1 TB。 备份大于 1 TB 的文件将失败。 为了避免出现这种情况,我们建议对大型数据库使用压缩并测试备份文件大小,然后再设置SQL Server托管备份到 Microsoft Azure。 可以通过备份到本地磁盘或使用 Transact-SQL 语句手动备份到 Azure 存储
BACKUP TO URL
进行测试。 有关详细信息,请参阅 SQL Server Backup to URL。恢复模式:只支持设置为完整或大容量日志模式的数据库。 不支持设置为简单恢复模式的数据库。
Microsoft Azure 的 SQL Server 托管备份 可能有一些限制。 有关详细信息,请参阅SQL Server托管备份到 Azure:互操作性和共存。
Related Tasks
任务说明 | 主题 |
基本任务,例如为数据库配置 microsoft Azure SQL Server托管备份,或在实例级别配置默认设置,在实例或数据库级别禁用对 Microsoft Azure 的SQL Server托管备份,暂停和重启SQL Server Microsoft Azure 托管备份。 | 针对 Azure 的 SQL Server 托管备份 - 保留和存储设置 |
教程:分步说明如何配置和监视 microsoft Azure SQL Server托管备份。 | 设置针对 Azure 的 SQL Server 托管备份 |
教程:分步说明如何配置和监视可用性组中的数据库SQL Server托管备份到 Microsoft Azure。 | 为可用性组设置针对 Azure 的 SQL Server 托管备份 |
与监视相关的工具和概念和任务SQL Server托管备份到 Microsoft Azure 。 | 监视针对 Azure 的 SQL Server 托管备份 |
SQL Server托管备份到 Microsoft Azure 进行故障排除的工具和步骤。 | 排除针对 Azure 的 SQL Server 托管备份的故障 |
另请参阅
使用 Azure Blob 存储服务执行 SQL Server 备份和还原
SQL Server 备份到 URL
SQL Server 托管备份到 Azure:互操作性和共存
排除针对 Azure 的 SQL Server 托管备份的故障