共用方式為


SQL Server Managed Backup 到 Azure - 保留和儲存體設定

本主題描述針對資料庫設定SQL Server受控備份至 Microsoft Azure,以及設定實例的預設設定的基本步驟。 本主題也說明暫停和繼續SQL Server實例的 Microsoft Azure 服務受控備份所需的步驟。

如需設定SQL Server受控備份至 Microsoft Azure 的完整逐步解說,請參閱設定SQL Server受控備份至 Azure設定可用性群組SQL Server受控備份至 Azure

開始之前

限制事項

必要條件

  • SQL Server Agent 應在執行中。

    警告

    如果 SQL Server Agent 已停止一段時間然後重新啟動,您可能會看見備份活動增加 (視 SQL Agent 停止和啟動之間經過的時間長度而定),而且可能會有記錄備份積存等待執行。 請考慮將 SQL Server Agent 設定為啟動時自動啟動。

  • 應該先建立 Azure 儲存體帳戶和 SQL 認證,將驗證資訊儲存至儲存體帳戶,再設定SQL Server受控備份至 Microsoft Azure。 如需詳細資訊,請參閱 SQL Server 備份至 URL 主題中的 Introduction to Key Components and Concepts 一節,以及 Lesson 2: Create a SQL Server Credential

    重要

    SQL Server Microsoft Azure 的受控備份會建立儲存備份的必要容器。 容器名稱是使用 'machine name-instance name' 格式建立的。 AlwaysOn 可用性群組的容器會以可用性群組的 GUID 命名。

安全性

權限

若要執行啟用SQL Server受控備份至 Microsoft Azure 的預存程式,您必須是 System Administratordb_backupoperator資料庫角色中具有ALTER ANY CREDENTIAL許可權的 或 成員,以及 EXECUTEsp_delete_backuphistorysmart_admin.sp_backup_master_switch 預存程式的許可權。 用於檢閱現有設定的預存程序及函式,通常需要具備預存程序的 Execute 權限及函式的 Select

針對資料庫和實例啟用SQL Server受控備份至 Microsoft Azure 的考慮

SQL Server個別資料庫或整個實例可以針對個別資料庫啟用受控備份至 Microsoft Azure。 這些選擇取決於實例上資料庫的復原能力需求、管理多個資料庫和實例的需求,以及策略性地使用 Azure 儲存體。

在資料庫層級啟用SQL Server受控備份至 Microsoft Azure

如果資料庫具有備份和保留期間的特定需求, (復原性 SLA) 與實例上的其他資料庫不同,請在此資料庫的資料庫層級設定SQL Server受控備份至 Microsoft Azure。 資料庫層級設定會覆寫執行個體層級的組態設定。 但相同的執行個體可以並用這兩個選項。 以下是在資料庫層級啟用 Microsoft Azure SQL Server受控備份時的優點和考慮清單。

  • 更為精細:分隔每個資料庫的組態設定。 可以針對不同的資料庫支援不同的保留週期。

  • 覆寫資料庫的執行個體層級設定。

  • 透過選取要備份的個別資料庫,可用來降低儲存成本。

  • 需要管理每個資料庫

使用預設設定在實例層級啟用SQL Server受控備份至 Microsoft Azure

如果大部分執行個體上的資料庫都有相同的備份和保留原則需求,或者如果您想要新的資料庫執行個體在建立時自動備份,請使用此設定。 一些未套用原則的資料庫仍可個別加以設定。 以下是在實例層級啟用 Microsoft Azure SQL Server受控備份時的優點和考慮清單。

  • 在執行個體層級的自動化:常見的設定會自動套用於之後加入的新資料庫。

  • 新資料庫於執行個體上建立後,它們很快就會自動備份

  • 可以套用至具有相同保留週期需求的資料庫。

  • 您仍然可以設定需要不同保留期間的個別資料庫,即使在實例層級啟用SQL Server受控備份至 Microsoft Azure 備份時,仍可使用預設設定。 如果您不打算使用 Azure 儲存體進行備份,您也可以針對資料庫停用SQL Server受控備份至 Microsoft Azure。

針對資料庫啟用和設定SQL Server受控備份至 Microsoft Azure

