Set-SqlAvailabilityGroup

可用性グループの設定を設定します。

構文

Set-SqlAvailabilityGroup
   [-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
   [-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
   [-HealthCheckTimeout <Int32>]
   [-DatabaseHealthTrigger <Boolean>]
   [-RequiredSynchronizedSecondariesToCommit <Int32>]
   [[-Path] <String>]
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-SqlAvailabilityGroup
   [-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
   [-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
   [-HealthCheckTimeout <Int32>]
   [-DatabaseHealthTrigger <Boolean>]
   [-RequiredSynchronizedSecondariesToCommit <Int32>]
   [-InputObject] <AvailabilityGroup>
   [-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の可用性グループの正常性チェックタイムアウト プロパティを秒 (2 分) に120変更します。 自動フェールオーバーが有効になっている場合、この時間が経過すると、可用性グループ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、 を使用したりManaged Identityするために使用Service Principalできます。

使用するパラメーターには、 を実行Get-AzAccessToken -ResourceUrl https://database.windows.netして返されるトークンまたはオブジェクトをPSAccessToken表す文字列を指定できます。

このパラメーターは、モジュールの v22 の新機能です。

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AutomatedBackupPreference

可用性グループの自動バックアップ設定を指定します。 このパラメーターの有効値は、次のとおりです。

  • プライマリ。 バックアップが常にプライマリ レプリカで実行されることを指定します。 このオプションでは、差分バックアップなど、セカンダリ レプリカでバックアップを実行するときに使用できない機能の使用がサポートされています。
  • SecondaryOnly。 プライマリ レプリカでバックアップが実行されないように指定します。 プライマリ レプリカがオンラインの唯一のレプリカである場合、バックアップは実行されません。
  • セカンダリ。 プライマリ レプリカがオンラインの唯一のレプリカでない限り、セカンダリ レプリカでバックアップが行われることを指定します。 その後、プライマリ レプリカでバックアップが実行されます。
  • [なし] : バックアップを実行するレプリカを決定するときに、プライマリまたはセカンダリの状態が考慮されないことを指定します。 代わりに、バックアップの優先度とオンライン状態によって、バックアップを実行するレプリカが決まります。
Type:AvailabilityGroupAutomatedBackupPreference
Accepted values:Primary, SecondaryOnly, Secondary, None, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseHealthTrigger

可用性グループ内のユーザー データベース レプリカでデータベースエラー状態が発生した場合に、可用性グループの自動フェールオーバーをトリガーするかどうかを指定します。

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

SQL Serverに接続するときに使用する暗号化の種類。

この値は、 Encrypt Microsoft.Data.SqlClient ドライバーの SqlConnection オブジェクトの プロパティ SqlConnectionEncryptOption にマップされます。

モジュールの v22 では、既定値は Optional (v21 との互換性のために) です。 モジュールの v23 以降では、既定値は "必須" になります。これにより、既存のスクリプトに破壊的変更が発生する可能性があります。

このパラメーターは、モジュールの v22 の新機能です。

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FailureConditionLevel

可用性グループの自動フェールオーバー動作を指定します。 このパラメーターの有効値は、次のとおりです。

  • OnServerDown。 SQL Server サービスが停止した場合は、フェールオーバーまたは再起動します。
  • OnServerUnresponsive。 より低い値の条件が満たされた場合、さらにSQL Server サービスがクラスターに接続されていて HealthCheckTimeout しきい値を超えた場合、または現在プライマリ ロールにある可用性レプリカが失敗状態になっている場合は、フェールオーバーまたは再起動します。
  • OnCriticalServerError。 より小さい値の条件が満たされた場合、およびメモリ不足状態、重大な書き込みアクセス違反、またはダンプが多すぎる内部クリティカルなサーバー エラーが発生した場合は、フェールオーバーまたは再起動します。
  • OnModerateServerError。 より低い値の条件が満たされた場合はフェールオーバーまたは再起動します。さらに、中程度のサーバー エラーが発生した場合は、メモリ不足状態が永続的に含まれます。
  • OnAnyQualifiedFailureConditions。 より低い値の条件が満たされた場合はフェールオーバーまたは再起動します。さらに、エンジン ワーカー スレッドの枯渇や解決不可能なデッドロックが検出された状態を含む、条件を満たすエラー条件が発生した場合は再起動します。
Type:AvailabilityGroupFailureConditionLevel
Accepted values:OnServerDown, OnServerUnresponsive, OnCriticalServerErrors, OnModerateServerErrors, OnAnyQualifiedFailureCondition, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HealthCheckTimeout

Always On可用性グループが応答しないサーバーを異常と宣言するまでの時間の長さをミリ秒単位で指定します。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

SQL Server TLS/SSL 証明書の検証に使われるホスト名。 SQL Server インスタンスで Force Encryption が有効になっており、hostname/shortname を使用してインスタンスに接続する場合は、このパラメーターを渡す必要があります。 このパラメーターを省略した場合、強制暗号化が有効になっているSQL Server インスタンスに接続するには、完全修飾ドメイン名 (FQDN) を -ServerInstance に渡す必要があります。

このパラメーターは、モジュールの v22 の新機能です。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

このコマンドレットが変更する可用性グループを AvailabilityGroup オブジェクトとして指定します。

Type:AvailabilityGroup
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

コマンドレットが変更する可用性データベースのパスを指定します。 このパラメーターを指定しない場合、このコマンドレットは現在の作業場所を使用します。

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RequiredSynchronizedSecondariesToCommit

プライマリでコミットできるようにするために使用できる必要がある同期コミット セカンダリの数。

セカンダリが SYNCHRONOUS_COMMIT しばらくの間プライマリから切断されている場合、プライマリはコミットをブロックしないように降格 ASYNCHRONOUS_COMMIT します。 プライマリが使用できなくなり、ユーザーがこれらのセカンダリのいずれかにフェールオーバーする場合、データが失われる可能性があります。 RequiredSynchronizedSecondariesToCommit をある数に設定すると、ユーザーはデータの損失を防ぐことができます。これは、セカンダリが に降格された場合にプライマリがコミットのブロックをASYNCHRONOUS_COMMIT開始するためです。

この設定の既定値は 0 です。つまり、プライマリはコミットをブロックしません。 これは、2017 年SQL Server前の動作と同じです。

Type:Int32
Position:Named
Default value:0
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Script

このコマンドレットによって、このコマンドレットが実行するタスクを実行する Transact-SQL スクリプトが返されることを示します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TrustServerCertificate

信頼を検証するために証明書チェーンの歩き方をバイパスしながらチャネルを暗号化するかどうかを示します。

モジュールの v22 では、既定値は $true (v21 との互換性のために) です。 モジュールの v23 以降では、既定値は "$false" になります。これにより、既存のスクリプトに破壊的変更が発生する可能性があります。

このパラメーターは、モジュールの v22 の新機能です。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

Microsoft.SqlServer.Management.Smo.AvailabilityGroup