Microsoft On-Premise Server/Microsoft Server Solutions

SQL Always On 구성하기

o959 2024. 11. 12. 16:01
반응형

SQL Alwayson 구성하기

 

 

SQL의 이중화 방법중 하나인 Alwayson을 구성해보려고 해요

SQL Server의 인스턴스에서 데이터베이스 그룹의 장애 조치를 하는게 SQL Alwayson 이라고 해요

 

서버 구성 정보

 

용도 호스트이름 아이피주소
SQL 서버 (SQL 2022 설치) sql01.office365.kr 192.168.0.201
SQL 서버  (SQL 2022 설치) sql01.office365.kr 192.168.0.202
SQL 클러스터 서비스 용도 sql-clu.office365.kr 192.168.0.203
SQL Alwayson Listener 용도 listener.office365.kr 192.168.0.204

 

 

 

Failover Cluster 설치

 

SQL01/02 서버에 Failover Clustering 기능을 추가해주세요

 

 

 

SQL01 서버에서 Failover Cluster Manager 실행 후 Creat Cluster 클릭

 

 

 

SQL01, SQL02 서버 추가

 

 

유효성 구성 검사 하실분들은 Yes로 하고 진행해주세요

전 테스트 환경이라 No로 하고 진행하지 않았습니다

 

 

 

클러스터 이름과 IP를 지정해주세요

전 위에 표에 있던 아이피로 지정했어요

 

 

클러스터 생성 완료

 

클러스터 컴퓨터 개체가 자동으로 등록되고

DNS에서도 클러스터 서비스 IP가 자동으로 등록됩니다

 

 

 

 

 

 

SQL Alwayson 구성

 

SQL Alwayson 구성을 진행하려고 해요

SQL01서버에서 SSMS를 실행해주세요

 

 

테스트를 위해 임시로 Database를 testdb01~03까지 생성했고

Database내 테이블 및 Value를 채워줬어요

 

 

 

Sql Server Configuration Manager 실행 후 SQL Server 우클릭 Properties 클릭

 

 

Always On Availability Groups 탭에서 Enable Always 을 활성화 해주세요

SQL01, SQL02 서버 모두 진행해야 하며 활성화 진행 후 서비스를 재시작 해주세요

 

 

 

SSMS에서 New Availability Group Wizard 클릭

 

가용성 그룹 이름을 만들어주세요

Cluster Type은 Failover Cluster로 선택하고

Database Level Health Detection도 선택해주세요

해당 옵션은 인스턴스에 문제가 발생하는 경우 뿐만 아닌 데이터베이스에 문제가 발생할 때도

장애 조치를 진행한다고 해요

 

 

가용성 그룹에 Database를 추가하기전에 Full Backup을 진행해야 하네요..

 

 

 

그룹에 추가할 Database들에 대하여 Full Backup을 진행해주세요

 

 

 

Refresh를 클릭해보면 상태가 요구사항충족으로 변경이 되고

Database 3개를 가용성 그룹에 추가할 예정이므로 3개 전부다 클릭해주세요

 

 

 

추가 완료 후 초기 설정은 필요하신 대로 해주세요

 

 

 

Listener로 사용할 IP 및 DNS 이름을 넣어주세요

Listener는 가용성 그룹의 서비스 IP라고 생각하면 될 것 같아요

 

 

Secondary 서버에 자동으로 데이터베이스를 만들어주는 자동 시딩 옵션으로 진행할꺼에요

 

 

유효성 검사가 통과되고 가용성 그룹을 정상적으로 만들었어요

 

 

뭔가 구성이 제대로 안된 모습입니다..

 

 

각 SQL 서버에서 동일한 에러로그가 발생하고 있네요

 

 

 

-- SQL01 인스턴스
-- Endpoint 확인
SELECT * FROM sys.tcp_endpoints

-- 이벤트에 출력된 계정 추가
CREATE LOGIN [Office365\SQL02$] FROM WINDOWS

-- 해당 계정 권한 할당(endpoint 값 확인 후 변경)
GRANT CONNECT ON ENDPOINT::Hadr_endpoint TO [Office365\SQL02$]


-- SQL02 인스턴스
-- Endpoint 확인
SELECT * FROM sys.tcp_endpoints

-- 이벤트에 출력된 계정 추가
CREATE LOGIN [Office365\SQL01$] FROM WINDOWS

-- 해당 계정 권한 할당(endpoint 값 확인 후 변경)
GRANT CONNECT ON ENDPOINT::Hadr_endpoint TO [Office365\SQL01$]

 

써치결과.. 앤드포인트에 대한 권한 문제라고 판단되어

위 쿼리를 이용하여 이벤트가 발생하는 계정에 대하여 권한 할당을 해줬어요

 

 

 

 

이제 복제도 잘되고 정상 작동 하는걸로 보여요!

 

 

처음에 설정했던 Listener로도 SQL Instance에 접속 가능합니다!

반응형