系統會使用系統預存程式 smart_admin.sp_set_db_backup ,針對特定資料庫啟用SQL Server受控備份至 Microsoft Azure。 第一次在資料庫上啟用SQL Server受控備份至 Microsoft Azure 時,除了啟用 Microsoft Azure SQL Server受控備份之外,還必須指定下列資訊:

  • 資料庫的名稱。

  • 保留週期。

  • 用來向 Azure 儲存體帳戶進行驗證的 SQL 認證。

  • 指定不要使用@encryption_algorithm = NO_ENCRYPTION加密,或指定支援的加密演算法。 如需加密的詳細資訊,請參閱< Backup Encryption>。

SQL Server只有 Transact-SQL 支援資料庫層級設定的 Microsoft Azure 受控備份。

一旦針對資料庫啟用SQL Server受控備份至 Microsoft Azure,這項資訊就會保存。 如果您要變更組態,只需要資料庫名稱和您想要變更的設定,SQL Server受控備份至 Microsoft Azure 時保留其他參數的現有值。

重要

在資料庫上設定SQL Server受控備份至 Microsoft Azure 之前,如果有的話,對現有組態可能很有用。 檢閱資料庫組態設定的步驟,於本節稍後說明。

  • 使用 Transact-SQL:

    如果您是第一次啟用SQL Server受控備份至 Microsoft Azure,則必要的參數為:@database_name、@credential_name@encryption_algorithm,@enable_backup @storage_url參數是選擇性參數。 如果您未提供 參數的值 @storage_url ,該值會使用 SQL 認證中的儲存體帳戶資訊來衍生。 如有提供儲存體 URL,應只提供儲存體帳戶根目錄的 URL,而且必須符合所指定之 SQL 認證中的資訊。

    1. 連線至資料庫引擎。

    2. 在標準列中,按一下 [新增查詢]

    3. 將下列範例複製並貼到查詢視窗中,然後按一下 Execute 。 此範例會針對資料庫 'TestDB' 啟用SQL Server受控備份至 Microsoft Azure。 保留週期設為 30 天。 此範例會指定加密演算法和加密程式資訊來使用加密選項。

    Use msdb;  
    GO  
    EXEC smart_admin.sp_set_db_backup   
                    @database_name='TestDB'   
                    ,@enable_backup=1  
                    ,@retention_days =30   
                    ,@credential_name ='MyCredential'  
                    ,@encryption_algorithm ='AES_256'  
                    ,@encryptor_type= 'Certificate'  
                    ,@encryptor_name='MyBackupCert'  
    GO
    

    重要

    保留週期可設為 1 到 30 天之間的任何值。

    如需有關建立憑證以進行加密的詳細資訊,請參閱< Create an Encrypted Backup>中的「建立備份憑證」步驟。

    如需此預存程式的詳細資訊,請參閱 smart_admin.set_db_backup (Transact-SQL)

    若要檢閱資料庫的組態設定,請使用下列查詢:

    Use msdb  
    GO  
    SELECT * FROM smart_admin.fn_backup_db_config('TestDB')  
    

啟用和設定實例的預設SQL Server受控備份至 Microsoft Azure 設定

您可以透過兩種方式,在實例層級啟用和設定預設SQL Server受控備份至 Microsoft Azure 設定:使用系統預存程式 smart_admin.set_instance_backupSQL Server Management Studio。 這兩種方法說明如下:

smart_admin.set_instance_backup:。 為 @enable_backup 參數指定 1 ,可以啟用備份和設定預設組態。 套用在執行個體層級之後,這些預設設定值會套用至加入此執行個體的所有新資料庫。 第一次啟用SQL Server受控備份至 Microsoft Azure 時,除了在 實例上啟用對 Microsoft Azure 的SQL Server受控備份之外,還必須提供下列資訊:

  • 保留週期。

  • 用來向 Azure 儲存體帳戶進行驗證的 SQL 認證。

  • 加密選項。 指定不要使用@encryption_algorithm = NO_ENCRYPTION加密,或指定支援的加密演算法。 如需加密的詳細資訊,請參閱< Backup Encryption>。

啟用之後,這些設定會保存。 如果要變更組態,只需要資料庫名稱和您要變更的設定。 SQL Server未指定時,Microsoft Azure 的受控備份會保留現有的值。

重要

在實例上設定SQL Server受控備份至 Microsoft Azure 之前,如果有的話,檢查現有的組態可能很有用。 檢閱資料庫組態設定的步驟,於本節稍後說明。

