SQL Server 2016 향상된 가용성 그룹 – 데이터베이스 수준의 상태 탐지 장애조치
· Version : SQL Server 2016, SQL Server 2017
SQL Server2016에서 도입된 가용성 그룹(Availability Group)에 대한 데이터베이스 수준 상태 탐지 장애 조치 (Database Level Failover) 옵션은 가용성 그룹에 있는 하나 이상의 데이터베이스에 문제가 있을 경우 가용성 그룹에 장애 조치 메커니즘을 실행시키기 위해 도입되었다. 이 기능을 사용하면 데이터베이스의 고가용성을 보장할 수 있으며 업무상 중요한 데이터베이스가 있는 모든 가용성 그룹에 권장되는 최상의 방법이다.
데이터베이스 수준 상태 탐지 장애조치의 초기 구현에서는 가용성 그룹의 주 복제본에서 다음 조건을 검사 하도록 설계 되었다.
· DB Status는 온라인 상태인가?
· 데이터베이스의 트랜잭션 로그 파일에 트랜잭션 쓰기를 사용할 수 있는가?
위 두 조건중 하나라도 true가 아닌 경우 데이터베이스를 호스팅하는 가용성 그룹은 사용 가능한 동기(동기화) 보조 노드 중 하나에 장애조치가 된다.
과거에는 사용자가 하드웨어 문제 때문에 발생하는 오류와 같은 추가 검사를 진행하였으나 최신 서비스 릴리즈에서는 데이터베이스 수준의 상태 확인 검사의 일부로 포함될수 있다. SQL Server의 최신 서비스 릴리스는 아래 링크를 참고한다.
· SQL2017RTM CU9
https://support.microsoft.com/en-us/help/4341265/cumulative-update-9-for-sql-server-2017
· SQL2016SP1 CU10
https://support.microsoft.com/en-us/help/4341569/cumulative-update-10-for-sql-server-2016-sp1
· SQL2016SP2 CU2
https://support.microsoft.com/en-us/help/4340355/cumulative-update-2-for-sql-server-2016-sp2
만약 릴리즈 적용이후 이전 상태로 되돌릴경우 사용자는 TF9576을 시작 매개변수로 사용하거나 DBCC TRACEON 명령을 사용한다. 글을 쓰는 현재 시점에는 윈도우에서만 가능하지만 추후 Linux 버전의 SQL Server 2017에도 적용될 예정이다.
기존 검사외에 새로운 구현에는 다음과 같은 추가 검사가 있다.
1. 데이터베이스 상태 정보를 스냅샷으로 저장하고 사용하여 AG가 오류 상태로 표시되어야 하는지 여부를 결정한다. 상태 검사 루틴은 데이터베이스 상태 및 관련 오류 정보를 마지막 세 번의 실행 결과를 캐시한 다음 현재 상태 검사 루틴의 실행 상태 정보와 비교한다. 상태 탐지 루틴의 네 번의 연속 실행중에 동일한 오류 조건(아래 언급된 오류코드)이 존재하면 장애조치가 시작된다.
2. 아래 목록의 추가 오류를 확인한다. 이러한 오류의 대부분은 서버의 하드웨어 문제를 나타낸다. 아래 목록이 데이터베이스 가용성에 영향을 줄 수 있는 모든 오류 목록은 아니다.
Error |
Cause |
Documentation |
605 |
페이지 또는 할당 손상 |
|
823 |
검사점 실패 |
|
829 |
디스크 손상 |
|
832 |
하드웨어 또는 메모리 손상 |
|
1101 |
파일 그룹에 사용가능한 디스크 공간 부족 |
|
1105 |
파일 그룹에 사용 가능한 디스크 공간부족 |
|
5102 |
누락된 파일 그룹 ID 요청 |
|
5108 |
잘못된 파일 ID 요청 |
|
5515 |
|
|
5534 |
FILESTREAM 작업 로그 레코드로 인해 로그가 손상됨 |
|
5535 |
FILESTREAM 데이터 컨테이너가 손상됨 |
|
9004 |
로그 손상 |
2018-08-27 / Sungwook Kang / http://sqlmvp.kr
SQL Server, MSSQL, AlwaysOn, SQL Failover, SQL Server Availability Group, 가용성 그룹, SQL 가용성 그룹, 장애조치, 향상된 가용성 그룹
'SQL Server > SQL Server Tip' 카테고리의 다른 글
In-memory optimized table에 사용되는 Hash Index (0) | 2019.03.26 |
---|---|
VM환경에서 AG를 구성하였을때VSS 백업 동작 변경 (0) | 2019.03.25 |
SQL Server 2016 대용량 데이터 로드시 최소 로깅(minimal logging) 과Batch Size (0) | 2019.03.25 |
SQL Server 설치시 발생하는 1638 오류 (0) | 2019.03.25 |
SQL Server 666코드의 고유 식별자 오류 (0) | 2019.03.25 |