다음을 통해 공유


Set-SqlAvailabilityGroup

가용성 그룹의 설정을 설정합니다.

구문

Set-SqlAvailabilityGroup
   [-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
   [-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
   [-HealthCheckTimeout <Int32>]
   [-DatabaseHealthTrigger <Boolean>]
   [-RequiredSynchronizedSecondariesToCommit <Int32>]
   [[-Path] <String>]
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [-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>]
   [-ProgressAction <ActionPreference>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

Set-SqlAvailabilityGroup cmdlet은 Always On 가용성 그룹의 기존 가용성 그룹에 대한 설정을 수정합니다. 자동화된 백업 기본 설정, 실패 조건 수준 및 상태 검사 시간 제한을 수정할 수 있습니다. 주 복제본을 호스트하는 서버 인스턴스에서 이 cmdlet을 실행해야 합니다.

예제

예제 1: 상태 검사 시간 제한 기간 변경

PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MAinAG" -HealthCheckTimeout 120000

이 명령은 MainAG 가용성 그룹의 상태 검사 시간 제한 속성을 120 초 또는 2분으로 변경합니다. 자동 장애 조치(failover)를 사용하는 경우 이 시간 이후에 Always On 가용성 그룹이 자동 장애 조치(failover)를 시작합니다.

예제 2: 자동화된 백업 기본 설정 변경

PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -AutomatedBackupPreference SecondaryOnly

이 명령은 SecondaryOnlyMainAG 가용성 그룹에 대한 자동화된 백업 기본 설정을 변경합니다. 이 가용성 그룹에 있는 데이터베이스의 자동화된 백업은 주 복제본에서 발생하지 않습니다. 대신 자동화된 백업은 백업 우선 순위가 가장 높은 보조 복제본에서 발생합니다.

예제 3: 오류 조건 수준 변경

PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -FailureConditionLevel OnServerDown

이 명령은 OnServerDownMainAG 가용성 그룹의 오류 조건 수준을 변경합니다. 주 복제본을 호스팅하는 서버 인스턴스가 오프라인으로 전환되고 자동 장애 조치(failover)가 사용하도록 설정된 경우 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에 인증하는 데 사용되는 액세스 토큰입니다.

예를 들어 Service Principal 또는 Managed Identity사용하여 SQL Azure DB 연결하고 SQL Azure Managed Instance 데 사용할 수 있습니다.

사용할 매개 변수는 토큰을 나타내는 문자열이거나 Get-AzAccessToken -ResourceUrl https://database.windows.net실행하여 반환된 PSAccessToken 개체일 수 있습니다.

이 매개 변수는 모듈의 v22에서 새로 생성됩니다.

형식:PSObject
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-AutomatedBackupPreference

가용성 그룹에 대한 자동화된 백업 기본 설정을 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 본래의. 백업이 항상 주 복제본에서 수행되도록 지정합니다. 이 옵션은 차등 백업과 같은 보조 복제본에서 백업을 실행할 때 사용할 수 없는 기능을 사용할 수 있도록 지원합니다.
  • SecondaryOnly. 주 복제본에서 백업이 수행되지 않도록 지정합니다. 주 복제본이 온라인의 유일한 복제본인 경우 백업이 발생하지 않습니다.
  • 보조. 주 복제본이 온라인의 유일한 복제본이 아닌 한 보조 복제본에서 백업이 수행되도록 지정합니다. 그런 다음 주 복제본에서 백업이 수행됩니다.
  • 없음. 백업을 수행하는 복제본을 결정할 때 주 또는 보조 상태가 고려되지 않도록 지정합니다. 대신 백업 우선 순위 및 온라인 상태에 따라 백업을 수행하는 복제본이 결정됩니다.
형식:AvailabilityGroupAutomatedBackupPreference
허용되는 값:Primary, SecondaryOnly, Secondary, None, Unknown
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Confirm

cmdlet을 실행하기 전에 확인 메시지를 표시합니다.

형식:SwitchParameter
별칭:cf
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-DatabaseHealthTrigger

가용성 그룹 내의 사용자 데이터베이스 복제본에 데이터베이스 오류 조건이 발생하는 경우 가용성 그룹의 자동 장애 조치(failover)를 트리거할지 여부를 지정합니다.

형식:Boolean
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Encrypt

SQL Server에 연결할 때 사용할 암호화 유형입니다.

이 값은 Microsoft.Data.SqlClient 드라이버의 SqlConnection 개체에 있는 Encrypt 속성 SqlConnectionEncryptOption 매핑됩니다.

모듈의 v22에서 기본값은 Optional(v21과의 호환성을 위해)입니다. 모듈의 v23+에서 기본값은 기존 스크립트에 대한 호환성이 손상되는 변경을 만들 수 있는 '필수'입니다.

이 매개 변수는 모듈의 v22에서 새로 생성됩니다.

형식:String
허용되는 값:Mandatory, Optional, Strict
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-FailureConditionLevel

가용성 그룹의 자동 장애 조치(failover) 동작을 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • OnServerDown. SQL Server 서비스가 중지되면 장애 조치(failover)하거나 다시 시작합니다.
  • OnServerUnresponsive. SQL Server 서비스가 클러스터에 연결되어 있고 HealthCheckTimeout 임계값을 초과하는 경우 또는 현재 주 역할에 있는 가용성 복제본이 실패 상태인 경우 장애 조치(failover) 또는 다시 시작합니다.
  • OnCriticalServerError. 더 낮은 값의 조건이 충족되는 경우 장애 조치(failover) 또는 다시 시작, 메모리 부족 상태, 심각한 쓰기 액세스 위반 또는 너무 많은 덤프를 포함하는 내부 중요 서버 오류가 발생할 때.
  • OnModerateServerError. 낮은 값의 조건이 충족되면 장애 조치(failover) 또는 다시 시작하며, 보통 서버 오류가 발생하는 경우 위치는 메모리 부족 상태를 영구적으로 포함합니다.
  • OnAnyQualifiedFailureConditions. 더 낮은 값의 조건이 충족되는 경우 장애 조치(failover) 또는 다시 시작합니다. 또한 엔진 작업자 스레드 고갈 및 해결 불가능한 교착 상태가 감지된 것을 포함하여 한정된 오류 조건이 발생하는 경우.
형식:AvailabilityGroupFailureConditionLevel
허용되는 값:OnServerDown, OnServerUnresponsive, OnCriticalServerErrors, OnModerateServerErrors, OnAnyQualifiedFailureCondition, Unknown
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-HealthCheckTimeout

Always On 가용성 그룹이 응답하지 않는 서버를 비정상으로 선언하는 시간(밀리초)을 지정합니다.

형식:Int32
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-HostNameInCertificate

SQL Server TLS/SSL 인증서의 유효성을 검사하는 데 사용할 호스트 이름입니다. SQL Server 인스턴스가 Force Encryption을 사용하도록 설정되어 있고 호스트 이름/짧은 이름을 사용하여 인스턴스에 연결하려는 경우 이 매개 변수를 전달해야 합니다. 이 매개 변수를 생략하면 강제 암호화를 사용하도록 설정된 SQL Server 인스턴스에 연결하려면 FQDN(정규화된 도메인 이름)을 -ServerInstance 전달해야 합니다.

이 매개 변수는 모듈의 v22에서 새로 생성됩니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InputObject

이 cmdlet이 수정하는 가용성 그룹을 AvailabilityGroup 개체로 지정합니다.

형식:AvailabilityGroup
Position:1
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Path

cmdlet에서 수정하는 가용성 데이터베이스의 경로를 지정합니다. 이 매개 변수를 지정하지 않으면 이 cmdlet은 현재 작업 위치를 사용합니다.

형식:String
Position:1
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ProgressAction

powerShell이 스크립트, cmdlet 또는 공급자(예: Write-Progress cmdlet에서 생성된 진행률 표시줄)에 의해 생성된 진행률 업데이트에 응답하는 방법을 결정합니다. Write-Progress cmdlet은 명령의 상태를 표시하는 진행률 표시줄을 만듭니다.

형식:ActionPreference
별칭:proga
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-RequiredSynchronizedSecondariesToCommit

주 복제본에서 커밋할 수 있어야 하는 동기 커밋 보조 복제본의 수입니다.

SYNCHRONOUS_COMMIT 보조 복제본이 일정 시간 동안 주 복제본과 연결이 끊어지면 주 복제본은 커밋 차단을 방지하기 위해 ASYNCHRONOUS_COMMIT 강등합니다. 주 복제본을 사용할 수 없게 되고 사용자가 이러한 보조 복제본 중 하나로 장애 조치(failover)하려는 경우 데이터 손실이 발생할 수 있습니다. RequiredSynchronizedSecondariesToCommit 설정하면 너무 많은 보조 복제본이 강등되는 경우 주 복제본이 커밋 차단을 시작하기 때문에 사용자가 데이터 손실을 방지할 수 있습니다.

이 설정의 기본값은 0입니다. 즉, 기본값은 커밋을 차단하지 않습니다. 이는 SQL Server 2017 이전의 동작과 동일합니다.

형식:Int32
Position:Named
Default value:0
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Script

이 cmdlet이 이 cmdlet이 수행하는 작업을 수행하는 Transact-SQL 스크립트를 반환한다는 것을 나타냅니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-TrustServerCertificate

신뢰의 유효성을 검사하기 위해 인증서 체인을 건너뛰는 동안 채널이 암호화되는지 여부를 나타냅니다.

모듈의 v22에서 기본값은 $true(v21과의 호환성을 위해)입니다. 모듈의 v23+에서 기본값은 '$false'이며, 이로 인해 기존 스크립트에 대한 호환성이 손상되는 변경이 발생할 수 있습니다.

이 매개 변수는 모듈의 v22에서 새로 생성됩니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-WhatIf

cmdlet이 실행되면 어떻게 되는지 보여 주세요. cmdlet이 실행되지 않습니다.

형식:SwitchParameter
별칭:wi
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

Microsoft.SqlServer.Management.Smo.AvailabilityGroup