SQL Server Management Studio :若要在 SQL Server Management Studio 中執行這項工作,請移至 [物件總管],再展開 [管理] 節點,並以滑鼠右鍵按一下 [Managed Backup]。 選取 [設定] 。 這樣會開啟 [Managed Backup] 對話方塊。 使用此對話方塊可指定保留週期、SQL 認證、儲存體 URL 和加密設定。 如需此對話方塊的特定說明,請參閱設定受控備份 (SQL Server Management Studio)

使用 TRANSACT-SQL

  1. 連線至資料庫引擎。

  2. 在標準列中,按一下 [新增查詢]

  3. 將下列範例複製並貼到查詢視窗中,然後按一下 Execute

Use msdb;  
Go  
   EXEC smart_admin.sp_set_instance_backup  
                @retention_days=30   
                ,@credential_name='sqlbackuptoURL'  
                ,@encryption_algorithm ='AES_128'  
                ,@encryptor_type= 'Certificate'  
                ,@encryptor_name='MyBackupCert'  
                ,@enable_backup=1;  
GO  
  

重要

保留週期可設為 1 到 30 天之間的任何值。

如需有關建立憑證以進行加密的詳細資訊,請參閱< Create an Encrypted Backup>中的「建立備份憑證」步驟。

若要檢視執行個體的預設組態設定,請使用下列查詢:

Use msdb;  
GO  
SELECT * FROM smart_admin.fn_backup_instance_config ();

使用 PowerShell

  1. 啟動 PowerShell 執行個體

  2. 修改到符合您的設定後,執行下列指令碼。

    cd SQLSERVER:\SQL\Computer\MyInstance
    $encryptionOption = New-SqlBackupEncryptionOption -EncryptionAlgorithm Aes128 -EncryptorType ServerCertificate -EncryptorName "MyBackupCert"  
    Get-SqlSmartAdmin | Set-SqlSmartAdmin -BackupEnabled $True -BackupRetentionPeriodInDays 10 -EncryptionOption $encryptionOption  
    

重要

當您進行預設設定後,建立新的資料庫時,可能需要花費 15 分鐘對資料庫進行預設設定。 這也適用於從 Simple 變更至 FullBulk-Logged 復原模式的資料庫。

針對資料庫停用SQL Server受控備份至 Microsoft Azure

您可以使用系統預存程式停用SQL Server受控備份至 Microsoft Azure sp_set_db_backup 設定。 @enableparameter可用來啟用和停用特定資料庫的SQL Server受控備份至 Microsoft Azure 組態,其中 1 啟用和 0 會停用組態設定。

若要針對特定資料庫停用 SQL Server 受控備份至 Microsoft Azure:

  1. 連線至資料庫引擎。

  2. 在標準列中,按一下 [新增查詢]

  3. 將下列範例複製並貼到查詢視窗中,然後按一下 Execute

Use msdb;  
Go  
EXEC smart_admin.sp_set_db_backup   
                @database_name='TestDB'   
                ,@enable_backup=0;  
GO

針對實例上的所有資料庫停用SQL Server受控備份至 Microsoft Azure

下列程序適用情況:針對在執行個體上啟用 SQL Server 受控備份至 Microsoft Azure 的所有資料庫,您想停用其 SQL Server 受控備份至 Microsoft Azure 的組態設定。 組態設定 (例如儲存體 URL、資料保留與 SQL 認證) 都會保留在中繼資料中,如果稍後啟用資料庫 SQL Server 受控備份至 Microsoft Azure 即可使用。 如果您想要暫時暫停SQL Server受控備份至 Microsoft Azure 服務,您可以使用本主題稍後的下列各節中所述的主要參數。

若要針對所有資料庫停用SQL Server受控備份至 Microsoft Azure:

  1. 連線至資料庫引擎。

  2. 在標準列中,按一下 [新增查詢]

  3. 將下列範例複製並貼到查詢視窗中,然後按一下 Execute 。 下列範例會識別實例層級是否已設定SQL Server受控備份至 Microsoft Azure,以及實例上所有SQL Server受控備份至已啟用 Microsoft Azure 的資料庫,並執行系統預存程式 sp_set_db_backup 來停用SQL Server受控備份至 Microsoft Azure。

-- Create a working table to store the database names  
Declare @DBNames TABLE  
  
       (  
             RowID int IDENTITY PRIMARY KEY  
             ,DBName varchar(500)  
  
       )  
