本主题包括两个教程:
在数据库级别将 SQL Server 托管备份设置为Microsoft Azure,启用电子邮件通知并监视备份活动。
在实例级别将 SQL Server 托管备份设置为Microsoft Azure,启用电子邮件通知并监视备份活动。
有关将 SQL Server 托管备份设置为 Microsoft Azure for Availability Groups 的教程,请参阅 将 SQL Server 托管备份设置为 Microsoft Azure for Availability Groups。
将 SQL Server 托管备份设置为 Microsoft Azure
为数据库启用和配置 SQL Server 管理备份至 Microsoft Azure
本教程介绍了为数据库(TestDB)启用和配置 SQL Server 托管备份到 Microsoft Azure 的必要步骤,然后介绍了启用监视 SQL Server 托管备份到 Microsoft Azure 的健康状态的步骤。
权限:
要求数据库角色db_backupoperator的成员身份,并拥有ALTER ANY CREDENTIAL权限,以及对sp_delete_backuphistory存储过程的
EXECUTE
权限。需要对 smart_admin.fn_get_current_xevent_settings函数具有 SELECT 权限。
需要对 smart_admin.sp_get_backup_diagnostics 存储过程具备
EXECUTE
权限。 此外,它还需要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 代理(如果当前未运行)。 要使用 SQL Server 管理备份到 Microsoft Azure,必须确保 SQL Server 代理正在实例上运行以执行备份操作。 你可能希望将 SQL Server 代理设置为自动运行,以确保可以定期执行备份作。
确定保留期: 确定备份文件的保留期。 保留期以天为单位指定,范围为 1 到 30。
启用和配置 SQL Server 托管备份到 Microsoft Azure:启动 SQL Server Management Studio 并连接到安装数据库的 SQL Server 实例。 在根据要求修改数据库名称、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
SQL Server 托管备份到 Microsoft Azure 现已在指定的数据库上启用。 数据库上的备份作可能需要长达 15 分钟才能开始运行。
查看扩展事件默认配置: 通过运行以下 transact-SQL 语句来查看扩展事件设置。
SELECT * FROM smart_admin.fn_get_current_xevent_settings()
应会看到管理员、作和分析通道事件默认处于启用状态,并且无法禁用。 这应该足以监视需要手动干预的事件。 可以启用调试事件,但调试通道包括 SQL Server 托管备份到 Microsoft Azure 用来检测问题并解决这些问题的信息和调试事件。 有关详细信息,请参阅 监视 SQL Server 托管备份到 Microsoft Azure。
启用和配置运行状况通知: SQL Server 托管备份到 Microsoft Azure 包含一个存储过程,它用于创建代理作业,以发送可能需要关注的错误或警告的电子邮件通知。 以下步骤介绍了启用和配置电子邮件通知的过程:
设置数据库邮件(如果尚未在实例上启用)。 有关详细信息,请参阅 配置数据库邮件。
将 SQL Server 代理通知配置为使用数据库邮件。 有关详细信息,请参阅 配置 SQL Server 代理邮件以使用数据库邮件。
启用电子邮件通知以接收备份错误和警告: 在查询窗口中,运行以下 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;
本部分中介绍的步骤专门用于在数据库上首次将 SQL Server 托管备份配置为Microsoft Azure。 可以使用与 smart_admin.sp_set_db_backup 相同的系统存储过程修改现有配置,并提供新值。 有关详细信息,请参阅 SQL Server 托管备份到 Microsoft Azure - 保留和存储设置。
为具有默认设置的实例启用到 Microsoft Azure 的 SQL Server 托管备份
本教程描述了为实例“MyInstance”启用并配置 SQL Server 托管备份到 Microsoft Azure 的步骤。 它包括启用监视 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
权限,因为它在内部调用需要此权限的其他系统对象。
创建Microsoft Azure 存储帐户: 备份存储在 Microsoft Azure 存储服务中。 如果还没有帐户,必须先创建Microsoft Azure 存储帐户。
- SQL Server 2014 使用页 blob,这些与块 blob 和追加 blob 有所不同。 因此,必须创建常规用途帐户,而不是 Blob 帐户。 有关详细信息,请参阅有关 Azure 存储帐户。
- 记下存储帐户名称和访问密钥。 存储帐户名称和访问密钥信息用于创建 SQL 凭据。 SQL 凭据用于向存储帐户进行身份验证。
创建 SQL 凭据: 使用存储帐户的名称作为标识和存储访问密钥作为密码创建 SQL 凭据。
确保 SQL Server 代理服务已启动并运行: 启动 SQL Server 代理(如果当前未运行)。 将 SQL Server 托管备份到 Microsoft Azure 要求在实例上运行 SQL Server 代理才能执行备份操作。 你可能希望将 SQL Server 代理设置为自动运行,以确保可以定期执行备份作。
确定保留期: 确定备份文件的保留期。 保留期以天为单位指定,范围为 1 到 30。 在实例级别启用 SQL Server 托管备份到 Microsoft Azure 后,默认创建的所有新数据库都将继承设置。 仅支持设置为完整或大容量日志恢复模式的数据库,并且将自动配置。 如果您不希望配置 SQL Server 的托管备份至 Microsoft Azure,您可以随时为某个特定数据库禁用此功能。 还可以通过在数据库级别将 SQL Server 托管备份配置为Microsoft Azure 来更改特定数据库的配置。
启用和配置 SQL Server 托管备份到 Microsoft Azure: 启动 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 分钟。
启用和配置运行状况通知: SQL Server 托管备份到 Microsoft Azure 具有一个存储过程,用于创建代理作业,以发送可能需要注意的错误或警告的电子邮件通知。 若要接收此类通知,必须运行启用创建 SQL Server 代理作业的存储过程。 以下步骤介绍了启用和配置电子邮件通知的过程:
设置数据库邮件(如果尚未在实例上启用)。 有关详细信息,请参阅 配置数据库邮件。
将 SQL Server 代理通知配置为使用数据库邮件。 有关详细信息,请参阅 配置 SQL Server 代理邮件以使用数据库邮件。
启用电子邮件通知以接收备份错误和警告: 在查询窗口中,运行以下 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 - 保留和存储设置