前段时间有个客户有如下需求,将Azure SQL Database数据库容灾到本地(备份频率1小时/次)。

那么对于这样的需求,我们可以使用Azure Automation来实现自动化备份到本地。

大致备份流程如下:

1、先决条件:

l  Azure 账号

l  Automation 账号

l  Storage 账号

l  最新版Azure Powershell Module

2、创建Azrue Automation

依次选择App Services——>Automation——>Runbook——>Quick Create

3、使用 Azure 服务管理和 Resource Manager 对 Runbook 进行身份验证

2.1 选择“Automation”。

2.2 在“自动化仪表板”页上,选择“ASSETS”。

2.3 在“ASSETS”页上,选择位于页面底部的“ADD SETTING”。

2.4 在“ADD SETTING”页上,选择“ADD CREDENTIAL”。

2.5在“Define Credential”页的“CREDENTIAL TYPE”下拉列表中选择“Windows PowerShell Credential”,并提供凭据名称。

2.6在随后出现的“Define Credential”页上,在“USER NAME”字段中键入前面创建的 AD 用户帐户的用户名,并在“PASSWORD”和“CONFIRM PASSWORD”字段中键入密码。单击“确定”保存更改。

4、替换Azure Powershell Module

在这里有一点非常重要,我们可以看到Azure Powershell Module是2016/12/12这个版本,

而遗憾的是这个版本的Azure Powershell Module没有提供导出SQL Database的命令,所以我们需要手动更新Azure Powershell Module

更新后Azure Powershell Module

5、备份SQL Database脚本

workflow BackUpSQLDB
{
$Credential = Get-AutomationPSCredential -Name 'BackupDB'
Add-AzureRmAccount -EnvironmentName AzureChinaCloud -Credential $Credential
$ResourceGroupName='RESOURCE-GROUP-NAME'
$ServerName='SERVER-NAME'
$DatabaseName='DATABASE-NAME'
$StorageName='STORAGE-NAME'
$StorageKeytype='StorageAccessKey'
$StorageKey='base-64 String'
$BlobName=$DatabaseName+(Get-Date).Tostring('yyyy-MM-dd-HH-mm-ss') + '.bacpac'
$BacpacUri='https://STORAGE-NAME.blob.core.chinacloudapi.cn/dbbackup/'+$BlobName
$SqlUserName='SQL LOGIN USER NAME'
$SqlPassword = ConvertTo-SecureString -String 'SQL LOGIN PASSWORD' -AsPlainText -Force
#Get-AzureRmSubscription
Set-AzureRmContext -SubscriptionId 'SUBSCRIPT ID'
$exportRequest = New-AzureRmSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -StorageKeytype StorageAccessKey -StorageKey $StorageKey -StorageUri $BacpacUri -AdministratorLogin $SqlUserName -AdministratorLoginPassword $SqlPassword
Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
}

6、将备份到Azure Storage下载到本地

workflow DownloadToLocal
{
$Credential = Get-AutomationPSCredential -Name 'BackupDB'
Add-AzureAccount -Environment AzureChinaCloud -Credential $Credential
Select-AzureSubscription -SubscriptionId '{Subscription ID}'
$StorageName='STORAGE-NAME'
$StorageKeytype='StorageAccessKey'
$StorageKey='base-64 String'
$StorageContext = New-AzureStorageContext -StorageAccountName $StorageName -StorageAccountKey $StorageKey -Environment AzureChinaCloud
Get-AzureStorageBlobContent -Context $StorageContext -Container "dbbackup" -Blob $BlobName -Destination "C:\test\"
}

备份到Storage

备份到本地

