얼마전 서버에서 갑자기 SQL Server 가 느려지는 현상이 발생했다.
운영체제 Windows Server 2012 R2 Standard
DBMS: SQL Server 2014 Standard Edition
메모리: 8GB
별다른 이슈도 없었는데 갑작스럽게 DBMS가 느려진 것이다.
작업관리자에서 확인해 보니 sqlservr.exe 가 메모리 5GB 이상 사용하고 있고 전체 메모리 사용량도 90%에 육박했다.
연결된 응용프로그램이 쿼리 시간 초과 오류가 발생하여 정상적으로 응용프로그램을 사용할 수 없었다.
원인을 몰라 한참을 헤매다가 작업관리자를 유심히 살펴보니 sqlserver.exe 프로세스가 두 개 실행 중이고 메모리 사용이 5GB 인 것의 "사용자 이름"은 "MICROSOFT##WID~" 였다.
다른 하나의 사용자 이름은 일반적인 MSSQLSERVER 였다.
원인은 WID 즉 Windows Internal Database 윈도우즈 내부 데이터베이스가 문제였다.
WID를 이해하려면 먼저 WSUS 를 이해해야한다.
윈도우 서버 업데이트 서비스 WSUS (Windows Server Update Services) 는 로컬 네트워크에 속한 윈도우 업데이트를 빠르게 진행하기 위해 윈도우 업데이트를 마이크로소프트사에 업데이트 서버에 직접 접속하여 내려받는 것이 아니라 WSUS가 실행 중인 내부 윈도우즈 서버에서 업데이트를 내려받게 된다.
CDN 과 비슷하게 업데이트 서버를 분산한다고 이해하면 될 것 같다.
WSUS 사용하는 윈도우즈 서버는 내부 데이터베이스 WID(Windows Internal Database) 로 MS SQL Server 가 인베디드 형태로 자동 설치된다.
윈도우즈 서버를 처음 구성할 때 WSUS를 설치한 것이었다.
메모리 사용량이 늘은 것은 업데이트 이슈가 있어 서버가 많은 작업을 처리하고 있었던 것이다.
그래서 MS SQL Server 인스턴스가 두 개 실행 중이었던 것이고
하나는 일반적인 SQL Server 인스턴스 -> "사용자 이름" MSSQLSERVER
다른 하나는 WID 인스턴스 -> "사용자 이름" MICROSOFT##WID~
해결은 윈도우즈 서버에서 WSUS 서비스를 제거하고 재 부팅하여 한 개의 MS SQL Server 인스턴스만 실행하게 했다.
(관련링크)
http://eung-jin.blogspot.com/2015/01/windows-2012-r2-wsus.html
'SQL Server' 카테고리의 다른 글
다른 DB 특정 테이블 SELECT 권한 설정하기 (0) | 2019.06.07 |
---|---|
DB 백업시 압축하기 (0) | 2019.06.06 |
MSSQL 서버간 연결 (DB서버와 DB서버 연결 ) (0) | 2019.05.02 |
SSMS 갑자기 CPU 점유율 올라가고 응답없음 발생할 때 (0) | 2019.05.01 |
SQLCMD로 SQLLocaDB 연결하기 및 SQLCMD 사용법 (0) | 2019.04.23 |