自动备份将在运行 SQL Server 2014 Standard 或 Enterprise 的 Azure VM 上自动为所有现有数据库和新数据库配置托管备份到 Azure。 这样,便可以配置使用持久 Azure Blob 存储的定期数据库备份。 自动备份依赖于 SQL Server IaaS 代理扩展

Note

Azure 具有用于创建和处理资源的两个不同的部署模型:Resource Manager 和经典。 本文介绍如何使用 Resource Manager 部署模型。Azure 建议对新的部署使用该模型,而不是经典部署模型。

先决条件

若要使用自动备份,请考虑以下先决条件:

操作系统:

  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016

SQL Server 版本:

  • SQL Server 2014 Standard
  • SQL Server 2014 Enterprise

数据库配置:

  • 目标数据库必须使用完整恢复模式。 有关对备份使用完整恢复模型产生的影响的详细信息,请参阅 Backup Under the Full Recovery Model(使用完整恢复模型的备份)。
  • 目标数据库必须位于默认 SQL Server 实例上。 SQL Server IaaS 扩展不支持命名实例。

Azure 部署模型:

  • Resource Manager

Azure PowerShell:

Note

自动备份依赖 SQL Server IaaS 代理扩展。 当前的 SQL 虚拟机库映像默认添加此扩展。 有关详细信息,请参阅 SQL Server IaaS 代理扩展

设置

下表描述了可为自动备份配置的选项。 实际配置步骤根据你使用的是 Azure 门户还是 Azure Windows PowerShell 命令而有所不同。

设置 范围(默认值) 说明
自动备份 启用/禁用(已禁用) 为运行 SQL Server 2014 Standard 或 Enterprise 的 Azure VM 启用或禁用自动备份。
保留期 1-30 天(30 天) 保留备份的天数。
存储帐户 Azure 存储帐户 用于在 Blob 存储中存储自动备份文件的 Azure 存储帐户。 会在此位置创建容器,用于存储所有备份文件。 备份文件命名约定包括日期、时间和计算机名称。
加密 启用/禁用(已禁用) 启用或禁用加密。 启用加密时,用于还原备份的证书会使用相同的命名约定存放在同一 automaticbackup 容器中的指定存储帐户内。 如果密码发生更改,则使用该密码生成新证书,但旧证书在备份之前仍会还原。
密码 密码文本 加密密钥的密码。 仅当启用了加密时才需要此设置。 若要还原加密的备份,必须具有创建该备份时使用的正确密码和相关证书。

门户中的配置

可以在预配期间或针对现有的 SQL Server 2014 VM 使用 Azure 门户来配置自动备份。

新的 VM

在 Resource Manager 部署模型中创建新的 SQL Server 2014 虚拟机时,可以使用 Azure 门户配置自动备份。

在“SQL Server 设置”边栏选项卡中,选择“自动备份”。 下面的 Azure 门户屏幕截图显示了“SQL 自动备份”边栏选项卡。

若要了解上下文,请参阅有关在 Azure 中预配 SQL Server 虚拟机的完整主题。

现有 VM

对于现有的 SQL Server 虚拟机,请选择 SQL Server 虚拟机。 然后选择“设置”边栏选项卡的“SQL Server 配置”部分。

在“SQL Server 配置”边栏选项卡的“自动备份”部分,单击“编辑”按钮。

完成后,单击“SQL Server 配置”边栏选项卡底部的“确定”按钮保存更改。

首次启用自动备份时,Azure 会在后台配置 SQL Server IaaS 代理。 在此期间,Azure 门户可能不会显示自动备份已配置。 请等待几分钟,以便安装和配置代理。 之后,Azure 门户将反映新设置。

Note

也可以使用模板来配置自动备份。 有关详细信息,请参阅 Azure quickstart template for Automated Backup(用于自动备份的 Azure 快速入门模板)。

使用 PowerShell 进行配置

可使用 PowerShell 配置自动备份。 开始之前,必须:

安装 SQL IaaS 扩展

