Always On 可用性グループへのデータベースの追加
適用対象: SQL Server
このトピックでは、SQL Server Management Studio で Transact-SQL、SQL Server、または PowerShell を使用して、AlwaysOn 可用性グループにデータベースを追加する方法について説明します。
前提条件と制限
プライマリ レプリカをホストするサーバー インスタンスに接続されている必要があります。
プライマリ レプリカがホストされるサーバー インスタンスにデータベースが存在し、データベースが可用性データベースの前提条件と制限に準拠している必要があります。 詳細については、「Always On 可用性グループの前提条件、制限事項、および推奨事項 (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 セカンダリ データベース上のデータ移動の開始 (SQL Server)」を参照してください。
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 セカンダリ データベース上のデータ移動の開始 (SQL Server)」を参照してください。
PowerShell の使用
プライマリ レプリカをホストするサーバー インスタンスにディレクトリを変更 (cd) します 。
Add-SqlAvailabilityDatabase コマンドレットを使用します。
たとえば、次のコマンドは、そのプライマリ レプリカが
MyDd
によってホストされるセカンダリ データベースMyAG
をPrimaryServer\InstanceName
可用性グループに追加します。Add-SqlAvailabilityDatabase ` -Path SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAG ` -Database "MyDb"
注意
コマンドレットの構文を表示するには、 PowerShell 環境で Get-Help SQL Server コマンドレットを使用します。 詳細については、「 Get Help SQL Server PowerShell」を参照してください。
可用性グループにデータベースを追加した後、セカンダリ データベースをホストする各サーバー インスタンスで、対応するセカンダリ データベースを構成する必要があります。 詳細については、「AlwaysOn セカンダリ データベース上のデータ移動の開始 (SQL Server)」を参照してください。
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"
参照
Always On 可用性グループの概要 (SQL Server)
可用性グループの作成と構成 (SQL Server)
Always On ダッシュボードの使用 (SQL Server Management Studio)
可用性グループの監視 (Transact-SQL)