데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

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

페이지 또는 할당 손상

https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-605-database-engine-error?view=sql-server-2017

823

검사점 실패

https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-823-database-engine-error?view=sql-server-2017

829

디스크 손상

 

832

하드웨어 또는 메모리 손상

 

1101

파일 그룹에 사용가능한 디스크공간 부족

https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-1101-database-engine-error?view=sql-server-2017

1105

파일 그룹에 사용 가능한 디스크공간부족

https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-1105-database-engine-error?view=sql-server-2017

5102

누락된 파일 그룹 ID 요청

 

5108

잘못된 파일 ID 요청

 

5515

 

https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-5515-database-engine-error?view=sql-server-2017

5534

FILESTREAM 작업 로그 레코드로 인해 로그가 손상됨

 

5535

FILESTREAM 데이터 컨테이너가손상됨

 

9004

로그 손상

https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-9004-database-engine-error?view=sql-server-2017

 

 

 

 

2018-08-27 / Sungwook Kang / http://sqlmvp.kr

 

SQL Server, MSSQL, AlwaysOn, SQL Failover, SQL Server Availability Group, 가용성 그룹, SQL 가용성 그룹장애조치향상된 가용성 그룹



출처: https://sqlmvp.tistory.com/1267?category=618825 [Database Lab]
No. Subject Author Date Views
2150 SQL Server 2019 에서 업그레이드된sp_estimate_data_compression_savings 프로시저 (컬럼스토어 압축율 예상) jevida(강성욱) 2019.03.26 534
2149 SQL Server 2019 에서 추가된sys.dm_db_page_info, sys.fn_PageResCracker 기능으로 대기 관련 정보 확인 jevida(강성욱) 2019.03.26 791
2148 SQL Server 2019에서 향상된 Rowstore batch mode jevida(강성욱) 2019.03.26 423
2147 SQL Server 2016부터 도입된 USE HINT를 사용한 추적 플래그 활성화 jevida(강성욱) 2019.03.26 444
2146 In-memory optimized table에 사용되는 Hash Index jevida(강성욱) 2019.03.26 390
2145 VM환경에서 AG를 구성하였을때VSS 백업 동작 변경 jevida(강성욱) 2019.03.25 396
» SQL Server 2016 향상된 가용성 그룹 – 데이터베이스 수준의 상태 탐지 장애조치 jevida(강성욱) 2019.03.25 423
2143 SQL Server 2016 대용량 데이터 로드시 최소 로깅(minimal logging) 과Batch Size jevida(강성욱) 2019.03.25 313
2142 SQL Server 설치시 발생하는 1638 오류 jevida(강성욱) 2019.03.25 412
2141 SQL Server 666코드의 고유 식별자 오류 jevida(강성욱) 2019.03.25 294
2140 SQL Server AlwaysOn synchronous-commit 환경에서 동기화 레이턴시 트러블슈팅 jevida(강성욱) 2019.03.25 351
2139 SQL Server Scheduling and Yielding 트러블슈팅 jevida(강성욱) 2019.03.25 359
2138 SQL Server 2016 Tempdb 경합(contention) 최적화 jevida(강성욱) 2019.03.25 446
2137 XEvent를 사용하여 Auto tuning 작업 모니터링 jevida(강성욱) 2019.03.25 454
2136 SQL Server In-Memory OLTP에 ASP.NET 세션 상태 저장하기 jevida(강성욱) 2019.03.25 353
2135 SQL Server에서 JSON 데이터 저장하기 jevida(강성욱) 2019.03.25 426
2134 Azure SQL에서 네트워크를 구성하는 방법 jevida(강성욱) 2019.03.25 231
2133 SQL Server 네이티브 컴파일된 저장 프로시저 성능 모니터링 jevida(강성욱) 2019.03.25 447
2132 SQL Server 2017 소규모 시스템에서 향상된 리소스 사용 jevida(강성욱) 2019.03.25 259
2131 클러스터 컬럼스토어 인덱스(Clusterd Columnstore Index)에서 대량 인서트 작업시 발생하는 래치 경합 최소화 트릭 jevida(강성욱) 2019.03.25 402





XE Login