설치 및 구성
사전 준비사항
- SQL Server 설치 / AD Join 및 SQL Server용 서비스 계정 생성
- 방화벽 Port 1433,5022 해제
- Cluster IP / AG Listner IP (AG수만큼 ) 할당
네트워크 설정 (공통)
- 네트워크 설정 > 고급 TCP/IP 설정
-
- DNS탭
- 주 DNS 접미사의 부모 접미사 추가 해제
- DNS에 이 연결의 주소를 등록 해제
- WINS
- NetBIOS over TCP/IP 사용 안함 체크
- IP설정 탭 (주서버만)
- 클러스터서비스용 IP를 주서버내 추가 (ex 192.168.109.155)
-
장애조치클러스터 구성 (공통)
- 서버관리자 > 기능 선택 > Failover Clustering 설치
클러스터 노드 구성 (주서버)
- 클러스터관리자 -> 클러스터 만들기 클릭
- 클러스터관리자 -> 클러스터 만들기 클릭
- 서버선택 탭 -> 서버 이름 입력 : 찾아보기 선택 후 대상 서버 검색 (ex node1.jyoh.com / node2.jyoh.com)
- 유효성 검사 진행 --> 완료시 마침 클릭
- 클러스터 관리 엑세스 지점 -> 클러스터 이름 및 IP 입력 (ex CLUSTER / 192.168.109.160)
- 다음 -> 완료
- 파일 공유 기반 쿼럼 구성 (주서버)
- AD서버 내 파일공유 디렉토리 설정 (ex : AD서버내 D:\Quorum_Share 디렉토리 공유)
- 클러스터 -> 추가작업 -> 클러스터 쿼럼 설정 구성 클릭
- 쿼럼 구성 옵션 선택 -> 고급 쿼럼 구성 -> 파일 공유 감시 구성 -> 파일공유경로 입력 (ex: \\AD\Quorum_Share )
- 결과화면
SQL Server 클러스터 기능 활성화 (공통)
- SQL Server 구성 관리자 -> SQL Server 서비스 -> SQL Server(MSSQLSERVER) ->속성 -> AlwaysOn 고가용성
- AlwaysOn 가용성 그룹 사용 클릭 -> SQL Server 서비스 재시작
Alwayson 가용성 그룹 생성 (주서버)
- AG 구성 대상 DB 생성 및 백업
- 가용성 그룹 생성
- AlwaysOn 고가용성 -> 가용성 그룹 -> 새 가용성 그룹 마법사 클릭 →이름지정
- 데이터베이스 수준 상태 검색 클릭 / DTC는 내부에서 사용하지 않아 별도 구성 X
- 데이터베이스선택-> AG 구성 DB 선택 (ex : AG1 : DW17 / AG2 : OLTP17,OLTP19
- 복제본 지정 (수신기 및 읽기전용라우팅 구성을 위한)
- 각 복제본/수신기/읽기전용라우팅에서 대상 선택 (수신기는 고유한 IP를 지정)
- 데이터 동기화 선택
- 자동 시딩 등 총 4개 방식 존재
- 최초 구성시 자동시딩이 용이/ 운영or 이관시 조인만 용이
- 자동 시딩 등 총 4개 방식 존재
- AlwaysOn 고가용성 -> 가용성 그룹 -> 새 가용성 그룹 마법사 클릭 →이름지정
구성 결과
스크립트
AG 그룹 생성
- Listener가 없는 수동 Failover 모드 AG
- 데이터 동기화 '조인만' 방식 - 사전에 보조노드내 Norecovery 모드 복원
USE [master]
GO
CREATE AVAILABILITY GROUP [AG2]
WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY,
DB_FAILOVER = OFF,
DTC_SUPPORT = NONE,
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0)
FOR DATABASE [DW19]
REPLICA ON N'NODE1' WITH (ENDPOINT_URL = N'TCP://node1.jyoh.com:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SEEDING_MODE = MANUAL, SECONDARY_ROLE(ALLOW_CONNECTIONS = READ_ONLY)),
N'NODE2' WITH (ENDPOINT_URL = N'TCP://node2.jyoh.com:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SEEDING_MODE = MANUAL, SECONDARY_ROLE(ALLOW_CONNECTIONS = READ_ONLY));
GO
:Connect node2
ALTER AVAILABILITY GROUP [AG2] JOIN;
GO
:Connect node2
ALTER DATABASE [DW17] SET HADR AVAILABILITY GROUP = [AG2];
GO
--기 구성된 AG2에 DB 추가
alter AVAILABILITY GROUP [ag2] add database [Monitor_DB22];
GO
추가
-
- 에러 ' ….주 복제본에 대한 연결이 활성화되어 있지 않습니다. 명령을 처리할 수 없습니다.' 발생시
- 본 케이스에서 node1/node2.jyoh.com 조회가 되지 않아 DNS 역/정방향 설정 후 정상 조회 확인
- 에러 ' ….주 복제본에 대한 연결이 활성화되어 있지 않습니다. 명령을 처리할 수 없습니다.' 발생시
- 일반적 연결 오류 케이스
- https://docs.microsoft.com/ko-kr/sql/database-engine/availability-groups/windows/troubleshoot-always-on-availability-groups-configuration-sql-server?view=sql-server-ver15
Alwayson Advanced vs. basic
- SQL Server 2016 권장 버전은 SP2 CU2이상
- Enhanced-Database Level Detection 기능이 해당 버전에서 도입
- 참고 URL
- Alwayson 기능 비교
Always on with advanced | Always on with basic | |
최대 구성 가능 Node | 최대 9개 복제본 구성 가능 동기 보조복제본 최대 2개 |
최대 2개의 복제본 구성 가능 (주 복제본 포함) |
Node 내 구성 가능 가용성그룹 (AG) | 제한 없음 | 제한 없음 |
가용성 그룹(AG) 내 구성 가능 DB | 제한 없음 | 1개 |
보조복제본 부하분산 | 백업 및 읽기전용 보조복제본(동기 보조복제본한하여) 지원 | 미지원 |
- Always on 구성시 필수 사항 (Basic과 Advanced 동일)
구분 | 내용 |
OS (서버) Level | Windows server 2012 이상 |
대상 노드가 도메인 컨트롤러일 경우 구성 불가 | |
각 서버가 WSFC (Windows Server Failover Clustering)의 노드로 구성 | |
Instance Level | 가용성 복제본을 호스팅하는 모든 인스턴스는 동일 SQL Server 계정 사용 |
가용성 복제본을 호스팅하는 모든 인스턴스는 동일 버전/데이터정렬 의 SQL Server 실행 |
'SQL Server > 테스트 (+스크립트)' 카테고리의 다른 글
도메인 독립 AlwaysOn 구성 (AD 미조인) (0) | 2021.06.27 |
---|---|
AlwaysOn with Basic 도입 방안 (0) | 2021.06.26 |
[테스트] SQL Server TRN 백업을 통한 데이터 변경 시점 파악 (0) | 2021.02.18 |
[테스트] SQL Server Linked Server 계정 PW 복호화 (0) | 2021.02.17 |
[테스트]SQL Server 손상된 MDF 복구 (데이터 유실 최소화) (2) | 2021.02.16 |