可用性グループへのデータベースの追加 (SQL Server)

このトピックでは、SQL Server 2012 で SQL Server Management Studio、Transact-SQL、または PowerShell を使用して、AlwaysOn 可用性グループにデータベースを追加する方法について説明します。

  • 作業を開始する準備: 

    前提条件と制限

    権限

  • 可用性グループにデータベースを追加する方法: 

    SQL Server Management Studio

    Transact-SQL

    PowerShell

作業を開始する準備

前提条件と制限

  • プライマリ レプリカをホストするサーバー インスタンスに接続されている必要があります。

  • プライマリ レプリカがホストされるサーバー インスタンスにデータベースが存在し、データベースが可用性データベースの前提条件と制限に準拠している必要があります。 詳細については、「AlwaysOn 可用性グループの前提条件、制限事項、および推奨事項 (SQL Server)」を参照してください。

権限

可用性グループの ALTER AVAILABILITY GROUP 権限、CONTROL AVAILABILITY GROUP 権限、ALTER ANY AVAILABILITY GROUP 権限、または CONTROL SERVER 権限が必要です。

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

SQL Server Management Studio の使用

可用性グループにデータベースを追加するには

  1. オブジェクト エクスプローラーで、プライマリ レプリカをホストするサーバー インスタンスに接続し、サーバー ツリーを展開します。

  2. [AlwaysOn 高可用性] ノードと [可用性グループ] ノードを展開します。

  3. 可用性グループを右クリックし、次のコマンドのどちらかを選択します。

    • 可用性グループへのデータベース追加ウィザードを起動するには、[データベースの追加] をクリックします。 詳細については、「可用性グループへのデータベース追加ウィザードの使用 (SQL Server Management Studio)」を参照してください。

    • 1 つまたは複数のデータベースを追加するには、[可用性グループのプロパティ] ダイアログ ボックスでそれらを指定し、[プロパティ] をクリックします。 データベースを追加する手順は以下のとおりです。

      1. [可用性データベース] ペインで、[追加] ボタンをクリックします。 これにより、空のデータベース フィールドが作成され、選択されます。

      2. 可用性データベースの前提条件を満たしているデータベースの名前を入力します。

      別のデータベースを追加するには、上記の手順を繰り返します。 データベースの指定を完了したら、[OK] をクリックして操作を完了します。

      [可用性グループのプロパティ] ダイアログ ボックスを使用して可用性グループにデータベースを追加した後、セカンダリ レプリカをホストする各サーバー インスタンスで、対応するセカンダリ データベースを構成する必要があります。 詳細については、「AlwaysOn セカンダリ データベース上のデータ移動の開始 (SQLServer)」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

Transact-SQL の使用

可用性グループにデータベースを追加するには

  1. プライマリ レプリカをホストするサーバー インスタンスをホストするセカンダリ インスタンスに接続します。

  2. ALTER AVAILABILITY GROUP ステートメントを使用します。次にその例を示します。

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

    group_name は可用性グループの名前、database_name はグループに追加するデータベースの名前です。

    次の例では、MyDb3 データベースを MyAG 可用性グループに追加します。

    -- 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. 可用性グループにデータベースを追加した後、セカンダリ データベースをホストする各サーバー インスタンスで、対応するセカンダリ データベースを構成する必要があります。 詳細については、「AlwaysOn セカンダリ データベース上のデータ移動の開始 (SQLServer)」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

PowerShell の使用

可用性グループにデータベースを追加するには

  1. プライマリ レプリカをホストするサーバー インスタンスにディレクトリを変更 (cd) します。

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

    たとえば、次のコマンドは、そのプライマリ レプリカが PrimaryServer\InstanceName によってホストされるセカンダリ データベース MyDd を MyAG 可用性グループに追加します。

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

    コマンドレットの構文を表示するには、SQL Server PowerShell 環境で Get-Help コマンドレットを使用します。 詳細については、「SQL Server PowerShell のヘルプの参照」を参照してください。

  3. 可用性グループにデータベースを追加した後、セカンダリ データベースをホストする各サーバー インスタンスで、対応するセカンダリ データベースを構成する必要があります。 詳細については、「AlwaysOn セカンダリ データベース上のデータ移動の開始 (SQLServer)」を参照してください。

SQL Server PowerShell プロバイダーを設定して使用するには

完全な例については、次の「例 (PowerShell)」を参照してください。

例 (PowerShell)

次の例では、可用性グループのプライマリ レプリカをホストするサーバー インスタンス上のデータベースからセカンダリ データベースを準備し、そのデータベースを (プライマリ データベースとして) 可用性グループに追加した後、セカンダリ データベースを可用性グループに参加させるすべての処理を示しています。 最初に、データベースとトランザクション ログをバックアップします。 次に、セカンダリ レプリカをホストするサーバー インスタンスにデータベースとログのバックアップを復元します。

この例では、Add-SqlAvailabilityDatabase を 2 回呼び出します。1 回目はデータベースを可用性グループに追加するためにプライマリ レプリカで呼び出し、2 回目はセカンダリ レプリカ上のセカンダリ データベースを可用性グループに参加させるためにセカンダリ レプリカで呼び出します。 セカンダリ レプリカが複数ある場合は、それぞれのセカンダリ データベースを復元して参加させます。

$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"

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

関連項目

概念

AlwaysOn 可用性グループの概要 (SQL Server)

可用性グループの作成と構成 (SQL Server)

AlwaysOn ダッシュボードの使用 (SQL Server Management Studio)

可用性グループの監視 (Transact-SQL)