啟用 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 的受控備份