设置针对 Azure 的 SQL Server 托管备份
本主题包括两个教程:
在数据库级别设置SQL Server Microsoft Azure 托管备份、启用电子邮件通知并监视备份活动。
在实例级别设置SQL Server托管备份到 Microsoft Azure,启用电子邮件通知并监视备份活动。
有关为可用性组设置 microsoft Azure SQL Server托管备份的教程,请参阅为可用性组设置SQL Server托管备份到 Microsoft Azure。
设置 microsoft Azure SQL Server托管备份
为数据库启用和配置 microsoft Azure SQL Server托管备份
本教程介绍为数据库 (TestDB) 启用和配置 Microsoft Azure SQL Server托管备份所需的步骤,然后是启用监视SQL Server Microsoft Azure 托管备份运行状况状态的步骤。
权限:
需要db_backupoperator数据库角色的成员身份,具有 ALTER ANY CREDENTIAL 权限,以及
EXECUTE
sp_delete_backuphistory存储过程的权限。需要对 smart_admin.fn_get_current_xevent_settings函数拥有 SELECT 权限。
EXECUTE
需要对 smart_admin.sp_get_backup_diagnostics 存储过程的权限。 此外,它还需要VIEW SERVER STATE
权限,因为它在内部调用其他需要此权限的系统对象。需要对
EXECUTE
smart_admin.sp_set_instance_backup
和smart_admin.sp_backup_master_switch
存储过程具有权限。
创建 Microsoft Azure 存储帐户: 备份存储在 Microsoft Azure 存储服务中。 如果还没有帐户,必须先创建 Microsoft Azure 存储帐户。
- SQL Server 2014 使用页 Blob,这与块 Blob 和追加 Blob 不同。 因此,必须创建常规用途帐户,而不是 Blob 帐户。 有关详细信息,请参阅有关 Azure 存储帐户。
- 请记录存储帐户名称和访问密钥。 存储帐户名称和访问密钥用于创建 SQL 凭据。 SQL 凭据用于向存储帐户进行身份验证。
创建 SQL 凭据: 使用存储帐户的名称作为标识,存储访问密钥作为密码创建 SQL 凭据。
确保 SQL Server 代理服务已启动且正在运行: 如果 SQL Server 代理当前未运行,请启动它。 Microsoft Azure 的 SQL Server 托管备份 需要实例上运行有 SQL Server 代理才能执行备份操作。 可能要将 SQL Server 代理设置为自动运行,以确保可定期进行备份操作。
确定保持期: 确定备份文件的保持期。 以天为单位指定保持期,范围可为 1 到 30。
启用和配置SQL Server Microsoft Azure 托管备份:启动SQL Server Management Studio并连接到安装了数据库的实例。 在根据要求修改数据库名称、SQL 凭据、保持期和加密选项的值后,从查询窗口中运行以下语句:
有关为加密创建证书的详细信息,请参阅 创建加密备份 中的 创建备份证书步骤。
Use msdb; GO EXEC smart_admin.sp_set_db_backup @database_name='TestDB' ,@retention_days=30 ,@credential_name='MyCredential' ,@encryption_algorithm ='AES_128' ,@encryptor_type= 'Certificate' ,@encryptor_name='MyBackupCert' ,@enable_backup=1; GO
Microsoft Azure 的 SQL Server 托管备份 。 数据库上的备份操作最多可能需要 15 分钟才能运行。
查看扩展事件默认配置: 通过运行以下 transact-SQL 语句,检查扩展事件设置。
SELECT * FROM smart_admin.fn_get_current_xevent_settings()
应看到默认情况下启用管理、操作和分析通道事件,且无法禁用这些事件。 这对于需要手动干预的事件来说应当已经足够。 您可以启用调试事件,但是调试通道包含 Microsoft Azure 的 SQL Server 托管备份 用来检测问题和解决问题的信息性事件和调试事件。 有关详细信息,请参阅监视SQL Server托管备份到 Microsoft Azure。
启用和配置运行状况通知: Microsoft Azure 的 SQL Server 托管备份 有一个存储过程,它创建代理作业以发出可能需要注意的错误或警告的电子邮件通知。 以下步骤说明了启用和配置电子邮件通知的过程:
如果尚未在此实例上启用数据库邮件,请进行设置。 有关详细信息,请参阅 Configure Database Mail。
将 SQL Server 代理通知配置为使用数据库邮件。 有关详细信息,请参阅 Configure SQL Server Agent Mail to Use Database Mail。
启用电子邮件通知以接收备份错误和警告: 在查询窗口中,运行以下 Transact-SQL 语句:
EXEC msdb.smart_admin.sp_set_parameter @parameter_name = 'SSMBackup2WANotificationEmailIds', @parameter_value = '<email1;email2>'
有关详细信息和完整示例脚本,请参阅监视SQL Server托管备份到 Microsoft Azure。
在 Microsoft Azure 存储帐户中查看备份文件: 从 SQL Server Management Studio 或 Azure 管理门户中连接到存储帐户。 你将看到SQL Server实例的容器,该容器托管配置为使用 SQL Server Microsoft Azure 托管备份的数据库。 在为数据库启用SQL Server Microsoft Azure 托管备份后,还可能会在 15 分钟内看到数据库和日志备份。
监视运行状况: 可以通过之前配置的电子邮件通知进行监视,也可以主动监视记录的事件。 以下是一些用于查看事件的示例 Transact-SQL 语句:
-- view all admin events Use msdb; Go DECLARE @startofweek datetime DECLARE @endofweek datetime SET @startofweek = DATEADD(Day, 1-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) SET @endofweek = DATEADD(Day, 7-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) DECLARE @eventresult TABLE (event_type nvarchar(512), event nvarchar (512), timestamp datetime ) INSERT INTO @eventresult EXEC smart_admin.sp_get_backup_diagnostics @begin_time = @startofweek, @end_time = @endofweek SELECT * from @eventresult WHERE event_type LIKE '%admin%'
-- to enable debug events Use msdb; Go EXEC smart_admin.sp_set_parameter 'FileRetentionDebugXevent', 'True'
-- View all events in the current week Use msdb; Go DECLARE @startofweek datetime DECLARE @endofweek datetime SET @startofweek = DATEADD(Day, 1-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) SET @endofweek = DATEADD(Day, 7-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) EXEC smart_admin.sp_get_backup_diagnostics @begin_time = @startofweek, @end_time = @endofweek;
本节中描述的步骤是专门用于在数据库上首次配置 Microsoft Azure 的 SQL Server 托管备份 。 可以使用与 smart_admin.sp_set_db_backup 相同的系统存储过程修改现有配置,并提供新值。 有关详细信息,请参阅SQL Server托管备份到 Microsoft Azure - 保留和存储设置。
使用默认设置为实例启用SQL Server托管备份到 Microsoft Azure
本教程介绍为实例“MyInstance”、\启用和配置 microsoft Azure SQL Server托管备份的步骤。 它包括启用监视 Microsoft Azure SQL Server托管备份运行状况的步骤。
权限:
需要db_backupoperator数据库角色的成员身份,具有 ALTER ANY CREDENTIAL 权限,以及
EXECUTE
sp_delete_backuphistory存储过程的权限。需要对 smart_admin.fn_get_current_xevent_settings函数拥有 SELECT 权限。
EXECUTE
需要对 smart_admin.sp_get_backup_diagnostics 存储过程的权限。 此外,它还需要VIEW SERVER STATE
权限,因为它在内部调用其他需要此权限的系统对象。
创建 Microsoft Azure 存储帐户: 备份存储在 Microsoft Azure 存储服务中。 如果还没有帐户,必须先创建 Microsoft Azure 存储帐户。
- SQL Server 2014 使用页 Blob,这与块 Blob 和追加 Blob 不同。 因此,必须创建常规用途帐户,而不是 Blob 帐户。 有关详细信息,请参阅有关 Azure 存储帐户。
- 请记录存储帐户名称和访问密钥。 存储帐户名称和访问密钥用于创建 SQL 凭据。 SQL 凭据用于向存储帐户进行身份验证。
创建 SQL 凭据: 使用存储帐户的名称作为标识,存储访问密钥作为密码创建 SQL 凭据。
确保 SQL Server 代理服务已启动且正在运行: 如果 SQL Server 代理当前未运行,请启动它。 Microsoft Azure 的 SQL Server 托管备份 需要实例上运行有 SQL Server 代理才能执行备份操作。 可能要将 SQL Server 代理设置为自动运行,以确保可定期进行备份操作。
确定保持期: 确定备份文件的保持期。 以天为单位指定保持期,范围可为 1 到 30。 SQL Server在实例级别启用 Microsoft Azure 托管备份后,默认情况下,之后创建的所有新数据库都将继承设置。 只会支持和自动配置设置为完整或大容量日志恢复模式的数据库。 如果不想将托管备份SQL Server Microsoft Azure 配置,可以随时禁用对特定数据库的托管备份SQL Server。 还可以通过在数据库级别配置 microsoft Azure SQL Server托管备份来更改特定数据库的配置。
启用和配置 microsoft Azure SQL Server托管备份:启动SQL Server Management Studio并连接到 SQL Server 实例。 根据要求修改数据库名称、SQL 凭据、保留期和加密选项的值后,在查询窗口中运行以下语句:
有关为加密创建证书的详细信息,请参阅 创建加密备份 中的 创建备份证书步骤。
Use msdb; Go EXEC smart_admin.sp_set_instance_backup @enable_backup=1 ,@retention_days=30 ,@credential_name='sqlbackuptoURL' ,@encryption_algorithm ='AES_128' ,@encryptor_type= 'Certificate' ,@encryptor_name='MyBackupCert'; GO
SQL Server实例上现已启用 Microsoft Azure 托管备份。
通过运行以下 Transact-SQL 语句验证配置设置:
Use msdb; GO SELECT * FROM smart_admin.fn_backup_instance_config ();
在实例上创建新数据库。 运行以下 Transact-SQL 语句以查看数据库的SQL Server托管备份到 Microsoft Azure 配置设置:
Use msdb GO SELECT * FROM smart_admin.fn_backup_db_config('NewDB')
最多可能需要 15 分钟才能显示设置,并开始运行数据库的备份操作。
启用和配置运行状况通知: Microsoft Azure 的 SQL Server 托管备份 有一个存储过程,它创建代理作业以发出可能需要注意的错误或警告的电子邮件通知。 若要接收此类通知,必须允许运行这个创建 SQL Server 代理作业的存储过程。 以下步骤说明了启用和配置电子邮件通知的过程:
如果尚未在此实例上启用数据库邮件,请进行设置。 有关详细信息,请参阅 Configure Database Mail。
将 SQL Server 代理通知配置为使用数据库邮件。 有关详细信息,请参阅 Configure SQL Server Agent Mail to Use Database Mail。
启用电子邮件通知以接收备份错误和警告: 在查询窗口中,运行以下 Transact-SQL 语句:
EXEC msdb.smart_admin.sp_set_parameter @parameter_name = 'SSMBackup2WANotificationEmailIds', @parameter_value = '<email address>'
有关如何监视和完整示例脚本的详细信息,请参阅监视SQL Server托管备份到 Microsoft Azure。
在 Microsoft Azure 存储帐户中查看备份文件: 从 SQL Server Management Studio 或 Azure 管理门户中连接到存储帐户。 你将看到SQL Server实例的容器,该容器托管配置为使用 SQL Server Microsoft Azure 托管备份的数据库。 您也会在创建新数据库 15 分钟内,看到数据库和日志备份。
监视运行状况: 可以通过之前配置的电子邮件通知进行监视,也可以主动监视记录的事件。 以下是一些用于查看事件的示例 Transact-SQL 语句:
-- view all admin events Use msdb; Go DECLARE @startofweek datetime DECLARE @endofweek datetime SET @startofweek = DATEADD(Day, 1-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) SET @endofweek = DATEADD(Day, 7-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) DECLARE @eventresult TABLE (event_type nvarchar(512), event nvarchar (512), timestamp datetime ) INSERT INTO @eventresult EXEC smart_admin.sp_get_backup_diagnostics @begin_time = @startofweek, @end_time = @endofweek SELECT * from @eventresult WHERE event_type LIKE '%admin%'
-- to enable debug events Use msdb; Go EXEC smart_admin.sp_set_parameter 'FileRetentionDebugXevent', 'True'
-- View all events in the current week Use msdb; Go DECLARE @startofweek datetime DECLARE @endofweek datetime SET @startofweek = DATEADD(Day, 1-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) SET @endofweek = DATEADD(Day, 7-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP) EXEC smart_admin.sp_get_backup_diagnostics @begin_time = @startofweek, @end_time = @endofweek;
SQL Server Microsoft Azure 托管备份默认设置可以通过专门在数据库级别配置设置来替代特定数据库的默认设置。 还可以暂时暂停和恢复SQL Server托管备份到 Microsoft Azure 服务。 有关详细信息,请参阅SQL Server Microsoft Azure 的托管备份 - 保留和存储设置