Always On 可用性グループへのデータベースの追加Add a Database to an Always On availability group

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

このトピックでは、 SQL Server Management StudioSQL Server Management StudioTransact-SQLTransact-SQLSQL ServerSQL Server、または PowerShell を使用して、AlwaysOn 可用性グループにデータベースを追加する方法について説明します。This topic describes how to add a database to an Always On availability group by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell in SQL ServerSQL Server.

前提条件と制限Prerequisites and Restrictions

PermissionsPermissions

可用性グループの 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 の使用Use SQL Server Management Studio

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

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

  3. 可用性グループを右クリックし、次のコマンドのどちらかを選択します。Right-click the availability group, and select one of the following commands:

    • 可用性グループへのデータベース追加ウィザードを起動するには、 [データベースの追加] をクリックします。To launch the Add Database to Availability Group Wizard, select the Add Database command. 詳細については、可用性グループへのデータベース追加ウィザードの使用 (SQL Server Management Studio) を参照してください。For more information, see Use the Add Database to Availability Group Wizard (SQL Server Management Studio).

    • 1 つまたは複数のデータベースを追加するには、 [可用性グループのプロパティ] ダイアログ ボックスでそれらを指定し、 [プロパティ] をクリックします。To add one or more databases by specifying them in the Availability Group Properties dialog box, select the Properties command. データベースを追加する手順は以下のとおりです。The steps for adding a database are as follows:

      1. [可用性データベース] ペインで、 [追加] ボタンをクリックします。In the Availability Databases pane, click the Add button. これにより、空のデータベース フィールドが作成され、選択されます。This creates and selects a blank database field.

      2. 可用性データベースの前提条件を満たしているデータベースの名前を入力します。Enter the name of a database that meets the availability-databases prerequisites.

      別のデータベースを追加するには、上記の手順を繰り返します。To add another database, repeat the preceding steps. データベースの指定を完了したら、 [OK] をクリックして操作を完了します。When you are done specifying databases, click OK to complete the operation.

      [可用性グループのプロパティ] ダイアログ ボックスを使用して可用性グループにデータベースを追加した後、セカンダリ レプリカをホストする各サーバー インスタンスで、対応するセカンダリ データベースを構成する必要があります。After you use the Availability Group Properties dialog box to add a database to an availability group, you need to configure the corresponding secondary database on each server instance that hosts a secondary replica. 詳細については、「 AlwaysOn セカンダリ データベース上のデータ移動の開始 (SQL Server)」を参照してください。For more information, see Start Data Movement on an Always On Secondary Database (SQL Server).

Transact-SQL を使用するUse Transact-SQL

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

  2. ALTER AVAILABILITY GROUP ステートメントを使用します。次にその例を示します。Use the ALTER AVAILABILITY GROUP statement, as follows:

    ALTER AVAILABILITY GROUP group_name ADD DATABASE database_name [,...n]ALTER AVAILABILITY GROUP group_name ADD DATABASE database_name [,...n]

    ここで、 group_name は可用性グループの名前、 database_name はグループに追加するデータベースの名前です。where group_name is the name of the availability group and database_name is the name of a database to be added to the group.

    次の例では、 MyDb3 データベースを MyAG 可用性グループに追加します。The following example adds the MyDb3 database to the MyAG availability group.

    -- Connect to the server instance that hosts the primary replica.  
    -- Add an existing database to the availability group.  
    ALTER AVAILABILITY GROUP MyAG ADD DATABASE MyDb3;  
    GO  
    
  3. 可用性グループにデータベースを追加した後、セカンダリ データベースをホストする各サーバー インスタンスで、対応するセカンダリ データベースを構成する必要があります。After you add a database to an availability group, you need to configure the corresponding secondary database on each server instance that hosts a secondary replica. 詳細については、「 AlwaysOn セカンダリ データベース上のデータ移動の開始 (SQL Server)」を参照してください。For more information, see Start Data Movement on an Always On Secondary Database (SQL Server).