使用Automation将Azure SQL DB容灾到本地的更多相关文章

  1. 将 Azure SQL 内数据下载到本地,满足企业的「数据收集」

    嫌长不看版 本文介绍了通过复制和导出两个操作,将 Azure SQL 数据库中的内容转移至其他位置(例如本地环境)的具体做法.借此可以帮助用户在 Azure 中运行数据库的同时,在本地或指定的其他位置 ...

  2. Azure SQL作業

    由於要定期去刪除比較久的資料,礙於Azure SQL DB目前無法直接創建作業,目前找到一種方式就是通過local的SQL SERVER來執行AZURE SQL指令. 步驟如下: SQL Server ...

  3. 【数据库-Azure SQL Database】如何创建事务复制将本地数据同步到 SQL Azure

    Azure SQL DB 可以被配置成为 SQL Server 事务复制的一个订阅者( subscriber ). 主要应用场景有两种: 将您的数据迁移到 Azure SQL DB, 并且没有宕机时间 ...

  4. Microsoft: Get started with Dynamic Data Masking in SQL Server 2016 and Azure SQL

    Dynamic Data Masking (DDM) is a new security feature in Microsoft SQL Server 2016 and Azure SQL DB. ...

  5. 华为云计算IE面试笔记-请描述华为容灾解决方案全景图,并解释双活数据中心需要从哪些角度着手考虑双活设计

    容灾全景图: 按照距离划分:分为本地容灾 同城容灾 异地容灾  本地容灾包括本地高可用和本地主备.(本数据中心的两机房.机柜) 本地高可用这个方案为了保持业务的连续性,从两个层面来考虑: ①一个是从主 ...

  6. Azure Automation (6) 执行Azure SQL Job

    <Windows Azure Platform 系列文章目录> 因为China Azure SQL Database目前还没有SQL Job的功能,如果要异步执行SQL 存储过程,可以使用 ...

  7. SQL Server上唯一的数据库集群:负载均衡、读写分离、容灾(数据零丢失、服务高可用)

    SQL Server上唯一的数据库集群:负载均衡.读写分离.容灾(数据零丢失.服务高可用).审计.优化,全面解决数据库用户问题.一键安装,易用稳定,性价比高,下载链接:http://www.zheti ...

  8. Azure Cosmos DB (二) SQL API 操作

    一,引言 还记得国庆期间,我们学习了一下关于Azure Cosmos DB 的一些基础知识以及Azure Cosmos DB 的几种支持数据库类型.今天就开始分享一些实战操作,如何通过Azure Po ...

  9. Azure Cosmos DB (四) 使用EF的SQL API 异地冗余

    一,引言 上一篇文章中,我们介绍到使用了EF Core 与Cosmos DB SQL API 进行结合开发.同时,大家在开发过程中一定要记得EF Core 不支持Cosmos DB 的迁移.今天我们启 ...

随机推荐

  1. 【NOI】2017 整数(BZOJ 4942,LOJ2302) 压位+线段树

    [题目]#2302. 「NOI2017」整数 [题意]有一个整数x,一开始为0.n次操作,加上a*2^b,或询问2^k位是0或1.\(n \leq 10^6,|a| \leq 10^9,0 \leq ...

  2. 第10月第1天 iOS crash

    1. find /Applications/Xcode6.1.app -name symbolicatecrash -type f tempdeMac-mini:crash temp$ dwarfdu ...

  3. python自动安装mysql5.7【转】

    #!/usr/bin/env python import os import sys import re base_dir = '/opt/software/mysql-5.7.17-linux-gl ...

  4. 2010 NEERC Western subregional

    2010 NEERC Western subregional Problem A. Area and Circumference 题目描述:给定平面上的\(n\)个矩形,求出面积与周长比的最大值. s ...

  5. 修复 Tween.JS 的 onStop 设置无效

    Tween.js 个人认为还是一个比较不错的 缓动动画库,给作为学渣的我实现一些酷酷的动画带来了极大的遍历. 但是,今天突然发现特么设置onStop的回调函数居然没反应...... 作为一个渣渣只能一 ...

  6. c++ primer 学习杂记1

    读到p483 公有,私有,受保护的继承. 1.关于基类成员在派生类中的访问级别: 1) 无论何种继承方式, 派生类都无法访问基类中的private成员. 2) 派生类可以限制,而不能放松对所继承成员的 ...

  7. 2018-11-1 NOIP 模拟赛解题报告

    T1 Domino 多米诺骨牌 题目大意 给你N个骨牌,上下各有一个数,要使上面一排的和为偶数,同时下面一排的和也为偶数,最多要翻转多少次?如果无法达成那么输出-1. 解法 水题秒切 根据数的奇偶性质 ...

  8. EDMA3 笔记

          A-synchronized和AB-synchronized传输在1个frame传输完成后地址计算有所不同. A-synchronized: last array in the frame ...

  9. HTML中元素的定位方式

    初中物理就学过,位置是相对的,要有参照物,因此,所有定位都是相对参照物的定位. position 属性: 规定元素的定位类型,该属性的可选值有static.relative.absolute.fixe ...

  10. maven打包时包含本地jar

    项目中需要使用maven的打包工具,生成zip压缩包,使用的插件是assembly-plugin.因为一些特殊的原因,需要使用一些本地的jar进行依赖,加载外部jar后编码过程中没有任何问题,但是打包 ...