自動バックアップを管理する - Azure Arc によって有効化された SQL Server (プレビュー)

適用対象:SQL Server

SQL Server 用 Azure 拡張機能は、Azure Arc によって有効化された SQL Server インスタンスのシステム データベースとユーザー データベースのバックアップを自動的に実行できます。

この記事では、その方法について説明します。

  • これらのビルトイン自動バックアップを有効にする
  • バックアップ スケジュールの構成

Note

この記事で紹介しているテクノロジはプレビュー機能であり、「Microsoft Azure プレビューの追加利用規約」に従うことを条件として提供されます。

最新の更新プログラムについては、「リリース ノート - Azure Arc によって有効化された SQL Server」を参照してください。

バックアップ ファイルは、SQL インスタンスの既定のバックアップ場所に格納されます。

自動バックアップは、Azure portal または az CLI を使用して有効にすることができます。

自動バックアップを有効にするには、保持日数を 0 以外の値に設定します。

サポート対象ライセンスの種類

自動バックアップは、ソフトウェア アシュアランス、SQL サブスクリプション、または従量課金制のライセンスでのみ使用できます。 詳しくは、「ライセンスの種類に応じて利用できる機能」を参照してください。

バックアップの頻度とリテンション期間

自動バックアップには、次の 2 つのプロパティを構成できます。

  • 保持日数 - バックアップ ファイルを保持する日数。 1~35 の数を使用します。 バックアップ保持日が 0 に設定されている場合、自動バックアップは無効になり、バックアップ ポリシーが保持されていてもバックアップは作成されません。
  • バックアップ スケジュール - 完全バックアップ、差分バックアップ、トランザクション ログ バックアップを実行するスケジュール。 バックアップの種類によって異なります。
    • 完全バックアップ: 毎日または毎週
    • 差分バックアップ: 12 時間または 24 時間ごと
    • トランザクション ログ バックアップ: 5 分単位。

既定のスケジュールでバックアップを実行することもできます。

  • 保持期間: 7 日間
  • 完全バックアップ: 7 日ごと
  • 差分バックアップ: 24 時間ごと
  • トランザクション ログ バックアップ: 5 分ごと

バックアップ スケジュール レベル

バックアップのスケジュールは以下で行なえます

データベース レベルとインスタンス レベルの両方のバックアップ スケジュールが設定されている場合は、データベース レベルのスケジュールがインスタンス レベルのバックアップ スケジュールよりも優先されます。 データベース レベルのバックアップ スケジュールを削除すると、インスタンス レベルのバックアップ スケジュールが適用されます。

アクセス許可を割り当てる

Arc 対応 SQL サーバー用 Azure 拡張機能内のバックアップ サービスでは、[NT AUTHORITY\SYSTEM] アカウントを使ってバックアップが実行されます。 Arc で有効になっている SQL Server を最小限の権限で操作している場合、ローカル Windows アカウント [NT Service\SQLServerExtension] がバックアップを実行します。

Note

Azure 拡張機能がバージョン 1.1.2594.118 (2024 年 2 月リリース) 以降の場合、今後数か月以内に、最小特権モードが自動で有効になります。

SQL Server バージョン 1.1.2504.99 以降で Azure 拡張機能を使用する場合は、[NT AUTHORITY\SYSTEM] に必要なアクセス許可が自動的に付与されます。 アクセス許可を手動で割り当てる必要はありません。

以前の拡張機能の場合のみ、次の手順に従って [NT AUTHORITY\SYSTEM] アカウントにアクセス許可を割り当てます。

Note

この要件は、プレビュー リリースに適用されます。

  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] アカウントを、Users に追加し、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 portal で自動バックアップを有効にするには:

  1. 既存の外部バックアップ ルーチンを無効にします。
  2. 自動バックアップを有効にする SQL Server を参照します。
  3. [バックアップ] を選択します。
  4. [ポリシーの構成] を選択 します
  5. [ポリシーの構成] で、次の手順を実行します。
    • バックアップ保有日数 (1 ~ 35) の値を設定します。
    • 完全バックアップ、差分バックアップ、トランザクション ログ バックアップのスケジュールを設定します。
  6. [適用] を選択して、この構成を有効にします。

ビジネス要件を満たすように保持期間と頻度を設定します。 アイテム保持ポリシーは、完全バックアップの頻度を超える必要があります。 安全性の尺度として、自動バックアップ プロセスでは、少なくとも 1 つの完全バックアップ頻度と保持日数のバックアップ セットが常に保持されます。

データベース レベル

ポータルで個々のカスタム データベース レベルのバックアップを構成するには:

  1. インスタンスを選択する
  2. データベースを選択します
  3. 左側の [データ管理] から
  4. [バックアップ (プレビュー) - データベース バックアップ ポリシーの構成 (プレビュー)] を選択します
  5. [ポリシーの構成] を選択 します
  6. [ポリシーの構成] で、次の手順を実行します。
    • バックアップ保有日数 (1 ~ 35) の値を設定します。
    • 完全バックアップ、差分バックアップ、トランザクション ログ バックアップのスケジュールを設定します。
  7. [適用] を選択して、この構成を有効にします。

ビジネス要件を満たすように保持期間と頻度を設定します。 アイテム保持ポリシーは、完全バックアップの頻度を超える必要があります。 安全性の尺度として、自動バックアップ プロセスでは、少なくとも 1 つの完全バックアップ頻度と保持日数のバックアップ セットが常に保持されます。

自動バックアップを無効にする

バックアップ保持日が 0 に設定されている場合、自動バックアップは無効になり、バックアップ ポリシーが保持されていてもバックアップは作成されません。 バックアップ保持日数を 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. [サーバーのプロパティ]>[データベース設定]>[データベースの既定の場所] の順に移動します。
  • インスタンス レベルで構成されたバックアップ ポリシーは、インスタンス上のすべてのデータベースに適用されます。

  • データベース レベルとインスタンス レベルの両方のバックアップ スケジュールが設定されている場合は、データベース レベルがインスタンス レベルのスケジュールよりも優先されます。 データベース レベルのバックアップ スケジュールを削除すると、インスタンス レベルのバックアップ スケジュール (存在する場合) に戻ります。

  • --name の値には、Azure Arc によって有効化された SQL Server の名前を指定する必要があります。これは通常、[Servername_SQLservername] という形式です。

  • --retention-days の値には 0 から 35 を指定できます。

  • 0 という --retention-days の値は、インスタンスまたはデータベースの自動バックアップを実行しないことを示します。

  • SQL Server 用 Azure 拡張機能がインストールされている同じホストに複数の SQL Server インスタンスがある場合は、インスタンスごとに自動バックアップを個別に構成する必要があります。

  • --backups-policy を既に構成した後で --retention-days を変更した場合、その後の変更はすべて有効になり、さかのぼって適用されることはありません。

制限事項

  • バックアップを実行するには、ユーザー データベースが完全復旧モデルである必要があります。 完全復旧モデルでないデータベースは、自動的にバックアップされません。
  • 自動バックアップは現在、Always On フェールオーバー クラスター インスタンス (FCI) ではサポートされていません
  • 可用性グループ (AG) レプリカをホストするインスタンスでは、自動バックアップはサポートされていません。
  • 自動バックアップは、ソフトウェア アシュアランス、SQL サブスクリプション、または従量課金制のライセンスでのみ使用できます。 詳しくは、「ライセンスの種類に応じて利用できる機能」を参照してください。