從 SQL Server 2016 或更新的 Standard、Enterprise 或 Developer 版本開始,自動備份會自動針對 Azure VM 上 SQL Server 中的所有現有和新資料庫,自動設定受控備份至 Microsoft Azure。 這項功能可讓您設定利用持久性 Azure Blob 儲存體的一般資料庫備份。
Prerequisites
若要為 Azure VM 上的 SQL Server 使用自動備份功能,您需要:
- 使用 SQL IaaS 代理程式延伸模組註冊的 Azure VM 上的 SQL Server。
- Windows Server 2012 R2 或更新版本。
- SQL Server 2016 及更新版本。 對於 SQL Server 2014,請參閱適用於 SQL Server 2014 的自動備份。
- 下列 資料庫組態:
- 目標 使用者 資料庫必須使用完整復原模式。 系統資料庫不一定要使用完整復原模式。 不過,如果您需要針對
model或msdb建立記錄備份,則必須使用完整復原模式。 如需深入瞭解完整復原模式對備份之影響,請參閱在完整復原模式下備份。 - SQL Server VM 必須啟用 自動備份 功能。 因為自動備份依賴延伸模組,所以只有預設執行個體中的目標資料庫或是單一具名執行個體才支援自動備份。 如果沒有預設執行個體,而且有多個具名執行個體,則 SQL IaaS 代理程式延伸模組會失敗,而且自動備份將無法運作。
- 如果您在次要 Always On 可用性群組複本上執行自動備份,複本必須是 可讀取的, 備份才能成功。
- 目標 使用者 資料庫必須使用完整復原模式。 系統資料庫不一定要使用完整復原模式。 不過,如果您需要針對
Settings
下表說明可以為自動備份設定的選項。 實際的設定步驟會依據您是使用 Azure 入口網站或 Azure Windows PowerShell 命令而有所不同。 自動備份預設會使用 備份壓縮 ,而且無法停用。
基本設定
| Setting | 範圍 (預設) | Description |
|---|---|---|
| 自動備份 | 啟用/停用(已停用) | 針對執行 SQL Server 2016 或更新版本 Developer、Standard 或 Enterprise 的 Azure VM,啟用或停用自動備份。 |
| 保留期限 | 1-90 天 (90 天) | 服務在 msdb 保留備份中繼資料的天數。 備份的保留期間到期之後會從 msdb 刪除中繼資料,但不會從儲存體容器刪除檔案。 您可以使用儲存體帳戶的生命週期管理原則,根據業務需求在備份保留期與成本管理之間取得平衡。 |
| 儲存體帳戶 | Azure 儲存體帳戶 | 將自動備份檔案儲存在 Blob 儲存體中時,所使用的 Azure 儲存體帳戶。 這個位置會建立一個容器來儲存所有備份檔案。 備份檔案命名慣例包括日期、時間和資料庫 GUID。 |
| Encryption | 啟用/停用(已停用) | 啟用或停用備份加密。 啟用備份加密時,會使用相同的命名慣例,將用來還原備份的憑證放在相同 automaticbackup 容器的指定儲存體帳戶中。 如果密碼變更,就會以該密碼產生新的憑證,但是舊的憑證還是會保留,以還原先前的備份。 |
| Password | 密碼文字 | 加密金鑰的密碼。 唯有啟用加密時,才需要此密碼。 若要還原加密的備份,您必須要有建立備份時所使用的正確密碼和相關憑證。 |
進階設定
| Setting | 範圍 (預設) | Description |
|---|---|---|
| 系統資料庫備份 | 啟用/停用(已停用) | 啟用時,此功能也會備份系統資料庫:master、msdb 和 model。 針對 msdb 和 model 資料庫,如果您想要進行記錄備份,則請驗證其是否處於完整復原模式。 永遠不會針對 master 進行記錄備份,也不會針對 tempdb 建立任何備份。 |
| 備份時間表 | 手動/自動(自動) | 依預設,備份排程會根據日誌成長自動決定。 手動備份排程可讓使用者指定備份的時間範圍。 在此情況下,只會以指定的頻率且在特定一天的指定時間範圍期間進行備份。 |
| 完整備份頻率 | Daily/Weekly | 完整備份的頻率。 在這兩種情況下,完整備份都會在下一個排定的時間範圍期間開始進行。 選取每週時,備份可能會跨越多天,直到成功備份所有資料庫為止。 |
| 完整備份開始時間 | 00:00 – 23:00 (01:00) | 可進行完整備份的特定一天開始時間期間。 |
| 完整備份時間範圍 | 1 – 23 小時 (1 小時) | 可進行完整備份的特定一天時間範圍持續時間。 |
| 記錄備份頻率 | 5 – 60 分鐘 (60 分鐘) | 記錄備份的頻率。 |
Note
「自動備份」排程會根據記錄成長進行備份。 不建議在資料庫處於 簡單復原模式 時使用自動備份。
瞭解完整備份頻率
了解每天與每週備份之間的差異相當重要。 請考慮下列兩個案例範例。
案例 1:每週備份
您有一個包含數個大型資料庫的 SQL Server VM。
在星期一,您以下列設定啟用「自動備份」:
- 備份排程: 手動
- 完整備份頻率: 每週
- 完整備份開始時間: 01:00
- 完整備份時間範圍: 1 小時
這些設定表示下一個可用的備份時段是星期二凌晨 1 點,持續 1 小時。 到該時間,「自動備份」會開始逐一備份您的資料庫。 在此案例中,由於您的資料庫相當大,因此會完成前幾個資料庫的完整備份。 不過,一小時後,並非所有資料庫都會備份。
如果發生這種情況,「自動備份」就會在下一天 (星期三) 的上午 1 點備份剩餘的資料庫,持續時間為一小時。 如果在該時間內未備份所有資料庫,則會在第二天同時重試。 這一直持續到成功備份所有資料庫為止。
再次到了星期二後,「自動備份」就會重新開始將所有資料庫備份一遍。
此案例說明「自動備份」只會在指定的時間範圍內運作,且每個資料庫每週會備份一次。 它還表明,當不可能在一天內完成所有備份時,備份可以跨越多天。
案例 2:每日備份
您有一個包含數個大型資料庫的 SQL Server VM。
在星期一,您以下列設定啟用「自動備份」:
- 備份排程:手動
- 完整備份頻率:每日
- 完整備份開始時間:22:00
- 完整備份時間範圍:6 小時
這些設定表示下一個可用的備份時段是星期一晚上 10 點,持續 6 小時。 到該時間,「自動備份」會開始逐一備份您的資料庫。
然後,在星期二下午 10 點,會重新開始進行所有資料庫的完整備份,持續時間為 6 小時。
Important
備份會在每個間隔內依序進行。 針對具有大量資料庫的執行個體,請以足夠的時間來排程您的備份間隔,以容納所有備份。 如果備份無法在指定的間隔內完成,則可能會略過某些備份,且單一資料庫的備份間隔時間可能會高於設定的備份間隔時間。 這種情況可能會對還原點目標 (RPO) 產生負面影響。
設定新的虛擬機器
以 Resource Manager 部署模型建立新的 SQL Server 2016 或更新版本虛擬機器時,請使用 Azure 入口網站來設定自動備份。
在 [SQL Server 設定] 索引標籤中,選取 [自動備份] 下方的 [啟用]。 當您啟用自動備份時,可以進行下列設定:
- 備份的保留期間 (最多 90 天)
- 用於備份的儲存體帳戶和儲存體容器
- 備份的加密選項和密碼
- 備份系統資料庫
- 設定備份排程
若要加密備份,請選取 [啟用]。 然後指定 [密碼] 。 Azure 會建立憑證來加密備份,並使用指定的密碼來保護該憑證。
選擇 [選取儲存體容器],以指定要用來儲存備份的容器。
依預設會自動設定排程,但您可以選取 [手動] 以建立自己的排程,如此,您即可設定備份頻率、備份時間範圍和記錄備份頻率 (以分鐘為單位)。
下列 Azure 入口網站螢幕擷取畫面顯示建立新 SQL Server VM 時的 [自動備份 ] 設定:
設定現有的虛擬機器
針對現有 SQL Server 虛擬機器,請移至 SQL 虛擬機器資源,然後選取 [備份] 以設定自動備份。
選取 [啟用] 以設定您的自動備份設定。
您可以設定保留期間 (最多 90 天)、您要儲存備份之儲存體帳戶的容器、加密和備份排程。 根據預設,排程會自動進行。
如果您想要設定自己的備份排程,請選擇 手動並 設定備份頻率、是否要備份系統資料庫,以及交易記錄備份間隔 (以分鐘為單位)。
完成後,選取 [備份設定] 頁面底部的 [套用] 按鈕以儲存變更。
如果您是第一次啟用自動備份,則 Azure 會在背景中設定 SQL Server IaaS 代理程式。 在此期間,Azure 入口網站可能不會顯示已設定自動備份。 請等候幾分鐘的時間來安裝及設定代理程式。 之後,Azure 入口網站將會反映新的設定。
使用 PowerShell 設定
您可以使用 PowerShell 來設定「自動備份」。 開始進行之前,您必須:
- 下載並安裝最新的 Azure PowerShell。
- 開啟 Windows PowerShell,並使用 Connect-AzAccount 命令將它與您的帳戶產生關聯。
Note
本文使用 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 屬性,來判斷是否已為您的虛擬機安裝。
$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,則必須啟用自動備份。 好消息是,啟用和設定「自動備份」的方式是相同的。 如需這項資訊,請參閱下一節。
Note
如果您在進行更改後立即檢查設置,您可能會取回舊的配置值。 只要等幾分鐘後再重新檢查設定,即可確定已套用您的變更。
設定自動備份
您可以使用 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 }
Note
自動備份不支援將備份儲存在進階儲存體中,但它可以從使用進階儲存體的 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 代理程式。
若要啟用加密,請修改先前的腳本,以傳遞 -AutoBackupSettingEnableEncryption 參數以及 -AutoBackupSettingPassword 參數的密碼 (安全字串)。 下列指令碼會啟用上述範例中的自動備份設定,並新增加密。
$password = "<secure password>"
$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
若要確認是否已套用您的設定,請確認自動備份組態。
停用自動備份
若要停用自動備份,請執行相同的腳本,並將 -AutoBackupSettingEnable 參數設定為 Update-AzSqlVM 命令中的 $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 中的事件記錄檔。 如果失敗,您會在事件記錄檔中看到下列錯誤訊息:
如果憑證已正確備份,則事件記錄檔中會出現此訊息:
一般做法是,建議您不時檢查備份的健康情況。 為了能夠還原備份,您應該進行以下檢查:
確認您的加密憑證已備份,而且記得密碼。 如果您不執行此步驟,您將無法解密和恢復備份。 如果由於某些原因,您的憑證未正確備份,您可以執行下列 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>)確認您的備份檔案中至少上傳了一個完整的備份。 因為錯誤難免發生,刪除 VM 之前,或者 VM 損毀時,您應該確定隨時至少有一個完整備份,知道自己仍然可以存取資料。 您應該先確定記憶體中的備份安全且可復原,再刪除 VM 的數據磁碟。
監控備份
若要監控 SQL Server 2016 和更新版本上的自動備份,您有兩個主要選項。 因為自動備份使用 SQL Server 受控備份功能,所以相同的監控技術適用於兩者。
首先,您可以呼叫 msdb.managed_backup.sp_get_backup_diagnostics 來查詢和檢查狀態。 或查詢 msdb.managed_backup.fn_get_health_status 資料表值函數。
另一個選項是利用內建的 Database Mail 功能進行通知。
- 呼叫 msdb.managed_backup.sp_set_parameter 預存程序,將電子郵件地址指派給 SSMBackup2WANotificationEmailIds 參數。
- 啟用 SendGrid 以從 Azure VM 傳送電子郵件。
- 使用 SMTP 伺服器與使用者名稱以設定 Database Mail。 您可以在 SQL Server Management Studio 中或使用 Transact-SQL 命令設定 Database Mail。 如需詳細資訊,請參閱 Database Mail。
- 設定 SQL Server Agent 以使用 Database Mail。
- 確認是否允許 SMTP 連接埠經過本機虛擬機器防火牆和虛擬機器的網路安全性群組。
已知問題
使用自動備份功能時,請考慮這些已知問題。
無法在 Azure 入口網站中啟用自動備份
如果您從 Azure 入口網站啟用自動備份時發生問題,則下表列出可能的解決方案:
| Symptom | Solution |
|---|---|
| 如果您的 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 公用存取]。 此解決方案提供已知問題的暫時因應措施。 |
自動化或受控備份的常見問題
下表列出使用自動備份時可能發生的錯誤和解決方案:
| Symptom | Solution |
|---|---|
| 自動/受控備份因儲存體帳戶連線/逾時錯誤而失敗 | 檢查虛擬網路的網路安全性群組 (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 服務已啟動並執行。 |
| 受控備份間歇性失敗/錯誤:執行逾時已過期 | 這是 SQL Server 2019 的 CU18 和 SQL Server 2014-2017 的 KB4040376 中已修正的已知問題。 |
| 錯誤:遠端伺服器傳回錯誤:(403) 已禁止 | 修復 SQL IaaS 代理程式延伸模組。 |
| 錯誤 3202:儲存體帳戶上的寫入失敗 13 (資料無效) | 移除儲存體容器上的不可變 Blob 原則,並確定儲存體帳戶至少使用 TLS 1.0。 |
| 錯誤 3063:寫入備份區塊 Blob 裝置。 裝置已達到其允許的區塊限制。 | 如果您從將 Readable 設定設定為 NO 的次要 Always On 可用性群組複本執行自動備份,就可能發生此情況。 若要讓自動備份在次要複本執行,複本必須是可讀取。 |
| 無法排程特定日期的備份 | 如果您使用 SQL Server 2014 的自動備份,則預期會有此問題。 從 SQL Server 2016 開始,您可以設定備份排程。 |
| 聯機到遠端伺服器時發生 403 禁止錯誤 | 若要解決此錯誤: - 檢查網路安全性:確定網路安全組 (NSG) 允許必要埠上的流量,特別是 HTTPS 的埠 443 。 - 確認IP位址:確定需要存取記憶體帳戶之 VM 的IP位址會新增至記憶體帳戶的允許清單。 - 檢閱 DNS 設定:確認 DNS 設定已正確設定為解析記憶體帳戶名稱。 |
停用自動備份或受控備份失敗
如果您從 Azure 入口網站停用自動備份時發生問題,則下表列出可能的解決方案:
| Symptom | Solution |
|---|---|
| 如果您的 SQL 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) 以識別可能正在進行備份的任何協力廠商應用程式。