PowerShell を使用するUse PowerShell

  1. プライマリ レプリカをホストするサーバー インスタンスにディレクトリを変更 (cd) します 。Change directory (cd) to the server instance that hosts the primary replica.

  2. Add-SqlAvailabilityDatabase コマンドレットを使用します。Use the Add-SqlAvailabilityDatabase cmdlet.

    たとえば、次のコマンドは、そのプライマリ レプリカが MyDd によってホストされるセカンダリ データベース MyAGPrimaryServer\InstanceName可用性グループに追加します。For example, the following command adds the secondary database MyDd to the MyAG availability group, whose primary replica is hosted by PrimaryServer\InstanceName.

    
    Add-SqlAvailabilityDatabase `   
    -Path SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAG `   
    -Database "MyDb"  
    

    注意

    コマンドレットの構文を表示するには、 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.

  3. 可用性グループにデータベースを追加した後、セカンダリ データベースをホストする各サーバー インスタンスで、対応するセカンダリ データベースを構成する必要があります。After you add a database to an availability group, you need to configure the corresponding secondary database on each server instance that hosts a secondary replica. 詳細については、「 AlwaysOn セカンダリ データベース上のデータ移動の開始 (SQL Server)」を参照してください。For more information, see Start Data Movement on an Always On Secondary Database (SQL Server).

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

完全な例については、次の「 例 (PowerShell)」を参照してください。For a complete example, see Example (PowerShell), below.

例 (PowerShell)Example (PowerShell)

次の例では、可用性グループのプライマリ レプリカをホストするサーバー インスタンス上のデータベースからセカンダリ データベースを準備し、そのデータベースを (プライマリ データベースとして) 可用性グループに追加した後、セカンダリ データベースを可用性グループに参加させるすべての処理を示しています。The following example shows the full process for preparing a secondary database from a database on the server instance that hosts the primary replica of an availability group, adding the database to an availability group (as a primary database), and then joining the secondary database to the availability group. 最初に、データベースとトランザクション ログをバックアップします。First, the example backs up the database and its transaction log. 次に、セカンダリ レプリカをホストするサーバー インスタンスにデータベースとログのバックアップを復元します。Then the example restores the database and log backups to the server instances that host a secondary replica.

この例では、 Add-SqlAvailabilityDatabase を 2 回呼び出します。1 回目はデータベースを可用性グループに追加するためにプライマリ レプリカで呼び出し、2 回目はセカンダリ レプリカ上のセカンダリ データベースを可用性グループに参加させるためにセカンダリ レプリカで呼び出します。The example calls Add-SqlAvailabilityDatabase twice: first on the primary replica to add the database to the availability group, and then on the secondary replica to join the secondary database on that replica to the availability group. セカンダリ レプリカが複数ある場合は、それぞれのセカンダリ データベースを復元して参加させます。If you have more than one secondary replica, restore and join the secondary database on each of them.

$DatabaseBackupFile = "\\share\backups\MyDatabase.bak"  
$LogBackupFile = "\\share\backups\MyDatabase.trn"  
$MyAgPrimaryPath = "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAg"  
$MyAgSecondaryPath = "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MyAg"  
  
Backup-SqlDatabase -Database "MyDatabase" -BackupFile $DatabaseBackupFile -ServerInstance "PrimaryServer\InstanceName"  
Backup-SqlDatabase -Database "MyDatabase" -BackupFile $LogBackupFile -ServerInstance "PrimaryServer\InstanceName" -BackupAction 'Log'  
  
Restore-SqlDatabase -Database "MyDatabase" -BackupFile $DatabaseBackupFile -ServerInstance "SecondaryServer\InstanceName" -NoRecovery  
Restore-SqlDatabase -Database "MyDatabase" -BackupFile $LogBackupFile -ServerInstance "SecondaryServer\InstanceName" -RestoreAction 'Log' -NoRecovery  
  
Add-SqlAvailabilityDatabase -Path $MyAgPrimaryPath -Database "MyDatabase"  
Add-SqlAvailabilityDatabase -Path $MyAgSecondaryPath -Database "MyDatabase"  
  

参照See Also

AlwaysOn 可用性グループの概要 (SQL Server) Overview of Always On Availability Groups (SQL Server)
可用性グループの作成と構成 (SQL Server) Creation and Configuration of Availability Groups (SQL Server)
Always On ダッシュボードの使用 (SQL Server Management Studio) Use the Always On Dashboard (SQL Server Management Studio)
可用性グループの監視 (Transact-SQL)Monitor Availability Groups (Transact-SQL)