如果通过 Azure 门户预配了 SQL Server 虚拟机,应已安装 SQL Server IaaS 扩展。 可通过调用 Get-AzureRmVM 命令并检查 Extensions 属性,来确定是否为 VM 安装了该扩展。

PowerShell复制
$vmname = "vmname"
$resourcegroupname = "resourcegroupname" (Get-AzureRmVM -Name $vmname -ResourceGroupName $resourcegroupname).Extensions

如果已安装 SQL Server IaaS 代理扩展,应会看到列出的“SqlIaaSAgent”或“SQLIaaSExtension”。 ProvisioningState 应显示“Succeeded”。

如果未安装或未能预配该扩展,可使用以下命令来安装。 除了 VM 名称和资源组以外,还必须指定 VM 所在的区域 ($region)。

PowerShell复制
$region = "EASTUS2"
Set-AzureRmVMSqlServerExtension -VMName $vmname `
-ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
-Version "1.2" -Location $region

验证当前设置

如果在预配期间启用了自动备份,可以使用 PowerShell 检查当前配置。 运行 Get-AzureRmVMSqlServerExtension 命令并检查 AutoBackupSettings 属性:

PowerShell复制
(Get-AzureRmVMSqlServerExtension -VMName $vmname -ResourceGroupName $resourcegroupname).AutoBackupSettings

应会看到类似于下面的输出:

复制
Enable                      : False
EnableEncryption : False
RetentionPeriod : -1
StorageUrl : NOTSET
StorageAccessKey :
Password :
BackupSystemDbs : False
BackupScheduleType :
FullBackupFrequency :
FullBackupStartTime :
FullBackupWindowHours :
LogBackupFrequency :

如果输出显示 Enable 设置为 False,则必须启用自动备份。 幸运的是,可通过相同的方式启用和配置自动备份。 有关信息,请参阅下一部分。

Note

如果在进行更改后立即检查设置,看到的可能是旧配置值。 请等待几分钟再检查设置,确保更改已应用。

配置自动备份

随时可以使用 PowerShell 来启用自动备份以及修改其配置和行为。

首先,为备份文件选择或创建存储帐户。 以下脚本选择一个存储帐户,或者创建一个存储帐户(如果不存在)。

PowerShell复制
$storage_accountname = "yourstorageaccount"
$storage_resourcegroupname = $resourcegroupname $storage = Get-AzureRmStorageAccount -ResourceGroupName $resourcegroupname `
-Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
{ $storage = New-AzureRmStorageAccount -ResourceGroupName $storage_resourcegroupname `
-Name $storage_accountname -SkuName Standard_GRS -Location $region }

Note

自动备份不支持在高级存储中存储备份,但可以从使用高级存储的 VM 磁盘创建备份。

然后,使用 New-AzureRmVMSqlServerAutoBackupConfig 命令启用并配置自动备份设置,以便在 Azure 存储帐户中存储备份。 在本示例中,备份设置为保留 10 天。 第二个命令 Set-AzureRmVMSqlServerExtension使用这些设置更新指定的 Azure VM。

PowerShell复制
$autobackupconfig = New-AzureRmVMSqlServerAutoBackupConfig -Enable `
-RetentionPeriodInDays 10 -StorageContext $storage.Context `
-ResourceGroupName $storage_resourcegroupname Set-AzureRmVMSqlServerExtension -AutoBackupSettings $autobackupconfig `
-VMName $vmname -ResourceGroupName $resourcegroupname

可能需要花费几分钟来安装和配置 SQL Server IaaS 代理。

Note

还有仅适用于 SQL Server 2016 和自动备份 v2 的其他 New-AzureRmVMSqlServerAutoBackupConfig 设置。 SQL Server 2014 不支持以下设置:BackupSystemDbs、BackupScheduleType、FullBackupFrequency、FullBackupStartHour、FullBackupWindowInHours 和 LogBackupFrequencyInMinutes。 如果尝试在 SQL Server 2014 虚拟机上配置这些设置,则不存在错误,但不会应用这些设置。

要启用加密,请修改上述脚本,使其将 EnableEncryption 参数连同 CertificatePassword 参数的密码(安全字符串)一起传递。 以下脚本启用上一示例中的自动备份设置,并添加加密。

PowerShell复制
$password = "P@ssw0rd"
$encryptionpassword = $password | ConvertTo-SecureString -AsPlainText -Force $autobackupconfig = New-AzureRmVMSqlServerAutoBackupConfig -Enable `
-EnableEncryption -CertificatePassword $encryptionpassword `
-RetentionPeriodInDays 10 -StorageContext $storage.Context `
-ResourceGroupName $storage_resourcegroupname Set-AzureRmVMSqlServerExtension -AutoBackupSettings $autobackupconfig `
-VMName $vmname -ResourceGroupName $resourcegroupname

若要确认是否应用了这些设置,请 检查自动备份配置

禁用自动备份

若要禁用自动备份,请运行同一个脚本,但不要为 New-AzureRmVMSqlServerAutoBackupConfig 命令指定 -Enable 参数。 缺少 -Enable 参数会向该命令发出指示以禁用此功能。 与安装一样,可能需要花费几分钟时间来禁用自动备份。

PowerShell复制
$autobackupconfig = New-AzureRmVMSqlServerAutoBackupConfig -ResourceGroupName $storage_resourcegroupname

Set-AzureRmVMSqlServerExtension -AutoBackupSettings $autobackupconfig `
-VMName $vmname -ResourceGroupName $resourcegroupname

示例脚本

以下脚本提供一组可自定义的变量,用来为 VM 启用和配置自动备份。 根据具体的情况,可能需要根据要求自定义该脚本。 例如,如果想要禁用系统数据库备份或启用加密,则必须更改该脚本。

PowerShell复制
$vmname = "yourvmname"
$resourcegroupname = "vmresourcegroupname"
$region = "Azure region name such as EASTUS2"
$storage_accountname = "storageaccountname"
$storage_resourcegroupname = $resourcegroupname
$retentionperiod = 10 # ResourceGroupName is the resource group which is hosting the VM where you are deploying the SQL IaaS Extension Set-AzureRmVMSqlServerExtension -VMName $vmname `
-ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
-Version "1.2" -Location $region # Creates/use a storage account to store the backups $storage = Get-AzureRmStorageAccount -ResourceGroupName $resourcegroupname `
-Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
{ $storage = New-AzureRmStorageAccount -ResourceGroupName $storage_resourcegroupname `
-Name $storage_accountname -SkuName Standard_GRS -Location $region } # Configure Automated Backup settings $autobackupconfig = New-AzureRmVMSqlServerAutoBackupConfig -Enable `
-RetentionPeriodInDays $retentionperiod -StorageContext $storage.Context `
-ResourceGroupName $storage_resourcegroupname # Apply the Automated Backup settings to the VM Set-AzureRmVMSqlServerExtension -AutoBackupSettings $autobackupconfig `
-VMName $vmname -ResourceGroupName $resourcegroupname

后续步骤

自动备份会在 Azure VM 上配置托管备份。 因此,请务必查看有关托管备份的文档,了解其行为和影响。

可以在以下主题中找到针对 Azure VM 上的 SQL Server 的其他备份和还原指导:Azure 虚拟机中 SQL Server 的备份和还原

有关其他可用自动化任务的信息,请参阅 SQL Server IaaS 代理扩展

有关在 Azure VM 中运行 SQL Server 的详细信息,请参阅 Azure 虚拟机中的 SQL Server 概述。立即访问http://market.azure.cn

SQL Server 2014 虚拟机的自动备份 (Resource Manager)的更多相关文章

  1. Azure Backup (1) 将SQL Server 2012虚拟机中数据库备份到Azure Storage

    <Windows Azure Platform 系列文章目录> 本文介绍的是由国内世纪互联运维的China Azure,相比国外的Global Azure.主要区别是存储账号的DNS地址不 ...

  2. SQL Server 2014新特性-原生备份加密

    注:本篇文章是IT68找我的约稿,原文地址:http://tech.it168.com/a2014/0610/1633/000001633147.shtml       SQL Server 2014 ...

  3. 利用SQL Server 2008 R2创建自动备份计划

    本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动 Sql Management studio,确保"SQL Se ...

  4. SQL SERVER 2005如何建立自动备份的维护计划

    SQL Server 2005中可以使用维护计划来为数据库自动备份,减少数据库管理员的工作负担.其使用方法如下: (1)启动[sql server Management Studio],在[对象资源管 ...

  5. SQL Server 2008创建定期自动备份任务

    首先需要启动SQL Server Agent服务,这个服务如果不启动是无法运行新建作业的,点击“开始”–“所有程序”–“Microsoft SQL Server 2008”–“启动SQL Server ...

  6. 四、利用SQL Server 2008 R2创建自动备份计划

    (转) 本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动 Sql Management studio,确保"SQ ...

  7. 谈谈我的微软特约稿:《SQL Server 2014 新特性:IO资源调控》

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 撰写经历(Experience) 特约稿正文(Content-body) 第一部分:生活中资源 ...

  8. SQL Server 2014 新特性:IO资源调控

    谈谈我的微软特约稿:<SQL Server 2014 新特性:IO资源调控> 2014-07-01 10:19 by 听风吹雨, 570 阅读, 16 评论, 收藏, 收藏 一.本文所涉及 ...

  9. 使用SQL Server Management Studio 创建作业备份数据库

    在项目中,经常需要备份数据库,如果能做到只需点个按钮(“开始备份数据库”按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sql server 的 ...

随机推荐

  1. js判断数组中是否有重复值得三种方法

    方法一: var s = ary.join(",")+","; for(var i=0;i<ary.length;i++) { if(s.replace( ...

  2. Table '.\gts\eventdata#P#p0' is marked as crashed and last (automatic?) repair failed

    修复数据表操 MYSQL数据表出现问题,提示:Error: Table './db_name/table_name' is marked as crashed and last (automatic? ...

  3. Java Struts(文件下载)

    1.从注册成功页面跳转至用户详情页面(跳转至UserListAction) 2.UserListAction调用service获得用户列表,并将这些数据传送到UserList.jsp中,UserLis ...

  4. Linux-socket使用

    socket 产生的原因 进程通信的概念最初来源于单机系统.由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如 UNIX ...

  5. c++ 同步阻塞队列

    参考:<C++11深入应用> 用同步阻塞队列解决生产者消费者问题. 生产者消费者问题: 有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之 ...

  6. HTTPS的误解(一)

    大家好,SSL证书越来越受到人们的关注,经常有人会说HTTPS只有登录页才需要,而且会使网站速度下降,易维信(EVTrust)给大家澄清了一些HTTPS协议容易产生误解的地方,增长一些网页加密通信的知 ...

  7. MTCNN 实现人脸识别

    MTCNN(Multi-task CNN) MTCNN难点 WIDER FACE等数据集为我们提供的图片并不是MTCNN支持的训练样本, 需要通过几个脚本将其转为MTCNN可以接受的数据集, 这些脚本 ...

  8. XAMPP环境的搭建

    XAMPP是一个强大的集成软件包(什么是集成软件包?就是多个软件打包一起安装了,比如office办公软件包括了word.Excel.PPT) XAMPP包括了Apache,MySQL,PHP,Perl ...

  9. rust by example 2

    本来这篇准备明天在写的,但正好今天的Release没出问题,就接着写吧 rust里的原生类型: 有符号整数: i8, i16, i32, i64和isize(指针大小) 无符号整数:u8, u16,  ...

  10. Odata简介和Demo

    转:http://www.cnblogs.com/shanyou/archive/2013/06/11/3131583.html 在SOA的世界中,最重要的一个概念就是契约(contract).在云计 ...