가용성 그룹 온라인
이 모니터는 가용성 그룹의 온라인 또는 오프라인 상태를 확인합니다. 가용성 그룹의 클러스터 리소스가 오프라인 상태이거나 가용성 그룹에 주 복제본이 없는 경우 모니터가 비정상 상태이며 경고가 발생합니다. 가용성 그룹의 클러스터 리소스가 온라인 상태이고 가용성 그룹에 주 복제본이 있는 경우 모니터 상태가 정상입니다.
가용성 그룹이 오프라인 상태이고 가용성 그룹을 사용할 수 없습니다. 이 문제는 주 복제본을 호스트하는 서버 인스턴스의 오류로 인해 발생하거나 WSFC 가용성 그룹 리소스가 오프라인으로 설정되어 발생할 수 있습니다.
가용성 그룹이 자동 장애 조치(Failover) 모드로 구성되지 않았으며 주 복제본을 사용할 수 없게 되고 가용성 그룹에 있는 모든 복제본의 역할이 RESOLVING이 되는 경우
주 복제본 인스턴스 서비스가 다운되거나 응답하지 않는 경우
가용성 그룹에 클러스터와의 연결 문제가 있습니다.
가용성 그룹이 자동 장애 조치(Failover) 모드로 구성되었지만 자동 장애 조치가 오류 때문에 성공적으로 완료되지 않은 경우
자동 장애 조치(Failover) 중 대상 복제본에서 주 복제본 준비 상태 검사가 실패하고 새 주 복제본이 될 복제본이 없는 경우
클러스터의 가용성 그룹 리소스가 오프라인 상태가 되는 경우
종속 클러스터 리소스에 심각한 문제가 발생하여 오프라인 상태가 되며 종속 리소스가 온라인 상태가 될 때까지 가용성 그룹 리소스가 오프라인 상태인 경우
클러스터의 심각한 문제로 인해 가용성 그룹 리소스가 해제된 경우
가용성 그룹에 대해 자동, 수동 또는 강제 장애 조치(Failover)가 진행 중인 경우
주 복제본의 SQL Server 인스턴스가 다운된 경우 다시 시작하고 가용성 그룹이 정상 상태로 복구되는지 확인할 수 있습니다.
자동 장애 조치(Failover)가 실패한 것으로 보이면 복제본의 모든 데이터베이스가 이전에 알려진 주 복제본과 동기화되었는지 확인한 다음 주 복제본으로 장애 조치(Failover)를 수행할 수 있습니다. 동기화되지 않았으면 데이터 손실이 최소인 복제본을 선택하고 장애 조치 또는 강제 장애 조치로 복구합니다.
SQL Server 인스턴스가 정상으로 보이지만 클러스터의 리소스가 오프라인 상태인 경우 클러스터 관리자를 사용하여 클러스터 상태나 다른 문제를 확인할 수 있습니다. 클러스터 관리자 도구를 사용하여 가용성 그룹 리소스의 온라인 전환을 시도할 수 있습니다.
장애 조치(Failover)가 진행 중인 경우 완료될 때까지 기다립니다.
이름 | 설명 | 기본값 |
사용 | 워크플로 사용하거나 사용하지 않도록 설정합니다. | 예 |
알림 생성 | 워크플로에서 알림을 생성하는지 여부를 정의합니다. | 아니요 |
간격(초) | 워크플로를 실행하는 반복 시간 간격(초)입니다. | 900 |
동기화 시간 | 24시간 형식으로 지정된 동기화 시간입니다. 생략될 수 있습니다. |
|
시간 제한(초) | 여기서 지정한 시간 동안 워크플로가 실행된 후 워크플로가 닫히고 실패로 표시됩니다. | 300 |
데이터베이스 연결 시간 제한(초) | 워크플로는 지정된 기간 동안 데이터베이스에 액세스할 수 없으면 실패하며 이벤트를 등록합니다. | 15 |
Target | Microsoft.SQLServer.Linux.AvailabilityGroupHealth |
Parent Monitor | System.Health.AvailabilityState |
Category | AvailabilityHealth |
Enabled | True |
Alert Generate | False |
Alert Auto Resolve | True |
Monitor Type | Microsoft.SQLServer.Linux.MonitorType.AlwaysOnSystemPolicyWithSampling |
Remotable | True |
Accessibility | Public |
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.AvailabilityGroupHealth.AvailabilityGroupOnline" Accessibility="Public" Enabled="true" Target="SqlDiscL!Microsoft.SQLServer.Linux.AvailabilityGroupHealth" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.AlwaysOnSystemPolicyWithSampling" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="HealthState" HealthState="Success"/>
<OperationalState ID="Critical" MonitorTypeStateID="ErrorState" HealthState="Error"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<PolicyName>AlwaysOnAgOnlineStateHealthPolicy</PolicyName>
<BagKey>1-$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.AvailabilityGroupHealth"]/AvailabilityGroupName$</BagKey>
<NumSamples>2</NumSamples>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>