Add-SqlAvailabilityDatabase
可用性グループにプライマリ データベースを追加するか、セカンダリ データベースを可用性グループに参加させます。
構文
Add-SqlAvailabilityDatabase
-Database <String[]>
[[-Path] <String[]>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Add-SqlAvailabilityDatabase
-Database <String[]>
[-InputObject] <AvailabilityGroup[]>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
Add-SqlAvailabilityDatabase コマンドレットは、可用性グループにプライマリ データベースを追加するか、セカンダリ データベースを可用性グループに参加させます。 InputObject または Path パラメーターは、可用性グループを指定します。 データベースは、1 つの可用性グループにのみ属できます。
可用性グループにデータベースを追加するには、プライマリ レプリカをホストするサーバー インスタンスでこのコマンドレットを実行します。 1 つ以上のローカル ユーザー データベースを指定します。
セカンダリ データベースを可用性グループに参加させるために、セカンダリ レプリカをホストするサーバー インスタンスでセカンダリ データベースを手動で準備します。 次に、セカンダリ レプリカをホストするサーバー インスタンスでこのコマンドレットを実行します。
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
例
例 1: 可用性グループにデータベースを追加する
PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16"
このコマンドは、データベース 'Database16' を可用性グループ 'MainAG' に追加します。 可用性グループのプライマリ サーバー インスタンスでこのコマンドを実行します。 このコマンドは、データ同期のためにセカンダリ データベースを準備しません。
例 2: データベースを可用性グループに参加させる
PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16"
このコマンドは、"Database16" という名前のセカンダリ データベースを、セカンダリ レプリカをホストするサーバー インスタンスの 1 つの可用性グループ 'MainAG' に結合します。
例 3: データベースを追加し、セカンダリ データベースを可用性グループに参加させる
PS C:\> $DatabaseBackupFile = "\\share\backups\Database16.bak"
PS C:\> $LogBackupFile = "\\share\backups\Database16.trn"
PS C:\> $AGPrimaryPath = "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG"
PS C:\> $MyAGSecondaryPath = "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MainAG"
PS C:\> Backup-SqlDatabase -Database "Database16" -BackupFile $DatabaseBackupFile -ServerInstance "PrimaryServer\InstanceName"
PS C:\> Backup-SqlDatabase -Database "Database16" -BackupFile $LogBackupFile -ServerInstance "PrimaryServer\InstanceName" -BackupAction Log
PS C:\> Restore-SqlDatabase -Database "Database16" -BackupFile $DatabaseBackupFile -ServerInstance "SecondaryServer\InstanceName" -NoRecovery
PS C:\> Restore-SqlDatabase -Database "Database16" -BackupFile $LogBackupFile -ServerInstance "SecondaryServer\InstanceName" -RestoreAction Log -NoRecovery
PS C:\> Add-SqlAvailabilityDatabase -Path $AGPrimaryPath -Database 'Database16'
PS C:\> Add-SqlAvailabilityDatabase -Path $AGSecondaryPath -Database "Database16"
この例では、可用性グループのプライマリ レプリカをホストするサーバー インスタンス上のデータベースからセカンダリ データベースを準備します。 プライマリ データベースとして可用性グループにデータベースを追加します。最後に、セカンダリ データベースを可用性グループに結合します。
6 番目のコマンドは、プライマリ サーバー上の 'Database16' のログ ファイルを$LogBackupFile内の場所にバックアップします。
例 4: 可用性グループにデータベースを追加するスクリプトを作成する
PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16" -Script
このコマンドは、データベース 'Database16' を可用性グループ 'MainAG' に追加する Transact-SQL スクリプトを作成します。
パラメーター
-AccessToken
ユーザー/パスワードまたは Windows 認証の代わりに、SQL Server に対する認証に使用されるアクセス トークン。
これは、たとえば、Service Principal
または Managed Identity
を使用して SQL Azure DB
と SQL Azure Managed Instance
に接続するために使用できます。
使用するパラメーターには、トークンを表す文字列、または Get-AzAccessToken -ResourceUrl https://database.windows.net
を実行して返される PSAccessToken
オブジェクトを指定できます。
このパラメーターは、モジュールの v22 の新機能です。
型: | PSObject |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Confirm
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Database
ユーザー データベースの配列を指定します。 このコマンドレットは、このパラメーターが指定するデータベースを可用性グループに追加または結合します。 指定するデータベースは、SQL Server のローカル インスタンスに存在する必要があります。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Encrypt
SQL Server に接続するときに使用する暗号化の種類。
この値は、Microsoft.Data.SqlClient ドライバーの SqlConnection オブジェクトの Encrypt
プロパティ SqlConnectionEncryptOption
にマップされます。
モジュールの v22 では、既定値は Optional
です (v21 との互換性のため)。 モジュールの v23 以降では、既定値は "必須" になり、既存のスクリプトに重大な変更が生じる可能性があります。
このパラメーターは、モジュールの v22 の新機能です。
型: | String |
指定可能な値: | Mandatory, Optional, Strict |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-HostNameInCertificate
SQL Server TLS/SSL 証明書の検証に使用するホスト名。 SQL Server インスタンスで Force Encryption が有効になっていて、ホスト名/短縮名を使用してインスタンスに接続する場合は、このパラメーターを渡す必要があります。 このパラメーターを省略した場合、強制暗号化が有効になっている SQL Server インスタンスに接続するには、完全修飾ドメイン名 (FQDN) を -ServerInstance に渡す必要があります。
このパラメーターは、モジュールの v22 の新機能です。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
このコマンドレットがデータベースを追加または結合する可用性グループを AvailabilityGroup オブジェクトとして指定します。
型: | AvailabilityGroup[] |
配置: | 1 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Path
このコマンドレットがデータベースを追加または結合する可用性グループのパスを指定します。 このパラメーターを指定しない場合、このコマンドレットは現在の作業場所を使用します。
型: | String[] |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ProgressAction
スクリプト、コマンドレット、またはプロバイダーによって生成された進行状況の更新 (Write-Progress コマンドレットによって生成された進行状況バーなど) に対する PowerShell の応答方法を決定します。 Write-Progress コマンドレットは、コマンドの状態を示す進行状況バーを作成します。
型: | ActionPreference |
Aliases: | proga |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Script
このコマンドレットは、このコマンドレットが実行するタスクを実行する Transact-SQL スクリプトを返します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-TrustServerCertificate
信頼を検証するために証明書チェーンのウォークをバイパスしながらチャネルを暗号化するかどうかを示します。
モジュールの v22 では、既定値は $true
です (v21 との互換性のため)。 モジュールの v23 以降では、既定値は "$false" になり、既存のスクリプトに重大な変更が生じる可能性があります。
このパラメーターは、モジュールの v22 の新機能です。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
System.String[], Microsoft.SqlServer.Management.Smo.AvailabilityGroup[]
出力
System.Object