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

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

SSMS – AlwaysOn Group Latency report

 

·         Version : SQL Server 2014 SP2 later, SSMS 17.4 later

 

SQL Server에서 AlwaysOn가용성에 대한 Latency 분석을 하려면 XEvent(확장이벤트)   Performance Counter(성능 모니터) 사용하여 데이터를 캡처하고 분석하는 과정이 필요했다이러한 작업은 설정에 많은 시간이 소요되었을 뿐만 아니라 XEvent 대한 광범위한 지식이 필요하였다.

 

SQL Server 관리도구인 SQL Server Management Studio (SSMS) 17.4 버전 부터는AlwaysOn 가용성 그룹에 대한 Latency 대시보드 기능이 추가되었다.   대시보드에서는 데이터베이스 관리자가 가용성 그룹  가용성 복제본  데이터베이스의 현재 상태를 확인하는데 사용할  있다대시보드에는 1 복제본과 2 복제본 간의 대기 시간(시간 계산은 Commit LSN, Sent LSN  값을 사용하여 계산) 대한 정보를 제공하고 있다이러한 대시보드 정보를 바탕으로 가용성 그룹의 기본 복제본과 보조 복제본간의 로그 전송 흐름에서 병목현상을 쉽고 빠르게 파악할  있다.

 

SSMS에서 AlwaysOn Latency  대한 데이터 수집 설정  보고서를 확인하는 방법에 대해서 살펴본다.

 

SSMS 17.4 이상의 버전을 실행한다. SSMS 대한 최신 버전 다운로드는 아래 링크를 참고 한다.

-          Download SSMS :  https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

 


 

Always On High Availability 항목에서 [Availability Groups] – [사용자 가용성 그룹]에서 마우스 오른쪽을 클릭하여 [Show Dashboard] 실행 한다.


 

대시보드가 실행되면 Collect Latency Data 클릭 한다 항목을 실행하면 데이터 수집을 위한 각종 기능이 백그라운드에서 진행되며 SQL Server Job 에이전트에 수집기 스케줄러가 등록된다.


 

데이터 수집 링크를 클릭하면 SSMS 가용성의 모든 복제본에 연결되어 데이터 수집 작업을 시작한다이때  복제본  보조 복제본의 SQL Server Agent 실행 중이어야 한다.


 

수집 기능 설정이 완료되면 아래와 같이 Job Agent 데이터 수집기 항목이 등록된 것을 확인할  있다.

 


 

스케줄러를 확인해보면 다양한  XEvent 등록된 것을   있다등록된 XEvent 실행하여  2 정도 데이터를 수집한다수집된 데이터는 TempDB AGInfo 테이블에 저장된다.


 

데이터 수집이 완료되면 Latency 대한 보고서를 확인한다이때  복제본 서버와 보조복제본 서버의 리포트를 따로 확인 한다.

Always On High Availability 그룹에서 마우스 오른쪽 버튼을 클릭하여 [Report] – [Standard Report] – [Primary Replica Latency]  실행한다.

 


 

 복제본의 Latency 보고서에는 3개의 섹션이 있다 번째 섹션에서는 AG 대한 복제본 정보를 제공한다.


 

 번째 섹션에서는주 복제본의 Commit  복제 시간의 평균을 시각적으로 제공한다.

 

세번째 섹션은 커밋에 사용된 시간,  원격 복제 시간압축시간  로그 블록의 전송 지속시간에 대한 값을 제공한다.

 


 

 

보조복제본 보고서에는 보조복제본에서만 소요된 시간을 제공한다.




 

 

-          Local Flush – 로그 블록을 LDF파일에 기록하는데 소요된 평균 시간 값은 Log_Flush_Start  Log_Flush_Complete_Extended 이벤트를 사용하여 계산된다.

-          Decompression - 1차로 로그블럭을 수신한뒤 압축해제에 소요된 시간. SQL Server 2016 이상에서는 비동기 복제본에 대한 로그 전송이 압축되는 동안 동기 보조복제본에 대한 로그 전송은 압축되지 않는다.

-          Receive – USC 계층에서 로그 블록을 수신하고 추가 처리를 위해 대기열에 대기하는데 소요되는 시간

