管理自動備份 - Azure Arc 啟用的 SQL Server (預覽版)

適用於:SQL Server

適用於 SQL Server 的 Azure 延伸模組可以自動為 Azure Arc 啟用之 SQL Server 執行個體的系統和使用者資料庫執行備份。

本篇文章說明如何︰

  • 啟用這些內建的自動備份
  • 設定備份排程

注意

作為預覽功能,本文所述的技術受限於 Microsoft Azure 預覽版增補使用規定

版本資訊 - 透過 Azure Arc 啟用的 SQL Server 中提供最新的更新。

備份檔案會儲存在 SQL 執行個體的預設備份位置。

您可以透過 Azure 入口網站或 az CLI 啟用自動備份。

若要啟用自動備份,請將保留天數設定為一個非零值。

支援的授權類型

自動備份僅適用於軟體保證、SQL 訂用帳戶,或隨用隨付授權。 如需詳細資料,請參閱根據授權類型提供的功能

備份頻率和保留天數

您可以為自動備份設定兩個屬性:

  • 保留天數 - 保留備份檔案的天數。 使用 1 到 35 之間的數字。 如果備份保留天數設定為 0,則即使保留備份策略,系統也會停用自動備份並且不會進行任何備份。
  • 備份排程 - 應該執行完整、差異和交易記錄備份的排程。 取決於備份類型:
    • 完整備份:每日或每周
    • 差異備份:每 12 或 24 小時一次
    • 交易記錄備份:以 5 分鐘為增量。

您也可以依預設排程執行備份:

  • 保留期間:7 天
  • 完整備份:每 7 天
  • 差異備份:每 24 小時
  • 交易記錄備份:每 5 分鐘

備份排程層級

您可以在以下位置排程備份:

如果同時設定資料庫和執行個體層級備份排程,則資料庫層級排程優先於執行個體層級備份排程。 如果您刪除資料庫層級備份排程,則會套用執行個體層級備份排程。

指派權限

已啟用 Arc 的 SQL Server 的 Azure 延伸模組內的備份服務會使用 [NT AUTHORITY\SYSTEM] 帳戶來執行備份。 如果您要以最低權限操作 Arc 啟用的 SQL Server,則本機 Windows 帳戶 [NT Service\SQLServerExtension] 將執行備份。

注意

如果 Azure 延伸項目是版本 1.1.2594.118 (2024 年 2 月版本) 或更新的版本,則最低權限模式將會在未來幾個月自動啟用。

如果您使用適用於 SQL Server 1.1.2504.99 版或更新版本的 Azure 延伸模組,則系統會自動授與 [NT AUTHORITY\SYSTEM] 必要權限。 您不需要手動指派權限。

僅適用於先前的延伸模組,請遵循下列步驟,將權限指派給 [NT AUTHORITY\SYSTEM] 帳戶。

注意

此需求適用於預覽版。

  1. [NT AUTHORITY\SYSTEM] 帳戶新增至 [登入],並使它成為伺服器層級 dbcreator 伺服器角色的成員。 執行下列 Transact-SQL 來新增此帳戶:

    USE master;
    GO
    CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS WITH DEFAULT_DATABASE = [master];
    GO
    ALTER SERVER ROLE [dbcreator] ADD MEMBER [NT AUTHORITY\SYSTEM];
    GO
    
  2. [NT AUTHORITY\SYSTEM] 帳戶新增至 [使用者],並使其成為 mastermodelmsdb 和每個使用者資料庫中 db_backupoperator 角色的成員。

    例如:

    CREATE USER [NT AUTHORITY\SYSTEM] FOR LOGIN [NT AUTHORITY\SYSTEM];
    GO
    ALTER ROLE [db_backupoperator] ADD MEMBER [NT AUTHORITY\SYSTEM];
    GO
    
  3. 針對每個使用者和系統資料庫執行上述程式碼 (但 tempdb 除外)。

設定自動備份

預設會停用自動備份。

指派權限之後,可以排程自動備份。 設定自動備份之後,Arc SQL 延伸模組將啟動備份到預設備份位置。

備份是原生 SQL Server 備份,因此所有備份歷程記錄都可以在 msdb 資料庫中的備份相關資料表中找到。

執行個體層級

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

  1. 停用任何現有的外部備份例程。
  2. 瀏覽至您想要啟用自動備份的 SQL Server。
  3. 選取 [備份]
  4. 選取 [設定原則]
  5. 在 [設定原則] 底下:
    • 設定備份保留天數的值 - 介於 1 和 35 之間。
    • 設定完整、差異和交易記錄備份的排程。
  6. 選取 [套用] 以啟用此設定。

依商務需求設定保留期間和頻率。 保留原則應大於完整備份頻率。 作為安全措施,自動備份過程始終保留至少一個完整備份頻率加上保留天數的備份集。

資料庫層級

