DBAtlas · 데이터베이스 운영 아틀라스

SQL Server Always On Availability Group (Linux, Pacemaker)

SQL Server난이도: 고급소요 시간: 120–180분

SQL Server 2022가 설치된 Linux 서버 3대(RHEL 9 또는 Ubuntu 22.04)로 Pacemaker가 관리하는 Always On AG를 구성합니다: mssql-server-ha, hadr.hadrenabled, 인증서로 인증하는 mirroring endpoint, CLUSTER_TYPE = EXTERNAL AG(동기 replica 3개 또는 동기 2개 + configuration-only), automatic seeding, pacemaker/corosync/pcs cluster, fencing(STONITH), ocf:mssql:ag 리소스, listener IP 리소스와 constraint, listener 및 계획된 failover 테스트. 완료하면 primary 장애 시 Pacemaker가 자동 failover를 수행하고 listener IP가 primary와 함께 이동하는 AG를 갖게 됩니다.

먼저 각 node를 SQL Server Linux 설치로 설치합니다. Windows와 WSFC는 Always On AG (Windows), 구성된 AG의 일상 운영과 장애 대응은 AG 운영을 참고합니다.

구성: Linux node 3대: 동기 replica 3개 또는 동기 2개 + configuration-only replica

시작하기 전에

  • 세 node에 SQL Server 2022가 같은 버전과 CU로 설치되어 있고(Linux 설치)…, configuration-only node는 Express여도 되며…, …은 sysadmin입니다. 비밀번호: read -rsp '비밀번호: ' SQLCMDPASSWORD; export SQLCMDPASSWORD 후 sudo --preserve-env=SQLCMDPASSWORD bash <script>.sh.
  • 각 node에서 hostname 출력과 SQL Server의 @@SERVERNAME이 정확히 같고 node 목록의 이름과 일치합니다. 일치하지 않으면 Pacemaker 리소스가 replica를 찾지 못합니다(RESOLVING).
  • Node끼리 이름으로 서로를 해석하며(DNS 또는 /etc/hosts) 다음 포트가 열려 있습니다: SQL …/tcp, endpoint …/tcp, Pacemaker 2224/tcp, 3121/tcp, 5403/tcp, 21064/tcp, 5404–5405/udp. Listener IP(…)는 사용 중이 아닙니다.
  • 각 node에서 RHEL 구독과 High Availability Add-On이 활성화되어 있습니다(rhel-9-for-x86_64-highavailability-rpms repo).
  • Node의 시각이 NTP로 맞춰져 있습니다(chronyd / systemd-timesyncd). corosync와 인증서는 시각 차이에 민감합니다.
  • …각 node의 BMC(iLO/iDRAC/IPMI) 주소에 node에서 접근할 수 있고, fencing 사용자에게 전원 끄기/켜기 권한이 있습니다.…Node에서 vCenter(…)에 443/tcp로 접근할 수 있고, fencing 계정에 이 VM들의 전원 작업 권한이 있습니다.… Red Hat은 지원되는 fencing 방식만 지원합니다(같은 가상화 플랫폼).
  • 비밀번호가 준비되어 금고에 보관되어 있습니다: SQL master key, 인증서 private key 백업, … login, hacluster 사용자…, fencing 계정…. 단계는 비밀번호를 화면에 표시하지 않고 입력받습니다.
  • 유지보수 시간: SQL Server 서비스가 한 번 재시작되고(hadr.hadrenabled), failover 테스트로 listener가 몇 초간 끊깁니다.

가이드 단계

  • Node 준비 — Node 이름을 hosts 파일에 추가 · Firewall에서 SQL, endpoint, Pacemaker 포트 열기
  • SQL Server: HA 에이전트, Always On, endpoint — SQL Server HA 에이전트 설치 (mssql-server-ha) · Always On 활성화 및 SQL Server 재시작 · AlwaysOn_health 세션을 기동 시 시작 · Pacemaker용 SQL Server login과 비밀번호 파일 생성 · Endpoint 인증서 생성 및 백업 (node 1) · 인증서 파일을 다른 node로 복사 (node 1) …
  • Availability Group (CLUSTER_TYPE = EXTERNAL) — AG 생성 (node 1) · Secondary를 AG에 조인: … · 데이터베이스를 FULL recovery로 전환, 백업 후 AG에 추가 (node 1) · Automatic seeding과 동기화 모니터링 (node 1)
  • Pacemaker cluster — Pacemaker, corosync, pcs 설치 · hacluster 비밀번호 설정 및 pcsd 시작 · Ubuntu 기본 cluster 구성 정리 · Cluster 생성 및 시작 (node 1) · Fencing(STONITH) 구성 (node 1) · Cluster 속성 설정 (node 1) …
  • Listener — Listener 생성 (node 1) · Listener를 통한 연결 테스트
  • 검증 및 failover 테스트 — AG 상태 점검 · 계획된 failover 테스트: …를 primary로 · 되돌리기: …을 다시 primary로
  • 설치 후 작업 — Login, job, 서버 개체 동기화 · 백업과 모니터링 구성
내 환경에 맞춘 단계별 계획 열기 →