Always On 可用性グループのセカンダリ レプリカのバックアップの構成Configure backups on secondary replicas of an Always On availability group

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

このトピックでは、 SQL Server Management StudioSQL Server Management StudioTransact-SQLTransact-SQLSQL Server 2017SQL Server 2017、または PowerShell を使用して、Always On 可用性グループのセカンダリ レプリカでバックアップを構成する方法について説明します。This topic describes how to configure backup on secondary replicas for an Always On availability group by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell in SQL Server 2017SQL Server 2017.

注意

セカンダリ レプリカのバックアップの概要については、「アクティブなセカンダリ:セカンダリ レプリカでのバックアップ (Always On 可用性グループ)」を参照してください。For an introduction to backup on secondary replicas, see Active Secondaries: Backup on Secondary Replicas (Always On Availability Groups).

前提条件Prerequisites

プライマリ レプリカをホストするサーバー インスタンスに接続されている必要があります。You must be connected to the server instance that hosts the primary replica.

PermissionsPermissions

タスクTask アクセス許可Permissions
可用性グループの作成時にセカンダリ レプリカでバックアップを構成するにはTo configure backup on secondary replicas when creating an availability group sysadmin 固定サーバー ロールのメンバーシップと、CREATE AVAILABILITY GROUP サーバー権限、ALTER ANY AVAILABILITY GROUP 権限、CONTROL SERVER 権限のいずれかが必要です。Requires membership in the sysadmin fixed server role and either CREATE AVAILABILITY GROUP server permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.
可用性グループまたは可用性レプリカを変更するにはTo modify an availability group or availability replica 可用性グループの ALTER AVAILABILITY GROUP 権限、CONTROL AVAILABILITY GROUP 権限、ALTER ANY AVAILABILITY GROUP 権限、または CONTROL SERVER 権限が必要です。Requires ALTER AVAILABILITY GROUP permission on the availability group, CONTROL AVAILABILITY GROUP permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.

SQL Server Management Studio の使用Using SQL Server Management Studio