若要在入口網站設定個別自訂資料庫層級備份:

  1. 選取執行個體
  2. 選取資料庫
  3. 在左側的 [資料管理] 底下
  4. 選取 [備份 (預覽版) - 設定資料庫備份原則 (預覽版)]
  5. 選取 [設定原則]
  6. 在 [設定原則] 底下:
    • 設定備份保留天數的值 - 介於 1 和 35 之間。
    • 設定完整、差異和交易記錄備份的排程。
  7. 選取 [套用] 以啟用此設定。

依商務需求設定保留期間和頻率。 保留原則應大於完整備份頻率。 作為安全措施,自動備份過程始終保留至少一個完整備份頻率加上保留天數的備份集。

停用自動備份

如果備份保留天數設定為 0,則即使保留備份策略,系統也會停用自動備份並且不會進行任何備份。 將備份保留天數設定為非零值會再次啟用原則。

此設定同時適用於資料庫和執行個體層級的備份。 如果資料庫層級備份排程停用,即使已排程執行個體層級備份,也不會針對資料庫進行備份。

刪除自動備份

在個別資料庫層級備份排程頁面的入口網站中,選取 [將備份原則還原為執行個體層級],以刪除資料庫層級備份原則。

若要刪除執行個體層級備份排程,您可以透過 CLI 來執行此作業。 刪除之後,執行個體層級或資料庫層級不會進行備份。 必須設定新的備份排程,才能再次進行備份。

刪除執行個體層級原則

az sql server-arc backups-policy delete --name <arc-server-name> --resource-group <resourcegroup> 

範例:

az sql server-arc backups-policy delete --name MyArcServer_SQLServerPROD --resource-group MyResourceGroup  

刪除資料庫層級原則

az sql db-arc backups-policy delete --name <sql-database-name> --server <arc-server-name> --resource-group <resourcegroup> 

範例:

az sql db-arc backups-policy delete --name MyDatabaseName --server MyArcServer_SQLServerPROD --resource-group MyResourceGroup 

檢視目前的備份原則

若要檢視 SQL Server 目前的備份原則,請執行下列命令:

az sql server-arc backups-policy show --name <arc-server-name> --resource-group <resourcegroup>

範例:

az sql server-arc backups-policy show --name MyArcServer_SQLServerPROD --resource-group MyResourceGroup

輸出:

{
  "differentialBackupHours": 24,
  "fullBackupDays": 7,
  "instanceName": "MSSQLSERVER01",
  "retentionPeriodDays": 16,
  "transactionLogBackupMinutes": 5
}

備份系統資料庫

在透過 Azure Arc 啟用的 SQL Server 執行個體上啟用內建自動備份時,系統資料庫也會備份到預設備份位置。 系統資料庫只會執行完整備份。

考量

  • 備份檔案儲存在 SQL Server 執行個體層級設定的預設備份位置。

  • 若要尋找 SQL Server 執行個體的預設備份位置 (在 SQL Server 2019 (15.x) 和更新版本上),請執行:

    SELECT SERVERPROPERTY('InstanceDefaultBackupPath');
    
  • 對於低於 2019 的 SQL Server 版本,預設備份路徑會儲存在登錄設定中。 使用擴充預存程序 xp_instance_regwrite 或從 SQL Server Management Studio (SSMS) 進行此設定。 要使用 SSMS:

    1. 從 SSMS 連線至已啟用 Arc 的 SQL Server。
    2. 移至 [伺服器屬性]> [資料庫設定]> [Database 預設位置]
  • 在執行個體層級設定的備份原則適用於執行個體上的所有資料庫。

  • 如果同時設定資料庫和執行個體層級備份排程,則資料庫層級優先於執行個體層級備份排程。 刪除資料庫層級備份排程會還原回執行個體層級備份排程 (如果有)。

  • --name 的值應該是透過 Azure Arc 啟用的 SQL Server 名稱,其格式通常為 [Servername_SQLservername]

  • --retention-days 的值為 0-35。

  • --retention-days0 值表示不執行執行個體或資料庫的自動備份。

  • 如果在安裝 SQL Server 的 Azure 延伸模組所在的相同主機上有多個 SQL Server 執行個體,需要針對每個執行個體單獨設定自動備份。

  • 如果您在已設定 --backups-policy 之後變更 --retention-days,則任何變更都會繼續生效,而且不會追溯套用。

限制

  • 使用者資料庫需要處於完整復原模式,才能執行備份。 未處於完整復原模式的資料庫不會自動備份。
  • Always On 容錯移轉叢集執行個體 (FCI) 目前不支援自動備份。
  • 載入可用性群組 (AG) 複本的任何執行個體不支援自動備份。
  • 自動備份僅適用於軟體保證、SQL 訂用帳戶,或隨用隨付授權。 如需詳細資料,請參閱根據授權類型提供的功能