Azure への SQL Server マネージド バックアップを有効にする

適用対象:SQL Server

このトピックでは、データベース レベルとインスタンス レベルの両方で、デフォルトの設定を使用して Microsoft Azure への SQL Server マネージド バックアップを有効にする方法について説明します。 また、電子メール通知を有効にする方法と、バックアップ処理を監視する方法についても説明します。

このチュートリアルでは、Azure PowerShell を使用します。 チュートリアルを開始する前に、 Azure PowerShell をダウンロードしてインストールします

重要

詳細オプションを有効にする場合やカスタム スケジュールを使用する場合は、その設定を構成してから Microsoft Azure への SQL Server マネージド バックアップを有効にします。 詳細については、「Microsoft Azure への SQL Server マネージド バックアップの詳細設定オプションの構成」を参照してください。

Azure Blob Storage コンテナーを作成する

このプロセスには、Azure アカウントが必要です。 既にアカウントがある場合は、次の手順に進みます。 ない場合は、 無料評価版 から始めるか、 購入オプションを調べることができます。

ストレージ アカウントの詳細については、「 Azure ストレージ アカウントについて」を参照してください。

  1. Azure アカウントにサインインします。

    az login
    
  2. Azure Storage アカウントを作成します。 既にストレージ アカウントがある場合は、次の手順に進みます。 次のコマンドを実行すると、米国東部リージョンに <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. コンテナーにアクセスするために Shared Access Signature (SAS) を生成します。 次のコマンドを実行すると、1 年後に期限切れになる SAS トークンが <backupContainer> BLOB コンテナーに作成されます。

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

Note

以上の手順は Azure portal でも行うことができます。

出力には、コンテナーの URL と SAS トークンの両方または一方が含まれます。 以下に例を示します。

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 トークンから区切ります (疑問符は含めないでください)。 たとえば、前の出力結果は、次の 2 つの値になります。

Type 出力
コンテナー 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

SQL 資格情報の作成に使用するコンテナーの URL と SAS を記録します。 SAS の詳細については、「 Shared Access Signature、第 1 部: SAS モデルについて」を参照してください。

Azure へのマネージド バックアップを有効にする

  1. SAS URL の SQL 資格情報を作成する : SAS トークンを使用して、BLOB コンテナーの URL の SQL 資格情報を作成します。 SQL Server Management Studio で、次の Transact-SQL クエリを使用して、次の例に基づいて BLOB コンテナーの資格情報を作成します。

    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 エージェント サービスが開始され、実行されていることを確認する: SQL Server エージェントを開始します (現在実行されていない場合)。 Microsoft Azure への SQL Server マネージド バックアップでバックアップ操作を実行するには、インスタンスで SQL Server エージェントが実行されている必要があります。 バックアップ操作を定期的に実行できるように、SQL Server エージェントの自動的な実行を設定できます。

  3. 保有期間を決定する: バックアップ ファイルに必要な保有期間を決定します。 保有期間は日数で指定し、その範囲は 1 ~ 30 になります。

  4. Microsoft Azure への SQL Server マネージド バックアップの有効化と構成を行う: SQL Server Management Studio を起動し、ターゲット SQL Server インスタンスに接続します。 要件に合わせて、データベース名、コンテナーの URL、および保有期間の値を変更した後、クエリ ウィンドウから次のステートメントを実行します。

    重要

    インスタンス レベルで管理対象バックアップを有効にするには、database_name パラメーターに NULL を指定します。

    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  
    

    これで、Microsoft Azure への SQL Server マネージド バックアップが、指定したデータベースで有効になります。 データベースでのバックアップ操作の実行が開始されるまで最大 15 分かかる場合があります。

  5. 拡張イベントの既定の構成を確認する: 次の Transact-SQL ステートメントを実行して、拡張イベントの設定を確認します。

    SELECT * FROM msdb.managed_backup.fn_get_current_xevent_settings()  
    

    管理、運用、および分析のチャネル イベントは既定で有効になっていて、無効にできないことに注意してください。 手動の介入を必要とするイベントを監視するには、これで十分です。 デバッグ イベントを有効にすることはできますが、デバッグ チャネルには、Microsoft Azure への SQL Server マネージド バックアップによる問題の検出および解決で使用される情報イベントとデバッグ イベントが含まれています。

  6. 正常性状態の通知の有効化と構成を行う: Microsoft Azure への SQL Server マネージド バックアップには、注意が必要なエラーまたは警告の電子メール通知を送信するエージェント ジョブを作成するストアド プロシージャがあります。 次の手順では、電子メール通知を有効にして構成するためのプロセスを示します。

    1. データベース メールがインスタンス上でまだ有効になっていない場合は設定します。 詳細については、「 Configure Database Mail」を参照してください。

    2. データベース メールを使用するように SQL Server エージェント通知を構成します。 詳細については、「 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 portal から、ストレージ アカウントに接続します。 指定したコンテナー内のすべてのバックアップが表示されます。 データベースに対して Microsoft Azure への SQL Server マネージド バックアップを有効にしてから 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;  
    

このセクションで説明した手順は、Microsoft Azure への SQL Server マネージド バックアップを初めてデータベース上に構成するユーザー向けです。 同じシステム ストアド プロシージャを使用して既存の構成を変更し、新しい値を指定することができます。

関連項目

Azure への SQL Server マネージド バックアップ