共用方式為


Azure VM 上的 SQL Server 的自動備份

適用於: Azure VM 上的 SQL Server

從 SQL Server 2016 或更新的 Standard、Enterprise 或 Developer 版本開始,自動備份會自動針對 Azure VM 上 SQL Server 中的所有現有和新資料庫,自動設定受控備份至 Microsoft Azure。 這可讓您設定採用持久性 Azure Blob 儲存體的一般資料庫備份。

必要條件

若要為 Azure VM 上的 SQL Server 使用自動備份功能,您需要:

  • 使用 SQL IaaS 代理程式延伸模組註冊的 Azure VM 上的 SQL Server。
  • Windows Server 2012 R2 或更新版本。
  • SQL Server 2016 及更新版本。 對於 SQL Server 2014,請參閱適用於 SQL Server 2014 的自動備份
  • 資料庫設定
    • 目標的使用者資料庫必須使用完整復原模型。 系統資料庫不一定要使用完整復原模式。 不過,如果您需要針對 modelmsdb 建立記錄備份,則必須使用完整復原模式。 如需深入瞭解完整復原模式對備份之影響,請參閱在完整復原模式下備份
    • SQL Server VM 已向 SQL IaaS 代理程式延伸模組註冊,並且已啟用「自動備份」功能。 因為自動備份依賴延伸模組,所以只有預設執行個體中的目標資料庫或是單一具名執行個體才支援自動備份。 如果沒有預設執行個體,而且有多個具名執行個體,則 SQL IaaS 代理程式延伸模組會失敗,而且自動備份將無法運作。
    • 如果您要在次要 Always On 可用性群組複本執行自動備份,複本必須是可讀取才能備份成功。

設定

下表說明可以為自動備份設定的選項。 實際的設定步驟會依據您是使用 Azure 入口網站或 Azure Windows PowerShell 命令而有所不同。 自動備份預設會使用備份壓縮,而且無法將其停用。

基本設定

設定 範圍 (預設值) 描述
自動備份 啟用/停用 (已停用) 針對執行 SQL Server 2016 或更新版本 Developer、Standard 或 Enterprise 的 Azure VM,啟用或停用自動備份。
保留週期 1-90 天 (90 天) 服務在 msdb 保留備份中繼資料的天數。 備份的保留期間到期之後會從 msdb 刪除中繼資料,但不會從儲存體容器刪除檔案。 您可以使用儲存體帳戶的生命週期管理原則,根據業務需求在備份保留期與成本管理之間取得平衡。
儲存體帳戶 Azure 儲存體帳戶 將自動備份檔案儲存在 Blob 儲存體中時,所使用的 Azure 儲存體帳戶。 這個位置會建立一個容器來儲存所有備份檔案。 備份檔案命名慣例包括日期、時間和資料庫 GUID。
加密 啟用/停用 (已停用) 啟用或停用備份加密。 啟用備份加密時,會使用相同的命名慣例,將用來還原備份的憑證放在相同 automaticbackup 容器的指定儲存體帳戶中。 如果密碼變更,就會以該密碼產生新的憑證,但是舊的憑證還是會保留,以還原先前的備份。
密碼 密碼文字 加密金鑰的密碼。 唯有啟用加密時,才需要此密碼。 若要還原加密的備份,您必須要有建立備份時所使用的正確密碼和相關憑證。

進階設定

設定 範圍 (預設值) 描述
系統資料庫備份 啟用/停用 (已停用) 啟用時,此功能也會備份系統資料庫:mastermsdbmodel。 針對 msdbmodel 資料庫,如果您想要進行記錄備份,則請驗證其是否處於完整復原模式。 永遠不會針對 master 進行記錄備份,也不會針對 tempdb 建立任何備份。
備份排程 手動/自動化 (自動化) 預設會根據記錄的成長情況自動決定備份排程。 手動備份排程可讓使用者指定備份的時間範圍。 在此情況下,只會以指定的頻率且在特定一天的指定時間範圍期間進行備份。
完整備份頻率 每天/每週 完整備份的頻率。 在這兩種情況下,完整備份都會在下一個排定的時間範圍期間開始進行。 選取 [每週] 時,備份可以跨多天,直到所有資料庫都已順利備份為止。
完整備份開始時間 00:00 – 23:00 (01:00) 可進行完整備份的特定一天開始時間期間。
完整備份時間範圍 1 – 23 小時 (1 小時) 可進行完整備份的特定一天時間範圍持續時間。
記錄備份頻率 5 – 60 分鐘 (60 分鐘) 記錄備份的頻率。

