啟用 SQL Server 到 Azure 的受控備份

適用于:SQL Server

本主題描述如何使用資料庫和實例層級的預設設定,啟用SQL Server受控備份至 Microsoft Azure。 它也會說明啟用電子郵件通知以及監視備份活動的方式。

本教學課程使用 Azure PowerShell。 開始本教學課程之前,請 下載並安裝 Azure PowerShell

重要

如果您也想要啟用進階選項或使用自訂排程,請先設定這些設定,再啟用SQL Server受控備份至 Microsoft Azure。 如需詳細資訊,請參閱設定到 Microsoft Azure 的 SQL Server 受管理備份進階選項

建立Azure Blob 儲存體容器

此程序需要 Azure 帳戶。 如果您已經有帳戶,請移至下一個步驟。 否則,您可以開始使用 免費試用版 或瀏覽 購買選項

如需儲存體帳戶的詳細資訊,請參閱 關於 Azure 儲存體帳戶

  1. 登入您的 Azure 帳戶。

    az login
    
  2. 建立 Azure 儲存體帳戶。 如果您已經有儲存體帳戶,請移至下一個步驟。 下列命令會在美國東部區域建立名為 <backupStorage> 的儲存體帳戶。

    az storage account create -n <backupStorage> -l "eastus" --resource-group <resourceGroup>
    
  3. 建立名為 <backupContainer> 的 Blob 容器以用於備份檔案。

    $keys = az storage account keys list --account-name <backupStorage> --resource-group <resourceGroup> | ConvertFrom-Json
    az storage container create --name <backupContainer> --account-name <backupStorage> --account-key $keys[0].value 
    
  4. 產生共用存取簽章 (SAS) 以存取容器。 下列命令可為將於一年內過期的 <backupContainer> Blob 容器建立 SAS 權杖。

    az storage container generate-sas --name <backupContainer> --account-name <backupStorage> --account-key $keys[0].value
    

注意

您也可以使用 Azure 入口網站來完成這些步驟。

輸出將包含容器和/或 SAS 權杖的 URL。 以下是一個範例:

https://managedbackupstorage.blob.core.windows.net/backupcontainer?sv=2014-02-14&sr=c&sig=xM2LXVo1Erqp7LxQ%9BxqK9QC6%5Qabcd%9LKjHGnnmQWEsDf%5Q%se=2015-05-14T14%3B93%4V20X&sp=rwdl

如果其中包含 URL,請使用問號將其和 SAS 權杖分隔 (不包含問號)。 例如,上述輸出會產生下列這兩個值。

類型 輸出
容器 URL https://managedbackupstorage.blob.core.windows.net/backupcontainer
SAS 權杖 sv=2014-02-14 & sr=c & sig=xM2LXVo1Erqp7LxQ%9BxqK9QC6%5Qabcd%9LKjHGnnmQWEsDf%5Q%se=2015-05-14T14%3B93%4V20X & sp=rwdl

記下容器 URL 和 SAS,以便在建立 SQL 認證時使用。 如需關於 SAS 的詳細資訊,請參閱共用存取簽章,第 1 部分:了解 SAS 模型