-          Send – 확인 메지시를 SQL USC 계층으로 보내는데 소요된 시간여기에는 보조복제본에서 주복제본까지 소요된 시간이 포함되지 않는다.

 

가용성 그룹 대기시간 데이터 수집기능은sysadmin(Windows 인증 전용계정에서만 사용할  있으며 현재 사용자 계정은 모든 복제본의 인스턴스 관리자 계정이어야 한다.

 

데이터 수집 기능에 대한 제약사항은 아래와 같다.

1.       한번에 하나의 가용성 그룹에 대한 대기 시간 데이터를 수집하는데에만 사용할  있다.

2.       TempDB 저장되는 데이터는 테이블이름이 하드코딩되어 하나의 컬렉션만 실행할  있다.

3.       TempDB 저장되므로 SQL Server 재시작되면 이전 기록된 데이터 정보가 손실된다.

4.       로그인 계정이 서버관리자 계정이어도 SQL 인증 사용자 또는 로그인에 대해서 수집 기능을 사용할  없다.

5.       Windows 인증만 지원하므로 도메인간 트러스트 없는 도메인간 배포에서는 작동하지 않는다.

6.       분산된 가용성 그룹에서는  기능이 작동하지 않는다.

7.       SQL Server 2014 SP2 이상에서 동작한다.

 

 

[참고자료]

https://blogs.msdn.microsoft.com/sql_server_team/new-in-ssms-always-on-availability-group-latency-reports/

 

 

 

2018-01-19 / 강성욱 / http://sqlmvp.kr / http://sqlangeles.com

 

SQL Server, MS SQL, SSMS, Always On, 가용성 그룹, Latency Report, 복제 시간, commit time, High availability Group, AG,

No. Subject Author Date Views
2130 클러스터 컬럼스토어 인덱스(Clusterd Columnstore Index)에서 대량 인서트 작업시 발생하는 래치 경합 최소화 트릭 jevida(강성욱) 2019.03.25 348
2129 SQL Server 2016 향상된 복제 기능 – 배포 데이터베이스 클린업 향상 jevida(강성욱) 2019.03.25 287
2128 SQL Server 2017향상된 복제 기능 – 배포 데이터베이스의 AG 지원 jevida(강성욱) 2019.03.25 426
2127 SQL Server 2017 향상된 복제 기능 - 복제에이전트 프로필 매개변수의 동적 새로 고침 jevida(강성욱) 2019.03.25 482
2126 SQL Server update on Docker jevida(강성욱) 2019.03.25 371
2125 SQL Server 2017에서 향상된 UDF 실행 계획 jevida(강성욱) 2019.03.25 339
2124 ETL data error with MariaDB ODBC 3.0 (from Aurora to MS SQL) jevida(강성욱) 2019.03.25 486
2123 Run the SQL Server 2017 with Docker jevida(강성욱) 2019.03.25 422
2122 SQL Server Configuration Manager 실행 오류 (WMI 공급자 연결 오류) jevida(강성욱) 2019.03.25 445
2121 BULK INSERT 동시에 여러개 실행 향지 2019.01.30 769
2120 대용량 데이터 조인에 대한 고민 ( Hash Join VS Nested Loop Join ) 향지 2018.04.04 4226
2119 How to check if Azure SQL is using In-Memory jevida(강성욱) 2018.03.31 3225
2118 MSSQL-CLI를 활용한 크로스플랫폼에서 SQL Server 관리하기 jevida(강성욱) 2018.03.31 3526
2117 SSMS – Search for execution plan jevida(강성욱) 2018.03.31 3711
2116 SQL Server Parallelism and Wait change (CXAPCKET, CXCONSUMER) jevida(강성욱) 2018.03.31 3847
2115 SQL Server Statistics Update row sampling rate and histogram step jevida(강성욱) 2018.03.31 3574
» SSMS – AlwaysOn Group Latency report jevida(강성욱) 2018.03.31 3368
2113 SQL Server 백업 압축의 압축률 확인 jevida(강성욱) 2018.03.31 4072
2112 SQL Server 교착 상태 모니터링 (-T1222) jevida(강성욱) 2018.03.31 4101
2111 SQL Operations Studio - Linux, MAC에서 사용할 수 있는 SQL DBMS 툴 jevida(강성욱) 2018.03.31 3062





XE Login