注意

自動備份排程會根據記錄成長備份。 不建議在資料庫處於簡單修復模式時使用自動備份。

了解完整備份頻率

了解每天與每週備份之間的差異相當重要。 請考慮下列兩個案例範例。

案例 1:每週備份

您有一部包含一些大型資料庫的 SQL Server VM。

在星期一,您以下列設定啟用「自動備份」:

  • 備份排程:手動
  • 完整備份頻率:每週
  • 完整備份開始時間:01:00
  • 完整備份時間範圍:1 小時

這意謂著下一個可用的備份時間範圍是星期二上午 1 點,持續時間為 1 小時。 到該時間,「自動備份」會開始逐一備份您的資料庫。 在此案例中,由於您的資料庫相當大,因此會完成前幾個資料庫的完整備份。 不過,在一小時之後,並非所有資料庫都已完成備份。

如果發生這種情況,「自動備份」就會在下一天 (星期三) 的上午 1 點備份剩餘的資料庫,持續時間為一小時。 如果在該時間未完成所有資料庫的備份,就會在下一天的相同時間再次嘗試。 這會持續直到順利備份所有資料庫為止。

再次到了星期二後,「自動備份」就會重新開始將所有資料庫備份一遍。

此案例說明「自動備份」只會在指定的時間範圍內運作,且每個資料庫每週會備份一次。 這也說明在無法一天內完成所有備份的情況下,可以跨多天執行備份。

案例 2:每日備份

您有一部包含一些大型資料庫的 SQL Server VM。

在星期一,您以下列設定啟用「自動備份」:

  • 備份排程:手動
  • 完整備份頻率:每日
  • 完整備份開始時間:22:00
  • 完整備份時間範圍:6 小時

這意謂著下一個可用的備份時間範圍是星期一下午 10 點,持續時間為 6 小時。 到該時間,「自動備份」會開始逐一備份您的資料庫。

然後,在星期二下午 10 點,會重新開始進行所有資料庫的完整備份,持續時間為 6 小時。

重要

備份會在每個間隔內依序進行。 針對具有大量資料庫的執行個體,請以足夠的時間來排程您的備份間隔,以容納所有備份。 如果備份無法在指定的間隔內完成,某些備份可能會略過,而您的單一資料庫備份之間的時間可能會高於設定的備份間隔時間,這可能會對還原點目標 (RPO) 造成負面影響。

設定新的虛擬機器

以 Resource Manager 部署模型建立新的 SQL Server 2016 或更新版本虛擬機器時,請使用 Azure 入口網站來設定自動備份。

在 [SQL Server 設定] 索引標籤中,選取 [自動備份] 下方的 [啟用]。 當您啟用自動備份時,可以進行下列設定:

  • 備份的保留期間 (最多 90 天)
  • 用於備份的儲存體帳戶和儲存體容器
  • 備份的加密選項和密碼
  • 備份系統資料庫
  • 設定備份排程

若要加密備份,請選取 [啟用]。 然後指定 [密碼] 。 Azure 會建立憑證來加密備份,並使用指定的密碼來保護該憑證。

選擇 [選取儲存體容器],以指定要用來儲存備份的容器。

依預設會自動設定排程,但您可以選取 [手動] 以建立自己的排程,如此,您即可設定備份頻率、備份時間範圍和記錄備份頻率 (以分鐘為單位)。

下列 Azure 入口網站螢幕擷取畫面顯示建立新的 SQL Server VM 時的自動備份設定:

Azure 入口網站中自動備份設定的螢幕擷取畫面。

設定現有的虛擬機器

針對現有 SQL Server 虛擬機器,請移至 SQL 虛擬機器資源,然後選取 [備份] 以設定自動備份。

選取 [啟用] 以設定自動備份設定。

您可以設定保留期限 (最多90天)、要用來儲存備份的儲存體帳戶容器,以及加密和備份排程。 根據預設,排程會自動進行。

入口網站中現有 VM 的自動備份螢幕擷取畫面。

如果您想設定自己的備份排程,請選擇 [手動] 並設定備份頻率 (無論您是否要備份系統資料庫),以及交易記錄備份間隔 (以分鐘為單位)。

