zoukankan      html  css  js  c++  java
  • 使用Automation将Azure SQL DB容灾到本地

    前段时间有个客户有如下需求,将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:	est" 
    }

    备份到Storage

    备份到本地

  • 相关阅读:
    【LeetCode 41】缺失的第一个正数
    【LeetCode 38】报数
    Scrum立会报告+燃尽图 04
    Scrum立会报告+燃尽图 03
    Scrum立会报告+燃尽图 02
    20191017-2 alpha week 2/2 Scrum立会报告+燃尽图 01
    作业要求20191010-9 alpha week 1/2 Scrum立会报告+燃尽图 07
    20191010-8 alpha week 1/2 Scrum立会报告+燃尽图 06
    Alpha阶段贡献分配规则
    选题 Scrum立会报告+燃尽图 05
  • 原文地址:https://www.cnblogs.com/rampb/p/6589989.html
Copyright © 2011-2022 走看看