セカンダリ レプリカでバックアップを構成するにはTo configure backup on secondary replicas

  1. オブジェクト エクスプローラーで、プライマリ レプリカをホストするサーバー インスタンスに接続し、サーバー名をクリックしてサーバー ツリーを展開します。In Object Explorer, connect to the server instance that hosts the primary replica, and click the server name to expand the server tree.

  2. [AlwaysOn 高可用性] ノードと [可用性グループ] ノードを展開します。Expand the Always On High Availability node and the Availability Groups node.

  3. バックアップ優先設定を構成する可用性グループをクリックし、 [プロパティ] をクリックします。Click the availability group whose backup preferences you want to configure, and select the Properties command.

  4. [可用性グループのプロパティ] ダイアログ ボックスで、 [バックアップの設定] ページをクリックします。In the Availability Group Properties dialog box, select Backup Preferences page.

  5. [バックアップを実行する場所] パネルで、可用性グループの自動バックアップ設定を選択します。次のいずれかを選択できます。On the Where should backups occur? panel, select the automated backup preference for the availability group, one of:

    [セカンダリを優先]Prefer Secondary
    オンラインのレプリカがプライマリ レプリカのみである場合を除き、セカンダリ レプリカでバックアップを実行することを指定します。Specifies that backups should occur on a secondary replica except when the primary replica is the only replica online. オンラインのレプリカがプライマリ レプリカのみである場合は、プライマリ レプリカでバックアップを実行する必要があります。In that case, the backup should occur on the primary replica. 既定のオプションです。This is the default option.

    [セカンダリのみ]Secondary only
    バックアップをプライマリ レプリカでは実行しないことを指定します。Specifies that backups should never be performed on the primary replica. オンラインのレプリカがプライマリ レプリカだけの場合、バックアップは実行されません。If the primary replica is the only replica online, the backup should not occur.

    プライマリPrimary
    バックアップを常にプライマリ レプリカで実行することを指定します。Specifies that the backups should always occur on the primary replica. このオプションは、差分バックアップの作成など、バックアップがセカンダリ レプリカで実行されたときにはサポートされないバックアップ機能が必要な場合に役に立ちます。This option is useful if you need backup features, such as creating differential backups, that are not supported when backup is run on a secondary replica.

    重要

    ログ配布を使用して可用性グループのセカンダリ データベースを準備する場合は、すべてのセカンダリ データベースの準備が完了し、それらを可用性グループに参加させるまで、自動バックアップ設定を [プライマリ] に設定します。If you plan to use log shipping to prepare any secondary databases for an availability group, set the automated backup preference to Primary until all the secondary databases have been prepared and joined to the availability group.

    [任意のレプリカ]Any Replica
    バックアップを実行するレプリカを選択するときにバックアップ ジョブが可用性レプリカのロールを無視するように指定します。Specifies that you prefer that backup jobs ignore the role of the availability replicas when choosing the replica to perform backups. バックアップ ジョブは、動作状態および接続状態と組み合わせて、各可用性レプリカのバックアップ優先順位などの他の要素を評価する場合があります。Note backup jobs might evaluate other factors such as backup priority of each availability replica in combination with its operational state and connected state.

    重要

    自動バックアップ設定の適用はありません。There is no enforcement of the automated backup preference setting. この優先設定の解釈は、特定の可用性グループのデータベースに対するバックアップ ジョブのスクリプトでのロジックに依存します (ロジックが存在する場合)。The interpretation of this preference depends on the logic, if any, that you script into backup jobs for the databases in a given availability group. 自動バックアップ設定はアドホック バックアップには影響しません。The automated backup preference setting has no impact on ad-hoc backups. 詳細については、このトピックで後述する「補足情報:セカンダリ レプリカでバックアップを構成した後」を参照してください。For more information, see Follow Up: After Configuring Backup on Secondary Replicas later in this topic.

  6. [レプリカのバックアップの優先順位] グリッドを使用して、可用性レプリカのバックアップの優先順位を変更します。Use the Replica backup priorities grid to change the backup priority of the availability replicas. このグリッドには、可用性グループのレプリカをホストする各サーバー インスタンスの現在のバックアップの優先順位が表示されます。This grid displays the current backup priority of each server instance that hosts a replica for the availability group. グリッドの列は次のとおりです。The grid columns are as follows:

    サーバー インスタンスServer Instance
    可用性レプリカをホストする SQL ServerSQL Server のインスタンスの名前。The name of the instance of SQL ServerSQL Server that hosts the availability replica.

    [バックアップ優先度 (最小 = 1、最高 = 100)]Backup Priority (Lowest=1, Highest=100)
    同じ可用性グループ内の他のレプリカと比較して、このレプリカでバックアップを実行する優先順位を指定します。Specifies your priority for performing backups on this replica relative to the other replicas in the same availability group. 値は 0 ~ 100 の範囲の整数です。The value is an integer in the range of 0..100. 1 は最も低い優先順位を示し、100 は最も高い優先順位を示します。1 indicates the lowest priority, and 100 indicates the highest priority. たとえば、 Backup Priority = 1 の場合、現在使用可能な可用性レプリカにそれより高い優先順位のものがない場合にのみ、その可用性レプリカがバックアップの実行に対して選択されます。If Backup Priority = 1, the availability replica would be chosen for performing backups only if no higher priority availability replicas are currently available.

    [レプリカの除外]Exclude Replica
    バックアップの実行時にこの可用性レプリカを選択しない場合に選択します。Select if you never want this availability replica to be chosen for performing backups. これは、たとえば、バックアップをフェールオーバーすることがないリモート可用性レプリカのような場合に便利です。This is useful, for example, for a remote availability replica to which you never want backups to fail over.

  7. 変更をコミットするには、 [OK] をクリックします。To commit your changes, click OK.

別の方法で [バックアップの設定] ページにアクセスするAlternative ways to access the Backup Preferences page

Transact-SQL の使用Using Transact-SQL

セカンダリ レプリカでバックアップを構成するにはTo configure backup on secondary replicas

  1. プライマリ レプリカをホストするサーバー インスタンスに接続します。Connect to the server instance that hosts the primary replica.

  2. 新しい可用性グループの場合は、CREATE AVAILABILITY GROUP(Transact-SQL) ステートメントを使用します。For a new availability group, use the CREATE AVAILABILITY GROUP (Transact-SQL) statement. 既存の可用性グループを変更する場合は、ALTER AVAILABILITY GROUP (Transact-SQL) ステートメントを使用します。If you are modifying an existing availability group, use the ALTER AVAILABILITY GROUP (Transact-SQL) statement.

