SQL Server 2014 虛擬機的自動備份 (Resource Manager)

自動備份將在運行 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

如果打算使用 PowerShell 配置自動備份,請安裝最新的 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 配置自動備份。 開始之前,必須:

下載并安裝最新的 Azure PowerShell

打開 Windows 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-ErrorActionSilentlyContinueIf(-Not$storage)? ? {$storage=New-AzureRmStorageAccount-ResourceGroupName$storage_resourcegroupname`-Name$storage_accountname-SkuNameStandard_GRS-Location$region}

Note

自動備份不支持在高級存儲中存儲備份,但可以從使用高級存儲的 VM 磁盤創建備份。

然后,使用New-AzureRmVMSqlServerAutoBackupConfig命令啟用并配置自動備份設置,以便在 Azure 存儲帳戶中存儲備份。 在本示例中,備份設置為保留 10 天。 第二個命令Set-AzureRmVMSqlServerExtension使用這些設置更新指定的 Azure VM。

PowerShell復制

$autobackupconfig=New-AzureRmVMSqlServerAutoBackupConfig-Enable`-RetentionPeriodInDays10-StorageContext$storage.Context `-ResourceGroupName$storage_resourcegroupnameSet-AzureRmVMSqlServerExtension-AutoBackupSettings$autobackupconfig`-VMName$vmname-ResourceGroupName$resourcegroupname

可能需要花費幾分鐘來安裝和配置 SQL Server IaaS 代理。

Note

還有僅適用于 SQL Server 2016 和自動備份 v2 的其他New-AzureRmVMSqlServerAutoBackupConfig設置。 SQL Server 2014 不支持以下設置:BackupSystemDbsBackupScheduleTypeFullBackupFrequencyFullBackupStartHourFullBackupWindowInHoursLogBackupFrequencyInMinutes。 如果嘗試在 SQL Server 2014 虛擬機上配置這些設置,則不存在錯誤,但不會應用這些設置。

要啟用加密,請修改上述腳本,使其將EnableEncryption參數連同CertificatePassword參數的密碼(安全字符串)一起傳遞。 以下腳本啟用上一示例中的自動備份設置,并添加加密。

PowerShell復制

$password="P@ssw0rd"$encryptionpassword=$password|ConvertTo-SecureString-AsPlainText-Force$autobackupconfig=New-AzureRmVMSqlServerAutoBackupConfig-Enable`-EnableEncryption-CertificatePassword$encryptionpassword`-RetentionPeriodInDays10-StorageContext$storage.Context `-ResourceGroupName$storage_resourcegroupnameSet-AzureRmVMSqlServerExtension-AutoBackupSettings$autobackupconfig`-VMName$vmname-ResourceGroupName$resourcegroupname

若要確認是否應用了這些設置,請檢查自動備份配置

禁用自動備份

若要禁用自動備份,請運行同一個腳本,但不要為New-AzureRmVMSqlServerAutoBackupConfig命令指定-Enable參數。 缺少-Enable參數會向該命令發出指示以禁用此功能。 與安裝一樣,可能需要花費幾分鐘時間來禁用自動備份。

PowerShell復制

$autobackupconfig=New-AzureRmVMSqlServerAutoBackupConfig-ResourceGroupName$storage_resourcegroupnameSet-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 ExtensionSet-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-ErrorActionSilentlyContinueIf(-Not$storage)? ? {$storage=New-AzureRmStorageAccount-ResourceGroupName$storage_resourcegroupname`-Name$storage_accountname-SkuNameStandard_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 VMSet-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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容