-- Define the variables  
DECLARE @rowid int  
DECLARE @dbname varchar(500)  
DECLARE @SQL varchar(2000)  
-- Get the database names from the system function  
  
INSERT INTO @DBNames (DBName)  
  
SELECT db_name  
       FROM
  
       smart_admin.fn_backup_db_config (NULL)  
       WHERE is_smart_backup_enabled = 1  
  
       --Select DBName from @DBNames 
       select @rowid = min(RowID) FROM @DBNames  
  
       WHILE @rowID IS NOT NULL  
       Begin
             Set @dbname = (Select DBName From @DBNames Where RowID = @rowid)  
             Begin  
             Set @SQL = 'EXEC smart_admin.sp_set_db_backup    
                @database_name= '''+'' + @dbname+ ''+''',   
                @enable_backup=0'  
  
            EXECUTE (@SQL)  
  
             END  
             Select @rowid = min(RowID)  
             From @DBNames Where RowID > @rowid  
  
       END

若要檢閱執行個體上所有資料庫的組態設定,請使用下列查詢:

Use msdb;  
GO  
SELECT * FROM smart_admin.fn_backup_db_config (NULL);  
GO

停用實例的預設SQL Server受控備份至 Microsoft Azure 設定

執行個體層級的預設設定會套用到建立在該執行個體上的所有新資料庫。 如果您不再需要或要求預設設定,可以使用 smart_admin.sp_set_instance_backup 系統預存程序以停用此組態。 停用不會移除其他組態設定,像是儲存體 URL、保留設定或 SQL 認證名稱。 如果稍後執行個體啟用 SQL Server 受控備份至 Microsoft Azure,就會使用這些設定。

若要停用 SQL Server 受控備份至 Microsoft Azure 預設組態設定:

  1. 連線至資料庫引擎。

  2. 在標準列中,按一下 [新增查詢]

  3. 將下列範例複製並貼到查詢視窗中,然後按一下 Execute

    Use msdb;  
    Go  
    EXEC smart_admin.sp_set_instance_backup  
                    @enable_backup=0;  
    GO
    

使用 PowerShell

  1. 啟動 PowerShell 執行個體

  2. 執行下列指令碼:

    cd SQLSERVER:\SQL\Computer\MyInstance
    Set-SqlSmartAdmin -BackupEnabled $False  
    

在實例層級暫停SQL Server受控備份至 Microsoft Azure

有時,您可能會需要暫停 SQL Server 受控備份至 Microsoft Azure 服務一段時間。 系統 smart_admin.sp_backup_master_switch 預存程式可讓您在實例層級停用SQL Server受控備份至 Microsoft Azure 服務。 可利用相同預存程序來繼續進行 SQL Server 受控備份至 Microsoft Azure。 參數 @state 可用來定義是否應該關閉或開啟SQL Server受控備份至 Microsoft Azure。

若要利用 Transact-SQL 來暫停 SQL Server 受控備份至 Microsoft Azure 服務:

  1. 連線至資料庫引擎。

  2. 在標準列中,按一下 [新增查詢]

  3. 將下列範例複製並貼到查詢視窗中,然後按一下 Execute

Use msdb;  
GO  
EXEC smart_admin.sp_backup_master_switch @new_state=0;  
Go  
  

使用 PowerShell 暫停SQL Server受控備份至 Microsoft Azure

  1. 啟動 PowerShell 執行個體

  2. 修改到符合您的設定後,執行下列指令碼。

    cd SQLSERVER:\SQL\Computer\MyInstance
    Get-SqlSmartAdmin | Set-SqlSmartAdmin -MasterSwitch $False  
    

若要利用 Transact-SQL 來繼續 SQL Server 受控備份至 Microsoft Azure

  1. 連線至資料庫引擎。

  2. 在標準列中,按一下 [新增查詢]

  3. 將下列範例複製並貼到查詢視窗中,然後按一下 Execute

Use msdb;  
Go  
EXEC smart_admin. sp_backup_master_switch @new_state=1;  
GO

使用 PowerShell 繼續SQL Server受控備份至 Microsoft Azure

  1. 啟動 PowerShell 執行個體

  2. 修改到符合您的設定後,執行下列指令碼。

    cd SQLSERVER:\SQL\Computer\MyInstance
    Get-SqlSmartAdmin | Set-SqlSmartAdmin -MasterSwitch $True