選取手動,自行設定備份排程的螢幕擷取畫面

完成後,請選取 [備份] 設定頁面底部的 [套用] 按鈕,以儲存變更。

如果您是第一次啟用自動備份,則 Azure 會在背景中設定 SQL Server IaaS 代理程式。 在此期間,Azure 入口網站可能不會顯示已設定自動備份。 請等候幾分鐘的時間來安裝及設定代理程式。 之後,Azure 入口網站將會反映新的設定。

使用 PowerShell 設定

您可以使用 PowerShell 來設定「自動備份」。 開始進行之前,您必須:

注意

本文使用 Azure Az PowerShell 模組,這是與 Azure 互動時建議使用的 PowerShell 模組。 若要開始使用 Az PowerShell 模組,請參閱安裝 Azure PowerShell。 若要瞭解如何遷移至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 遷移至 Az。

安裝 SQL Server IaaS 擴充功能

如果您是從 Azure 入口網站佈建 SQL Server 虛擬機器,則「SQL Server IaaS 擴充功能」應該已經安裝妥當。 您可以呼叫 Get-AzVM 命令並檢查 Extensions 屬性,以判斷是否已為 VM 安裝該延伸模組。

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"

(Get-AzVM -Name $vmname -ResourceGroupName $resourcegroupname).Extensions 

如果已安裝 SQL Server IaaS 代理程式延伸模組,您應該會看到它列為 "SqlIaaSAgent" 或 "SQLIaaSExtension"。延伸模組的 ProvisioningState 也應該顯示為「成功」。

如果未安裝或無法進行佈建,則您可以使用下列命令來進行安裝。 除了 VM 名稱和資源群組之外,您還必須指定 VM 所在的區域 ( $region)。

$region = "EASTUS2"
Set-AzVMSqlServerExtension -VMName $vmname `
    -ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
    -Version "2.0" -Location $region 

確認目前的設定

如果已在佈建期間啟用自動備份,則可使用 PowerShell 來檢查目前的設定。 請執行 Get-AzVMSqlServerExtension 命令並檢查 AutoBackupSettings 屬性:

(Get-AzVMSqlServerExtension -VMName $vmname -ResourceGroupName $resourcegroupname).AutoBackupSettings

您應該會看到類似以下的輸出:

Enable                      : True
EnableEncryption            : False
RetentionPeriod             : 30
StorageUrl                  : https://test.blob.core.windows.net/
StorageAccessKey            :  
Password                    : 
BackupSystemDbs             : False
BackupScheduleType          : Manual
FullBackupFrequency         : WEEKLY
FullBackupStartTime         : 2
FullBackupWindowHours       : 2
LogBackupFrequency          : 60

如果輸出顯示 Enable 是設定為 False,您就必須啟用自動備份。 好消息是,啟用和設定「自動備份」的方式是相同的。 如需這項資訊,請參閱下一節。

注意

如果您在進行變更後立即檢查設定,可能會得到舊的組態值。 只要等幾分鐘後再重新檢查設定,即可確定已套用您的變更。

設定自動備份

您可以使用 PowerShell 來啟用「自動備份」,也可以隨時修改其組態和行為。

首先,為備份檔案選取或建立儲存體帳戶。 下列指令碼會選取或建立儲存體帳戶 (如果不存在)。

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

注意

「自動備份」不支援將備份存放在進階儲存體中,但是可以從使用「進階儲存體」的 VM 磁碟進行備份。

如果您想要在儲存體帳戶中使用自訂容器進行備份,請使用下列指令碼來檢查容器,如果容器不存在,請加以建立。

$storage_container = "backupcontainer"

New-AzStorageContainer -Name $storage_container -Context $storage.Context

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

接下來,使用下列指令碼來取得儲存體帳戶的存取金鑰:

$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

接著,使用 Update-AzSqlVM 命令來啟用及設定自動備份設定,以將備份儲存在 Azure 儲存體帳戶中。 在此範例中,是將備份設定為保留 10 天。 系統資料庫備份已啟用。 完整備份排定為每星期六 (每週) 執行,時間範圍從 20:00 開始並持續兩小時。 記錄備份是排定為每 30 分鐘執行一次。

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType Manual `
-AutoBackupSettingFullBackupFrequency Weekly 
-AutoBackupSettingDaysOfWeek Saturday `
-AutoBackupSettingFullBackupStartTime 20 `
-AutoBackupSettingFullBackupWindowHour 2 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingLogBackupFrequency 30 `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb

可能需要幾分鐘的時間來安裝及設定 SQL Server IaaS 代理程式。

若要啟用加密,請修改先前的指令碼,為 -AutoBackupSettingPassword 參數傳遞 -AutoBackupSettingEnableEncryption 參數和密碼 (安全字串)。 下列指令碼會啟用上述範例中的自動備份設定,並新增加密。

$password = "r@ndom Va1ue"
$encryptionpassword = $password | ConvertTo-SecureString -AsPlainText -Force  

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType Manual `
-AutoBackupSettingFullBackupFrequency Weekly `
-AutoBackupSettingDaysOfWeek Saturday `
-AutoBackupSettingFullBackupStartTime 20 `
-AutoBackupSettingFullBackupWindowHour 2 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingLogBackupFrequency 30 `
-AutoBackupSettingEnableEncryption `
-AutoBackupSettingPassword $encryptionpassword `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb

