SQL Server/테스트 (+스크립트)
도메인 독립 AlwaysOn 구성 (AD 미조인)
공부하자!!
2021. 6. 27. 00:55
네트워크 설정 (공통)
- OS F/W 인바운드 규칙 추가
FQDN 변경 (공통)
- Suffix DNS : test.com 입력 후 하단 체크
- host 파일 변경 (Listener 미사용시)
- 아래와 같이 각 노드에 대한 ip 호스트명을 host 파일에 기입
- 아래와 같이 각 노드에 대한 ip 호스트명을 host 파일에 기입
- DNS 등록 (Listener 사용시 - 본 예는 Listener 구성)
- DNS 서버측에 도메인 존 등록 : test.com (실제 운영환경에서는 DNS 담당 SE에게 요청/ 기 존재 도메인 활용 가능성이 높음)
- 각 노드,클러스터,리스너 정보 등록
- 권한 설정
- 사용 권한 관리를 위한 Active Directory가 없으므로 기본 제공되지 않은 로컬 관리자 계정이 클러스터를 만들도록 수동으로 허용

- New-ItemProperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1
클러스터 설치
- 링크 참고 : 2021.06.26 - [SQL Server/테스트 (+스크립트)] - Alwayson 구성
- 상기 링크 내 아래 단계 진행
- 장애조치클러스터 구성 (공통)
클러스터 노드 구성 (주서버)
SQL Server 클러스터 기능 활성화 (공통) - 도메인 미조인 환경에서 '파일 공유 기반 쿼럼 구성' 불가
- 장애조치클러스터 구성 (공통)
- 결과
- 클러스터 구성
- 클러스터 구성
인증서 기반 Endpoint/로그인 계정 생성
- 구성도
- 스크립트
--주서버 마스터키 생성
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'StrongPasswd';
GO
--주서버 인증서 생성
CREATE CERTIFICATE PRIMARY_Cert
WITH SUBJECT = 'NODE1 Certificate';
GO
--주서버 인증서 백업
BACKUP CERTIFICATE PRIMARY_Cert
TO FILE = 'C:\share\PRIMARY_Cert.cert';
GO
--주서버 로그인 생성 (보조서버 접근 목적)
CREATE LOGIN AG_NODE2_login WITH PASSWORD = 'StrongPasswd';
GO
CREATE USER AG_NODE2_login FOR LOGIN AG_NODE2_login;
GO
--보조서버 마스터키 생성
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'StrongPasswd';
GO
--보조서버 인증서 생성
CREATE CERTIFICATE SECONDARY_Cert
WITH SUBJECT = 'NODE2 Certificate';
GO
--보조서버 인증서 백업
BACKUP CERTIFICATE SECONDARY_Cert
TO FILE = 'C:\share\SECONDARY_Cert.cert';
GO
--보조서버 로그인 생성 (주서버 접근 목적)
CREATE LOGIN AG_NODE1_login WITH PASSWORD = 'StrongPasswd';
GO
CREATE USER AG_NODE1_login FOR LOGIN AG_NODE1_login;
GO
-- 각서버내 인증서 복사
-- 인증서복원
--주서버
CREATE CERTIFICATE [SECONDARY_Cert]
AUTHORIZATION AG_NODE2_login
FROM FILE = 'C:\share\SECONDARY_Cert.cert'
--보조서버
CREATE CERTIFICATE [PRIMARY_Cert]
AUTHORIZATION AG_NODE1_login
FROM FILE = 'C:\share\PRIMARY_Cert.cert'
--ENDPOINT 생성
--주서버
CREATE ENDPOINT AG_Endpoint
STATE = STARTED
AS TCP (
LISTENER_PORT = 5022,
LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING (
AUTHENTICATION = CERTIFICATE PRIMARY_Cert,
ROLE = ALL
)
--보조서버
CREATE ENDPOINT AG_Endpoint
STATE = STARTED
AS TCP (
LISTENER_PORT = 5022,
LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING (
AUTHENTICATION = CERTIFICATE SECONDARY_Cert,
ROLE = ALL
)
--주서버
GRANT CONNECT ON ENDPOINT::AG_Endpoint TO AG_NODE2_login;
GO
--보조서버
GRANT CONNECT ON ENDPOINT::AG_Endpoint TO AG_NODE1_login;
GO
AG 그룹 구성
- 아래의 문제 가능성으로 AG 구성 마법사 이용 X
- 새가용성 그룹 생성
- 그룹명 지정, 데이터베이스 수준 상태 검색 체크, 복제본 추가 및 기타 항목 설정 후 확인


- AlwaysOn 그룹 내 가용성 복제본 - 'NODE2 가용성 그룹에 조인' 클릭

- TEST DB 생성 및 Full-TRN 백업 (in 주서버) 및 With Norecovery 복원 (in 보조 서버)
- 설명 생략

- 가용성 데이터베이스 추가
- 대상 DB 체크 / 조인만 선택 후 완료


- 수신기 추가
- 사전에 DNS에 등록한 정보를 할당


- 읽기 전용 라우팅 설정
- 읽기 전용 라우팅 URL 먼저 입력 및 저장 후 목록 입력


결과
- 상태 확인
- (순서대로) 클러스터 노드/리스너/AG 데이터베이스 상태 정상 확인

- 접근 테스트
- Failover 확인 (NODE1 --> NODE2)








