可用性グループへのデータベースの追加 (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 の使用
可用性グループにデータベースを追加するには
オブジェクト エクスプローラーで、プライマリ レプリカをホストするサーバー インスタンスに接続し、サーバー ツリーを展開します。
[AlwaysOn 高可用性] ノードと [可用性グループ] ノードを展開します。
可用性グループを右クリックし、次のコマンドのどちらかを選択します。
可用性グループへのデータベース追加ウィザードを起動するには、[データベースの追加] をクリックします。 詳細については、「可用性グループへのデータベース追加ウィザードの使用 (SQL Server Management Studio)」を参照してください。
1 つまたは複数のデータベースを追加するには、[可用性グループのプロパティ] ダイアログ ボックスでそれらを指定し、[プロパティ] をクリックします。 データベースを追加する手順は以下のとおりです。
[可用性データベース] ペインで、[追加] ボタンをクリックします。 これにより、空のデータベース フィールドが作成され、選択されます。
可用性データベースの前提条件を満たしているデータベースの名前を入力します。
別のデータベースを追加するには、上記の手順を繰り返します。 データベースの指定を完了したら、[OK] をクリックして操作を完了します。
[可用性グループのプロパティ] ダイアログ ボックスを使用して可用性グループにデータベースを追加した後、セカンダリ レプリカをホストする各サーバー インスタンスで、対応するセカンダリ データベースを構成する必要があります。 詳細については、「AlwaysOn セカンダリ データベース上のデータ移動の開始 (SQLServer)」を参照してください。
[先頭に戻る]
Transact-SQL の使用
可用性グループにデータベースを追加するには
プライマリ レプリカをホストするサーバー インスタンスをホストするセカンダリ インスタンスに接続します。
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
可用性グループにデータベースを追加した後、セカンダリ データベースをホストする各サーバー インスタンスで、対応するセカンダリ データベースを構成する必要があります。 詳細については、「AlwaysOn セカンダリ データベース上のデータ移動の開始 (SQLServer)」を参照してください。
[先頭に戻る]
PowerShell の使用
可用性グループにデータベースを追加するには
プライマリ レプリカをホストするサーバー インスタンスにディレクトリを変更 (cd) します。
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 のヘルプの参照」を参照してください。
可用性グループにデータベースを追加した後、セカンダリ データベースをホストする各サーバー インスタンスで、対応するセカンダリ データベースを構成する必要があります。 詳細については、「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)