若要確認是否已套用您的設定,請確認自動備份組態

停用自動備份

若要停用自動備份,請執行相同的指令碼,並將 Update-AzSqlVM 命令中的 -AutoBackupSettingEnable 參數設定為 $false。 將此值設定為 $false,將停用該功能。 和安裝一樣,可能需要幾分鐘的時間來停用自動備份。

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable:$false

範例指令碼

以下指令碼提供一組變數,您可以自訂這些變數來為您的 VM 啟用及設定「自動備份」。 在您的案例中,您可能需要根據您的需求自訂此指令碼。 例如,如果您想要停用系統資料庫備份或啟用加密,您就必須進行變更。

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$region = "Azure region name such as EASTUS2"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"
$retentionperiod = 10
$backupscheduletype = "Manual"
$fullbackupfrequency = "Weekly"
$fullbackupdayofweek = "Saturday"
$fullbackupstarthour = "20"
$fullbackupwindow = "2"
$logbackupfrequency = "30"

# ResourceGroupName is the resource group which is hosting the VM where you are deploying the SQL Server IaaS Extension 

Set-AzVMSqlServerExtension -VMName $vmname `
    -ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
    -Version "2.0" -Location $region

# Creates/use a storage account to store the backups

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

# Creates/uses a custom storage account container

$storage_container = "yourbackupcontainer"

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

# Get storage account access key
$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

# Configure Automated Backup settings

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType $backupscheduletype `
-AutoBackupSettingFullBackupFrequency $fullbackupfrequency `
-AutoBackupSettingDaysOfWeek $fullbackupdayofweek `
-AutoBackupSettingFullBackupStartTime $fullbackupstarthour `
-AutoBackupSettingFullBackupWindowHour $fullbackupwindow `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod $retentionperiod `
-AutoBackupSettingLogBackupFrequency $logbackupfrequency `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb

使用加密憑證備份

如果您決定加密備份,則會產生加密憑證,並儲存在與備份相同的儲存體帳戶中。 在此案例中,您還必須輸入密碼,用來保護用於加密和解密備份的加密憑證。 這樣一來,備份時,您只要設定好這項功能就能高枕無憂,還可確保您相信備份安全無虞。

啟用備份加密時,強烈建議您確定是否已成功建立和上傳加密憑證,確保資料庫的可還原性。 立即建立資料庫,並檢查加密憑證和和資料已正確備份至新建立容器即可。 這會顯示一切都已設定正確,而且未發生任何異常狀況。

如果憑證因故無法上傳,您可以使用憑證管理員匯出憑證,然後儲存。 然而,最好不要將它儲存在相同的 VM 上,因為無法確保 VM 關閉時您可存取憑證。 若要了解變更或建立自動備份設定之後,憑證是否已正確備份,您可以在 VM 查看事件記錄檔,如果失敗,您會看到此錯誤訊息:

VM 事件記錄檔顯示的錯誤訊息螢幕擷取畫面。

如果憑證正確備份,您會在事件記錄檔看到此訊息:

事件記錄中成功備份加密憑證的螢幕擷取畫面。