PowerShell の使用Using PowerShell

セカンダリ レプリカでバックアップを構成するにはTo configure backup on secondary replicas

  1. 既定 (cd) を、プライマリ レプリカをホストするサーバー インスタンスに設定します。Set default (cd) to the server instance that hosts the primary replica.

  2. 必要に応じて、追加または変更する各可用性レプリカのバックアップの優先順位を構成します。Optionally, configure the backup priority of each availability replica that you are adding or modifying. この優先順位は、プライマリ レプリカをホストするサーバー インスタンスによって使用され、可用性グループ内のデータベースで自動バックアップ要求を処理するレプリカを決定します (優先順位の高いレプリカが選択されます)。This priority is used by the server instance that hosts the primary replica to decide which replica should service an automated backup request on a database in the availability group (the replica with highest priority is chosen). この優先順位には、0 ~ 100 の数値を指定できます。This priority can be any number between 0 and 100, inclusive. 優先順位が 0 の場合は、レプリカがバックアップ要求を処理する対象と見なされないことを示します。A priority of 0 indicates that the replica should not be considered as a candidate for servicing backup requests. 既定の設定は 50 です。The default setting is 50.

    可用性グループに可用性レプリカを追加する場合は、 New-SqlAvailabilityReplica コマンドレットを使用します。When adding an availability replica to an availability group, use the New-SqlAvailabilityReplica cmdlet. 既存の可用性レプリカを変更する場合は、 Set-SqlAvailabilityReplica コマンドレットを使用します。When modifying an existing availability replica, use the Set-SqlAvailabilityReplica cmdlet. どちらの場合も BackupPriorityn パラメーターを使用します。 n は 0 ~ 100 の値です。In either case, specify the BackupPriorityn parameter, where n is a value from 0 to 100.

    たとえば、次のコマンドは、可用性レプリカ MyReplica のバックアップの優先順位を 60に設定します。For example, the following command sets the backup priority of the availability replica MyReplica to 60.

    Set-SqlAvailabilityReplica -BackupPriority 60 `  
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\AvailabilityReplicas\MyReplica  
    
  3. 必要に応じて、作成または変更している可用性グループの自動バックアップ設定を構成します。Optionally, configure the automated backup preference for the availability group that you are creating or modifying. この優先設定は、バックアップを実行する場所を選択するときにバックアップ ジョブがプライマリ レプリカを評価する方法を指定します。This preference indicates how a backup job should evaluate the primary replica when choosing where to perform backups. 既定の設定では、セカンダリ レプリカが優先されます。The default setting is to prefer secondary replicas.

    可用性グループを作成する場合は、 New-SqlAvailabilityGroup コマンドレットを使用します。When creating an availability group, use the New-SqlAvailabilityGroup cmdlet. 既存の可用性グループを変更する場合は、 Set-SqlAvailabilityGroup コマンドレットを使用します。When modifying an existing availability group, use the Set-SqlAvailabilityGroup cmdlet. どちらの場合も AutomatedBackupPreference パラメーターを指定します。In either case, specify the AutomatedBackupPreference parameter.

    パラメーターの説明where,

    プライマリPrimary
    バックアップを常にプライマリ レプリカで実行することを指定します。Specifies that the backups should always occur on the primary replica. このオプションは、差分バックアップの作成など、バックアップがセカンダリ レプリカで実行されたときにはサポートされないバックアップ機能が必要な場合に役に立ちます。This option is useful if you need backup features, such as creating differential backups, that are not supported when backup is run on a secondary replica.

    重要

    ログ配布を使用して可用性グループのセカンダリ データベースを準備する場合は、すべてのセカンダリ データベースの準備が完了し、それらを可用性グループに参加させるまで、自動バックアップ設定を [プライマリ] に設定します。If you plan to use log shipping to prepare any secondary databases for an availability group, set the automated backup preference to Primary until all the secondary databases have been prepared and joined to the availability group.

    SecondaryOnlySecondaryOnly
    バックアップをプライマリ レプリカでは実行しないことを指定します。Specifies that backups should never be performed on the primary replica. オンラインのレプリカがプライマリ レプリカだけの場合、バックアップは実行されません。If the primary replica is the only replica online, the backup should not occur.

    セカンダリSecondary
    オンラインのレプリカがプライマリ レプリカのみである場合を除き、セカンダリ レプリカでバックアップを実行することを指定します。Specifies that backups should occur on a secondary replica except when the primary replica is the only replica online. オンラインのレプリカがプライマリ レプリカのみである場合は、プライマリ レプリカでバックアップを実行する必要があります。In that case, the backup should occur on the primary replica. これは既定の動作です。This is the default behavior.

    なしNone
    バックアップを実行するレプリカを選択するときにバックアップ ジョブが可用性レプリカのロールを無視するように指定します。Specifies that you prefer that backup jobs ignore the role of the availability replicas when choosing the replica to perform backups. バックアップ ジョブは、動作状態および接続状態と組み合わせて、各可用性レプリカのバックアップ優先順位などの他の要素を評価する場合があります。Note backup jobs might evaluate other factors such as backup priority of each availability replica in combination with its operational state and connected state.

    重要

    AutomatedBackupPreferenceは適用されません。There is no enforcement of AutomatedBackupPreference. この優先設定の解釈は、特定の可用性グループのデータベースに対するバックアップ ジョブのスクリプトでのロジックに依存します (ロジックが存在する場合)。The interpretation of this preference depends on the logic, if any, that you script into backup jobs for the databases in a given availability group. 自動バックアップ設定はアドホック バックアップには影響しません。The automated backup preference setting has no impact on ad-hoc backups. 詳細については、このトピックで後述する「補足情報:セカンダリ レプリカでバックアップを構成した後」を参照してください。For more information, see Follow Up: After Configuring Backup on Secondary Replicas later in this topic.

    たとえば、次のコマンドは、可用性グループ AutomatedBackupPreference MyAg プロパティを SecondaryOnlyに設定します。For example, the following command sets the AutomatedBackupPreference property on the availability group MyAg to SecondaryOnly. この可用性グループ内のデータベースの自動バックアップはプライマリ レプリカでは行われませんが、バックアップの優先度設定が最も高いセカンダリ レプリカにリダイレクトされます。Automated backups of databases in this availability group will never occur on the primary replica, but will be redirected to the secondary replica with the highest backup priority setting.

    Set-SqlAvailabilityGroup `  
    -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg `  
    -AutomatedBackupPreference SecondaryOnly  
    

注意

コマンドレットの構文を表示するには、 PowerShell 環境で Get-Help SQL ServerSQL Server コマンドレットを使用します。To view the syntax of a cmdlet, use the Get-Help cmdlet in the SQL ServerSQL Server PowerShell environment. 詳細については、「 Get Help SQL Server PowerShell」を参照してください。For more information, see Get Help SQL Server PowerShell.

SQL Server PowerShell プロバイダーを設定して使用するにはTo set up and use the SQL Server PowerShell provider

補足情報:セカンダリ レプリカでバックアップを構成した後Follow Up: After Configuring Backup on Secondary Replicas

特定の可用性グループの自動バックアップ設定を考慮に入れるには、バックアップ優先度が 0 を超える (>0) 可用性レプリカをホストする各サーバー インスタンスで、可用性グループのデータベースのバックアップ ジョブを実行するスクリプトを作成する必要があります。To take the automated backup preference into account for a given availability group, on each server instance that hosts an availability replica whose backup priority is greater than zero (>0), you need to script backup jobs for the databases in the availability group. 現在のレプリカが優先バックアップ レプリカかどうかを確認すには、バックアップ スクリプトで sys.fn_hadr_backup_is_preferred_replica 関数を使用します。To determine whether the current replica is the preferred backup replica, use the sys.fn_hadr_backup_is_preferred_replica function in your backup script. 現在のサーバー インスタンスでホストされている可用性レプリカがバックアップ用の優先レプリカである場合、この関数は 1 を返します。If the availability replica that is hosted by the current server instance is the preferred replica for backups, this function returns 1. そうでない場合、関数は 0 を返します。If not, the function returns 0. この関数に対してクエリを実行する各可用性レプリカを対象にしてシンプルなスクリプトを実行することによって、特定のバックアップ ジョブの実行に適したレプリカを特定できます。By running a simple script on each availability replica that queries this function, you can determine which replica should run a given backup job. たとえば、バックアップ ジョブ スクリプトの典型的なスニペットは次のようになります。For example, a typical snippet of a backup-job script would look like:

IF (NOT sys.fn_hadr_backup_is_preferred_replica(@DBNAME))  
BEGIN  
      Select 'This is not the preferred replica, exiting with success';  
      RETURN 0 - This is a normal, expected condition, so the script returns success  
END  
BACKUP DATABASE @DBNAME TO DISK=<disk>  
   WITH COPY_ONLY;  

このロジックを使用してバックアップ ジョブのスクリプトを作成することにより、各可用性レプリカで同じスケジュールでジョブを実行できるようになります。Scripting a backup job with this logic enables you to schedule the job to run on every availability replica on the same schedule. これらの各ジョブは同じデータを参照してジョブを実行する必要があるかどうかを判断するので、実際にバックアップ ステージに進むことができるのは、スケジュールされているジョブのうち 1 つだけです。Each of these jobs looks at the same data to determine which job should run, so only one of the scheduled job actually proceeds to the backup stage. フェールオーバーが発生した場合に、どのスクリプトやジョブも変更する必要はありません。In the event of a failover, none of the scripts or jobs needs to be modified. また、可用性グループを再構成して可用性レプリカを追加する場合、バックアップ ジョブの管理で必要な操作は、バックアップ ジョブのコピーまたはスケジュールのみです。Also, if you reconfigure an availability group to add an availability replica, managing the backup job requires simply copying or scheduling the backup job. 可用性レプリカを削除する場合は、レプリカをホストするサーバー インスタンスからバックアップ ジョブを削除する操作のみです。If you remove an availability replica, simply delete the backup job from the server instance that hosted that replica.

ヒント

メンテナンス プラン ウィザードを使用してバックアップ ジョブを作成すると、 sys.fn_hadr_backup_is_preferred_replica 関数の呼び出しと確認を行うスクリプト作成ロジックがそのジョブに自動的に含まれます。If you use theMaintenance Plan Wizardto create a given backup job, the job will automatically include the scripting logic that calls and checks the sys.fn_hadr_backup_is_preferred_replica function. ただし、バックアップ ジョブによって、"これは優先レプリカではありません" というメッセージが返されることはありません。可用性グループの可用性レプリカをホストする各サーバー インスタンスで、各可用性データベースのジョブを必ず作成します。However, the backup job will not return the "This is not the preferred replica..." message.Be sure to create the job(s) for each availability database on every server instance that hosts an availability replica for the availability group.

バックアップ優先設定に関する情報を取得するにはTo Obtain Information About Backup Preference Settings

次の表は、セカンダリでのバックアップに関連する情報を取得するのに役立ちます。The following are useful for obtaining information that is relevant for backup on secondary.

表示View [情報]Information 関連する列Relevant Columns
sys.fn_hadr_backup_is_preferred_replicasys.fn_hadr_backup_is_preferred_replica 現在のレプリカが優先されるバックアップ レプリカであるかどうかIs the current replica the preferred backup replica? 該当なし。Not applicable.
sys.availability_groupssys.availability_groups 自動バックアップ設定Automated backup preference automated_backup_preferenceautomated_backup_preference

automated_backup_preference_descautomated_backup_preference_desc
sys.availability_replicassys.availability_replicas 指定された可用性レプリカのバックアップの優先順位Backup priority of a given availability replica backup_prioritybackup_priority
sys.dm_hadr_availability_replica_statessys.dm_hadr_availability_replica_states レプリカがこのサーバー インスタンスにローカルであるかどうかIs replica local to the server instance?

現在のロールCurrent role

運用状態Operational state

接続状態Connected state

可用性レプリカの同期の正常性Synchronization health of an availability replica
is_localis_local

ロール, 、 role_descrole, role_desc

operational_stateoperational_state_descoperational_state, operational_state_desc

connected_stateconnected_state_descconnected_state, connected_state_desc

synchronization_healthsynchronization_health_descsynchronization_health, synchronization_health_desc

関連コンテンツRelated Content

参照See Also

AlwaysOn 可用性グループの概要 (SQL Server) Overview of Always On Availability Groups (SQL Server)
アクティブなセカンダリ:セカンダリ レプリカでのバックアップ (Always On 可用性グループ)Active Secondaries: Backup on Secondary Replicas (Always On Availability Groups)