Set-SqlAvailabilityGroup
可用性グループの設定を設定します。
構文
ByPath (既定)
Set-SqlAvailabilityGroup
[[-Path] <String>]
[-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
[-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
[-HealthCheckTimeout <Int32>]
[-DatabaseHealthTrigger <Boolean>]
[-RequiredSynchronizedSecondariesToCommit <Int32>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByObject
Set-SqlAvailabilityGroup
[-InputObject] <AvailabilityGroup>
[-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
[-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
[-HealthCheckTimeout <Int32>]
[-DatabaseHealthTrigger <Boolean>]
[-RequiredSynchronizedSecondariesToCommit <Int32>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
Set-SqlAvailabilityGroup コマンドレットは、Always On 可用性グループの既存の可用性グループの設定を変更します。 自動バックアップ設定、障害状態レベル、正常性チェックのタイムアウトを変更できます。 このコマンドレットは、プライマリ レプリカをホストするサーバー インスタンスで実行する必要があります。
例
例 1: 正常性チェックのタイムアウト期間を変更する
PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MAinAG" -HealthCheckTimeout 120000
このコマンドは、 MainAG という名前の可用性グループの正常性チェック タイムアウト プロパティを 120 秒 (2 分) に変更します。
自動フェールオーバーが有効になっている場合、この時間が経過すると、Always On 可用性グループによって自動フェールオーバーが開始されます。
例 2: 自動バックアップ設定を変更する
PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -AutomatedBackupPreference SecondaryOnly
このコマンドは、 MainAG という名前の可用性グループの自動バックアップ設定を SecondaryOnlyに変更します。
この可用性グループ内のデータベースの自動バックアップは、プライマリ レプリカでは実行されません。
代わりに、バックアップの優先度が最も高いセカンダリ レプリカで自動バックアップが実行されます。
例 3: 障害条件レベルを変更する
PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -FailureConditionLevel OnServerDown
このコマンドは、 MainAG という名前の可用性グループの障害条件レベルを OnServerDownに変更します。
プライマリ レプリカをホストするサーバー インスタンスがオフラインになり、自動フェールオーバーが有効になっている場合、Always On 可用性グループは自動フェールオーバーを開始します。
例 4: トランザクションがプライマリでコミットするために使用できる必要がある 'SYNCHRONOUS_COMMIT' セカンダリの数を変更する
# Get server and AG
PS C:\> CD 'SQLSERVER:\SQL\some-hostname\Default'
PS SQLSERVER:\SQL\some-hostname\Default> $server = Get-Item $PWD
PS SQLSERVER:\SQL\some-hostname\Default> $ag = $server.AvailabilityGroups[0]
# Alter AG with RequiredCopiesToCommit = 4
PS SQLSERVER:\SQL\some-hostname\Default> $ag | Set-SqlAvailabilityGroup -RequiredSynchronizedSecondariesToCommit 4
Note: an exception will be thrown if the -RequiredSynchronizedSecondariesToCommit parameter is used when
the target server version is SQL Server 2016 or lower.
パラメーター
-AccessToken
ユーザー/パスワードまたは Windows 認証の代わりに、SQL Server に対する認証に使用されるアクセス トークン。
これは、たとえば、SQL Azure DBまたはSQL Azure Managed Instanceを使用してService Principalに接続してManaged Identityするために使用できます。
使用するパラメーターには、トークンを表す文字列、または PSAccessToken を実行して返されるGet-AzAccessToken -ResourceUrl https://database.windows.net オブジェクトのいずれかを指定できます。
このパラメーターは、モジュールの v22 の新機能です。
パラメーターのプロパティ
| 型: | PSObject |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-AutomatedBackupPreference
可用性グループの自動バックアップ設定を指定します。 このパラメーターに使用できる値は次のとおりです。
- 原発。 バックアップが常にプライマリ レプリカで実行されることを指定します。 このオプションでは、差分バックアップなど、セカンダリ レプリカでバックアップを実行するときに使用できない機能の使用がサポートされます。
- SecondaryOnly。 プライマリ レプリカでバックアップが実行されないように指定します。 プライマリ レプリカがオンラインの唯一のレプリカである場合、バックアップは行われません。
- 付帯。 プライマリ レプリカが唯一のレプリカオンラインでない限り、セカンダリ レプリカでバックアップを実行することを指定します。 その後、プライマリ レプリカでバックアップが実行されます。
- なし。 バックアップを実行するレプリカを決定するときに、プライマリまたはセカンダリの状態が考慮されないことを指定します。 代わりに、バックアップの優先度とオンライン状態によって、バックアップを実行するレプリカが決まります。
パラメーターのプロパティ
| 型: | AvailabilityGroupAutomatedBackupPreference |
| 規定値: | None |
| 指定可能な値: | Primary, SecondaryOnly, Secondary, None, Unknown |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Confirm
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | cf |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-DatabaseHealthTrigger
可用性グループ内のユーザー データベース レプリカでデータベースエラー状態が発生した場合に、可用性グループの自動フェールオーバーをトリガーするかどうかを指定します。
パラメーターのプロパティ
| 型: | Boolean |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Encrypt
SQL Server に接続するときに使用する暗号化の種類。
この値は、Microsoft.Data.SqlClient ドライバーの SqlConnection オブジェクトの Encrypt プロパティ SqlConnectionEncryptOption にマップされます。
モジュールの v22 では、既定値は Optional です (v21 との互換性のため)。 モジュールの v23 以降では、既定値は "必須" になり、既存のスクリプトに重大な変更が生じる可能性があります。
このパラメーターは、モジュールの v22 の新機能です。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| 指定可能な値: | Mandatory, Optional, Strict |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-FailureConditionLevel
可用性グループの自動フェールオーバー動作を指定します。 このパラメーターに使用できる値は次のとおりです。
- OnServerDown。 SQL Server サービスが停止した場合は、フェールオーバーまたは再起動します。
- OnServerUnresponsive。 低い値の条件が満たされている場合、および SQL Server サービスがクラスターに接続されていて HealthCheckTimeout しきい値を超えた場合、または現在プライマリ ロールの可用性レプリカが失敗状態にある場合は、フェールオーバーまたは再起動します。
- OnCriticalServerError。 低い値の条件が満たされている場合、および内部重大なサーバー エラーが発生した場合 (メモリ不足、重大な書き込みアクセス違反、またはダンプが多すぎる場合など) は、フェールオーバーまたは再起動します。
- OnModerateServerError。 低い値の条件が満たされている場合、および中程度のサーバー エラーが発生した場合は、フェールオーバーまたは再起動します。メモリ不足の永続的な状態が含まれます。
- OnAnyQualifiedFailureConditions。 低い値の条件が満たされている場合はフェールオーバーまたは再起動します。さらに、エンジン ワーカー スレッドの枯渇や解決できないデッドロックの検出など、条件を満たすエラー状態が発生した場合は、フェールオーバーまたは再起動します。
パラメーターのプロパティ
| 型: | AvailabilityGroupFailureConditionLevel |
| 規定値: | None |
| 指定可能な値: | OnServerDown, OnServerUnresponsive, OnCriticalServerErrors, OnModerateServerErrors, OnAnyQualifiedFailureCondition, Unknown |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-HealthCheckTimeout
Always On 可用性グループが応答しないサーバーを異常と宣言するまでの時間をミリ秒単位で指定します。
パラメーターのプロパティ
| 型: | Int32 |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-HostNameInCertificate
SQL Server TLS/SSL 証明書の検証に使われるホスト名。 SQL Server インスタンスで Force Encryption が有効になっていて、ホスト名/短縮名を使用してインスタンスに接続する場合は、このパラメーターを渡す必要があります。 このパラメーターを省略した場合、強制暗号化が有効になっている SQL Server インスタンスに接続するには、完全修飾ドメイン名 (FQDN) を -ServerInstance に渡す必要があります。
このパラメーターは、モジュールの v22 の新機能です。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-InputObject
このコマンドレットが変更する可用性グループを AvailabilityGroup オブジェクトとして指定します。
パラメーターのプロパティ
| 型: | AvailabilityGroup |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ByObject
| 配置: | 1 |
| 必須: | True |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Path
コマンドレットが変更する可用性データベースのパスを指定します。 このパラメーターを指定しない場合、このコマンドレットは現在の作業場所を使用します。
パラメーターのプロパティ
| 型: | String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
ByPath
| 配置: | 1 |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-RequiredSynchronizedSecondariesToCommit
プライマリでコミットできるようにするために使用できる必要がある同期コミット セカンダリの数。
SYNCHRONOUS_COMMITセカンダリがしばらくプライマリから切断されている場合、プライマリはコミットをブロックしないようにASYNCHRONOUS_COMMITするために降格します。 プライマリが使用できなくなり、ユーザーがこれらのセカンダリのいずれかにフェールオーバーする場合、データ損失が発生する可能性があります。
RequiredSynchronizedSecondariesToCommit を何らかの数に設定すると、ASYNCHRONOUS_COMMITに降格されるセカンダリが多すぎると、プライマリがコミットのブロックを開始するため、ユーザーはデータ損失を防ぐことができます。
この設定の既定値は 0 です。つまり、プライマリはコミットをブロックしません。 これは、SQL Server 2017 より前の動作と同じです。
パラメーターのプロパティ
| 型: | Int32 |
| 規定値: | 0 |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Script
このコマンドレットは、このコマンドレットが実行するタスクを実行する Transact-SQL スクリプトを返します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-TrustServerCertificate
信頼を検証するために証明書チェーンのウォークをバイパスしながらチャネルを暗号化するかどうかを示します。
モジュールの v22 では、既定値は $true です (v21 との互換性のため)。 モジュールの v23 以降では、既定値は "$false" になり、既存のスクリプトに重大な変更が生じる可能性があります。
このパラメーターは、モジュールの v22 の新機能です。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | ウィスコンシン |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。