一般實務建議您不時檢查備份的健康情況。 若要能夠還原備份,您應該執行下列動作:

  1. 確認您的加密憑證已備份,而且記得密碼。 否則您無法解密和還原備份。 如果您的憑證因故未正確備份,執行下列 T-SQL 查詢即可手動完成此作業:

    BACKUP MASTER KEY TO FILE = <file_path> ENCRYPTION BY PASSWORD = <password>
    BACKUP CERTIFICATE [AutoBackup_Certificate] TO FILE = <file_path> WITH PRIVATE KEY (FILE = <file_path>, ENCRYPTION BY PASSWORD = <password>)
    
  2. 確認您的備份檔案已上傳至少 1 個完整備份。 因為錯誤難免發生,刪除 VM 之前,或者 VM 損毀時,您應該確定隨時至少有一個完整備份,知道自己仍然可以存取資料。 您應該先確定儲存體中的備份安全且可還原,再刪除 VM 的資料磁碟。

監視

若要監控 SQL Server 2016 和更新版本上的自動備份,您有兩個主要選項。 因為自動備份使用 SQL Server 受控備份功能,所以相同的監控技術適用於兩者。

首先,您可以藉由呼叫 msdb.managed_backup.sp_get_backup_diagnostics 來輪詢狀態。 或查詢 msdb.managed_backup.fn_get_health_status 資料表值函式。

另一個選項是利用內建的 Database Mail 功能進行通知。

  1. 呼叫 msdb.managed_backup.sp_set_parameter 預存程序,以將電子郵件地址指派至 SSMBackup2WANotificationEmailIds 參數。
  2. 啟用 SendGrid,以從 Azure VM 傳送電子郵件。
  3. 使用 SMTP 伺服器與使用者名稱以設定 Database Mail。 您可以在 SQL Server Management Studio 中或使用 Transact-SQL 命令設定 Database Mail。 如需詳細資訊,請參閱 Database Mail
  4. 設定 SQL Server Agent 以使用 Database Mail
  5. 確認是否允許 SMTP 連接埠經過本機虛擬機器防火牆和虛擬機器的網路安全性群組。

已知問題

使用自動備份功能時,請考慮這些已知問題。

無法在 Azure 入口網站中啟用自動備份

如果您從 Azure 入口網站啟用自動備份時發生問題,則下表列出可能的解決方案:

徵狀 解決方法
如果您的 IaaS 延伸模組處於失敗狀態,則啟用自動備份將會失敗 如果 SQL IaaS 代理程式延伸模組處於失敗狀態,則請予以修復。
如果您有數百個資料庫,則啟用自動備份會失敗 這是 SQL IaaS 代理程式延伸模組的已知限制。 若要解決此問題,您可以直接啟用受控備份,而不是使用 SQL IaaS 代理程式延伸模組來設定自動備份。
啟用自動備份因中繼資料問題而失敗 停止 SQL IaaS 代理程式服務。 執行 T-SQL 命令:use msdb exec autoadmin_metadata_delete。 啟動 SQL IaaS 代理程式服務,然後嘗試從 Azure 入口網站重新啟用自動備份。
啟用 FCI 的自動備份 不支援使用私人端點進行備份。 針對您的備份,使用完整儲存體帳戶 URI。
使用自動備份來備份多個 SQL 執行個體 自動備份目前只支援一個 SQL Serve 執行個體。 如果您有多個具名執行個體和預設執行個體,則自動備份適用於預設執行個體。 如果您有多個具名執行個體,而且沒有預設執行個體,則開啟自動備份將會失敗。
因帳戶和權限而無法啟用自動備份 請檢查下列項目:
- SQL Server Agent 正在執行。
- NT Service\SqlIaaSExtensionQuery 帳戶具有 SQL Server 內自動備份功能以及 Azure 入口網站中 SQL 虛擬機器資源的適當權限
- SA 帳戶尚未重新命名,但可接受停用。
SQL 2016 + 的自動備份失敗 已在儲存體帳戶上啟用 [允許 Blob 公用存取]。 這可提供已知問題的暫時因應措施。

自動或受控備份的常見問題

下表列出使用自動備份時可能發生的錯誤和解決方案:

