현상

MSSQL AlwaysOn 설정 이후 auto failover 혹은 manually failover 가 실패

에러 로그

“Failed to perform a manual failover of the availability group“…..“Failed to bring availability group <name> online. The operation timed out”……“41131”

해결

Event Viewer UI를 통한 확인

  1. Go to Event Viewer
  2. Expand Applications and Services Logs
  3. Expand Microsoft
  4. Expand Windows
  5. Expand Failover Clustering
The log file is stored in system32\winevt\Logs

PowerShell을 사용하여 Clustger Error Log 확인

Get-ClusterLog -Destination C:\temp

“The use does not have permission to perform this action. (297)” 문구 확인

권한 부여

GRANT ALTER ANY AVAILABILITY GROUP TO [NT AUTHORITY\SYSTEM];
GRANT CONNECT SQL TO [NT AUTHORITY\SYSTEM];
GRANT VIEW SERVER STATE TO [NT AUTHORITY\SYSTEM];

 

참고

https://geekshangout.com/unable-to-manually-failover-a-sql-availability-group/

 

현상 

Quorum 상태가 Online 으로 수정이 되지 않고 Fail로 유지

원인

쿼럼 서버 장비가 다운되거나 통신이 되지 않는 경우 발생 할 수 있음

수정

Fail 상태로 유지되는 쿼럼의 경우 일반적인 방법의 삭제(우 클릭 후 Remove)가 되지 않는 경우가 많음

이 경우 쿼럼 설정 창에서 쿼럼을 제거하고 다시 구성 진행

 

Failover Cluster Manager -> More Actions -> Configure Cluster Quorum Settings ...

3번째 매뉴의 'Select Quorum Witness'에서 'Do not configure a quorum witness'를 선택하여 쿼럼 삭제 후 재구성

현상

Windows Cluster 서비스 시작이 되지 않을때

에러 로그

The Cluster service cannot be started. An attempt to read configuration data from the Windows registry failed with error '2'. Please use the Failover Cluster Management snap-in to ensure that this machine is a member of a cluster. If you intend to add this machine to an existing cluster use the Add Node Wizard. Alternatively, if this machine has been configured as a member of a cluster, it will be necessary to restore the missing configuration data that is necessary for the Cluster Service to identify that it is a member of a cluster. Perform a System State Restore of this machine in order to restore the configuration data.

 Cluster Service 시작시 에러

해결

administration 권한으로 Cmd 오픈 후, 아래 명령어 실행하여 클러스터 초기화 진행

Cluster Node ServerName /ForceCleanup

아래 명령어로 클러스터 추가

Start-DatabaseAvailabilityGroup DAG1 -MailboxServer SiteA-Mbx1

해소되지 않는 경우 클러스터 신규 구성을 추천..

 

참고

http://www.lab365.in/2017/03/the-cluster-service-cannot-be-started.html

구성 시 주의점

  • Windows Cluster 용도 VIP 1ea, 리스너 용도 VIP 1 ea 필요함
  • 구성 장비의 IP는 Static IP로 설정
    • DHCP로 IP를 할당 받을 경우 Cluster 및 리스너 VIP를 설정 할 수 없음
  • 이중화 구성 장비 간 아래 PORT의 방화벽 오픈이 필요 ( 오픈해야 하는 PORT가 많으므로 보안 이슈 확인 후 장비 간 Any 오픈 )
    • MSSQL 실행 PORT : 1433(기본포트)
    • 클러스터 서비스 : 3343(TCP, UDP)
    • RPC : 135(TCP)
    • 클러스터 어드민 : 137(UDP)
    • 랜덤 포트 : 1024 ~ 65535, 49152 ~ 65535
  • 원할한 Failover를 위해 쿼럼 서버를 추가
    • 장비가 3 ea 이상인 경우도 쿼럼 서버를 추가하는것이 안전함.
  • Active와 Standby의 DB 데이터 저장 구조(mdf, ldf Path)가 같아야함
  • EnterPrise 버전만 여러개의 DB를 AlwaysOn 구성이 가능
    • Standard 버전은 하나의 DB만 AlwaysOn 구성이 가능
  • 안정적인 AlwaysOn 운영을 위해 클러스터 장비 간 Heartbeat Network 구성이 필요
  • Remote Registry Service 사용
  • 로컬 보안 설정의 ‘네트워크에서 이 컴퓨터로 엑세스’ 속성에 “Authenticated Users”가 포함되어야 함)
  • 클러스터 구성 시 스토리지를 공유해서 사용하지 않도록 설정
    • 스토리지 공유 : MSCS(Microsoft Cluster Service)방식 이중화
    • 스토리지 공유 하지 않음 : AlwaysOn 방식 이중화
  • AlwaysOn 구성 후, Alwayon Group의 OwnerNode와 클러스터 그룹의 OwnerNode 그룹이 일치 해야함
    • powerShell의 ‘get-Cluster-Group’ 명령어로 확인 가능
    • Node 이동은 Failover Clustering의 ‘추가 작업’ -> 코어 클러스터 리소스 이동 -> 노드 선택 메뉴로 변경 가능
  • 일반적으로 AlwaysOn 구성 시, 처리 속도는 20% ~ 30% 느려질 수 있음
    • 처리 지연이 발생하는 경우 mdf, ldf 모두 고성능 SSD로 변경하거나, 동기화 간 암호화 로직을 제거하는 방법이 있음.

참고 자료

[https://docs.entcloud.swisscom.com/guide/managed-services/managed-os/technical-description/windows-server-failover-cluster/#network]


to Top