啟用到 Azure 的受控備份

  1. 建立適用於 SAS URL 的 SQL 認證: 使用 SAS 權杖來建立適用於 Blob 容器 URL 的 SQL 認證。 在 SQL Server Management Studio 中,使用下列 TRANSACT-SQL 查詢,根據下列範例來建立適用於 Blob 容器 URL 的認證:

    CREATE CREDENTIAL [https://managedbackupstorage.blob.core.windows.net/backupcontainer]   
    WITH IDENTITY = 'Shared Access Signature',  
    SECRET = 'sv=2014-02-14&sr=c&sig=xM2LXVo1Erqp7LxQ%9BxqK9QC6%5Qabcd%9LKjHGnnmQWEsDf%5Q%se=2015-05-14T14%3B93%4V20X&sp=rwdl'  
    
  2. 確認 SQL Server Agent 服務已啟動且在執行中: 如果目前尚未執行 SQL Server Agent,請加以啟動。 SQL Server 受控備份至 Microsoft Azure 需要在執行個體上執行 SQL Server Agent,才能執行備份作業。 您可能需要將 SQL Server Agent 設定為自動執行,以確保備份作業定期執行。

  3. 決定保留期限: 決定備份檔案的保留期限。 保留週期的指定單位為天,範圍從 1 到 30。

  4. 啟用並設定SQL Server受控備份至 Microsoft Azure:啟動SQL Server Management Studio並聯機到目標SQL Server實例。 在您根據每個需求修改資料庫名稱、容器 URL及保留週期的值之後,從查詢視窗中執行下列陳述式:

    重要

    若要在執行個體層級啟用受管理的備份,請針對 NULL 參數指定 database_name

    USE msdb;  
    GO  
    EXEC msdb.managed_backup.sp_backup_config_basic   
     @enable_backup = 1,   
     @database_name = 'yourdatabasename',  
     @container_url = 'https://managedbackupstorage.blob.core.windows.net/backupcontainer',   
     @retention_days = 30  
    GO  
    

    SQL Server受控備份至 Microsoft Azure 現在會在您指定的資料庫上啟用。 資料庫上的備份作業可能需要 15 分鐘才會開始執行。

  5. 檢閱延伸事件預設設定: 執行下列 Transact-SQL 陳述式,以檢閱擴充事件設定。

    SELECT * FROM msdb.managed_backup.fn_get_current_xevent_settings()  
    

    預設會顯示已經啟用 Admin、Operational 和 Analytical 通道事件,且無法予以停用。 這應該足以監視需要手動介入的事件。 您可以啟用偵錯事件,但偵錯通道包含參考和偵錯事件,SQL Server Microsoft Azure 的受控備份用來偵測問題並加以解決。

  6. 啟用和設定健全狀況狀態的通知:SQL Server受控備份至 Microsoft Azure 的預存程式會建立代理程式作業,以傳送可能需要注意之錯誤或警告的電子郵件通知。 下列步驟描述啟用及設定電子郵件通知的程序:

    1. 如果執行個體上尚未啟用,請設定 Database Mail。 如需詳細資訊,請參閱< Configure Database Mail>。

    2. 設定 SQL Server Agent 通知使用 Database Mail。 如需詳細資訊,請參閱 Configure SQL Server Agent Mail to Use Database Mail

    3. 啟用電子郵件通知接收備份錯誤和警告: 從 [查詢] 視窗中,執行下列 Transact-SQL 陳述式:

      EXEC msdb.managed_backup.sp_set_parameter  
      @parameter_name = 'SSMBackup2WANotificationEmailIds',  
      @parameter_value = '<email1;email2>'  
      
  7. 檢視 Azure 儲存體帳戶中的備份檔案: 從 SQL Server Management Studio 或 Azure 入口網站連線到儲存體帳戶。 您將會看到指定容器中的所有備份檔案。 請注意,您可能會在啟用資料庫SQL Server受控備份至 Microsoft Azure 的 5 分鐘內看到資料庫和記錄備份。

  8. 監視健全狀況狀態: 您可以透過先前設定的電子郵件通知來監視,或主動監視記錄的事件。 以下是用於檢視事件的一些 Transact-SQL 陳述式範例:

    --  view all admin events  
    USE msdb;  
    GO  
    DECLARE @startofweek datetime  
    DECLARE @endofweek datetime  
    SET @startofweek = DATEADD(Day, 1-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP)   
    SET @endofweek = DATEADD(Day, 7-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP)  
    
    DECLARE @eventresult TABLE  
    (event_type nvarchar(512),  
    event nvarchar (512),  
    timestamp datetime  
    )  
    
    INSERT INTO @eventresult  
    
    EXEC managed_backup.sp_get_backup_diagnostics @begin_time = @startofweek, @end_time = @endofweek  
    
    SELECT * from @eventresult  
    WHERE event_type LIKE '%admin%'  
    
    -- to enable debug events  
    USE msdb;  
    GO  
    EXEC managed_backup.sp_set_parameter 'FileRetentionDebugXevent', 'True'  
    
    --  View all events in the current week  
    USE msdb;  
    GO  
    DECLARE @startofweek datetime  
    DECLARE @endofweek datetime  
    SET @startofweek = DATEADD(Day, 1-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP)   
    SET @endofweek = DATEADD(Day, 7-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP)  
    
    EXEC managed_backup.sp_get_backup_diagnostics @begin_time = @startofweek, @end_time = @endofweek;  
    

本節所述的步驟特別適用于第一次在資料庫上設定SQL Server受控備份至 Microsoft Azure。 您可以使用相同的系統預存程序來修改現有的組態並提供新值。

另請參閱

SQL Server 到 Azure 的受控備份