徵狀 解決方法
自動/受控備份因儲存體帳戶連線/逾時錯誤而失敗 檢查虛擬網路的網路安全性群組 (NSG),而且 Windows 防火牆未封鎖連接埠 443 上從虛擬機器 (VM) 到儲存體帳戶的輸出連線。
自動/受控備份因記憶體/IO 壓力而失敗 查看您是否可以增加伺服器記憶體上限,以及/或在 IO/VM 限制不足時,調整磁碟/VM 的大小。 如果您要使用可用性群組,則請考慮將備份卸載至次要複本。
自動備份在重新命名伺服器後失敗 如果您已重新命名機器主機名稱,則也需要重新命名 SQL Server 內的主機名稱
錯誤: 因為發生內部錯誤,導致作業失敗。 引數不得為空字串。\r\n參數名稱: sas Token 請稍後重試 這可能是 SQL Server Agent 服務沒有正確的模擬權限所造成。 將 SQL Server Agent 服務變更為使用不同的帳戶,來修正此問題。
錯誤: 因為容器 URL 無效,所以 SQL Server Managed Backup to Microsoft Azure 無法設定 SQLServer 執行個體的預設備份設定。 也有可能是您的 SAS 認證無效 如果您有大量資料庫,則可能會看到此錯誤。 使用受控備份,而不是自動備份。
自動備份工作在 VM 重新啟動之後失敗 檢查 SQL Agent 服務已啟動並執行。
受控備份間歇性失敗/錯誤:執行逾時已過期 這是 CU18 for SQL Server 2019 和 [KB4040376] for SQL Server 2014-2017 中修正的已知問題。
錯誤:遠端伺服器傳回錯誤:(403) 已禁止 修復 SQL IaaS 代理程式延伸模組
錯誤 3202:儲存體帳戶上的寫入失敗 13 (資料無效) 移除儲存體容器上的不可變 Blob 原則,並確定儲存體帳戶至少使用 TLS 1.0。
錯誤 3063:寫入備份區塊 Blob 裝置。 裝置已達到其允許的區塊限制。 如果您從將 Readable 設定設定為 NO 的次要 Always On 可用性群組複本執行自動備份,就可能發生此情況。 若要讓自動備份在次要複本執行,複本必須是可讀取。
無法排程特定日期的備份 如果您使用 SQL Server 2014 的自動化備份功能,則這是正常的。 從 SQL Server 2016 開始,您可以設定備份排程。

停用自動備份或受控備份失敗

如果您從 Azure 入口網站停用自動備份時發生問題,則下表列出可能的解決方案:

徵狀 解決方法
如果您的 IaaS 擴充功能處於失敗狀態,則停用自動備份將會失敗 如果 SQL IaaS 代理程式延伸模組處於失敗狀態,則請予以修復。
因中繼資料問題而導致停用自動備份失敗 停止 SQL IaaS 代理程式服務。 執行 T-SQL 命令:use msdb exec autoadmin_metadata_delete。 啟動 SQL Iaas 代理程式服務,然後嘗試從 Azure 入口網站停用自動備份。
因帳戶和權限而無法停用自動備份 請檢查下列項目:
- SQL Server Agent 正在執行。
- NT Service\SqlIaaSExtensionQuery 帳戶具有 SQL Server 內自動備份功能以及 Azure 入口網站中 SQL 虛擬機器資源的適當權限
- SA 帳戶尚未重新命名,但可接受停用。

我想要了解正在備份 SQL Server 的服務/應用程式

  • 在 SQL Server Management Studio (SSMS) [物件總管] 中,以滑鼠右鍵按一下資料庫 > 選取 [報表] > [標準報表] > [備份和還原事件]。 在報表中,您可以展開 [成功備份作業] 區段來查看備份歷程記錄。
  • 如果您在 Azure 上看到多個備份或看到備份至虛擬裝置,則請檢查您是否使用 Azure 備份來備份個別 SQL 資料庫,或將虛擬機器快照集帶至使用 NT Authority/SYSTEM 帳戶的虛擬裝置。 如果不是,請檢查 Windows [服務] 主控台 (services.msc),以識別任何可能建立備份的第三方應用程式。

下一步

自動備份會在 Azure VM 上設定受控備份。 因此,請務必檢閱受控備份的文件,以了解其行為和隱含意義。

您可以在下列文章中找到適用於 Azure VM 上 SQL Server 的其他備份和還原指引:Azure 虛擬機器上的 SQL Server 備份和還原

如需有關其他可用之自動化工作的資訊,請參閱 SQL Server IaaS 代理程式擴充功能

如需在 Azure VM 上執行 SQL Server 的詳細資訊,請參閱 Azure 虛擬機器上的 SQL Server 概觀