확장이벤트(Server Audit 기능 포함)를 변경(ALTER)하거나 삭제(DROP)할 때(경험에 의하면 해당 시점에서 다른 이벤트를 시작할 때도) 해당 작업이 멈추(Hang)는 경우가 발생할 수도 있다는 이슈가 이전부터 있었습니다. 물론 FIX도 있었습니다.
이틀 전 제 노트북에서 테스트 중에 우연히 해당 이슈가 재현이 되었습니다(제 노트북이라 감사^^). 그래서 관련 기록을 캡처하고 요약하게 되었습니다. 해당 정보를 여러분과 공유하고자 글을 씁니다.
재현 상황
오류 검출을 위한 확장 이벤트 세션을 생성하고 자료를 확인한 뒤 세션을 중지할 때 멈춤(Hang)이 발생했습니다. 서버의 버전은SQL Server 2008R2 SP1입니다. 해당 시점에 아래와 같은 “PREEMPTIVE_XE_SESSONCOMMIT” 대기가 발생하기 시작했습니다.
그리로 나서 해당 세션을 Kill (아래 결과에서 첫 번째 행) 했을 때는 Kill이 되지 않고 PREEMPTIVE_XE_CALLBACKEXECUTE 대기가 발생했습니다.
해결 방안
확장이벤트 쪽에 경험이 가장 많은 외국의 한 SQL Server MVP 답변에 따르면 놔두면 결국엔 자동으로 해결된다고 합니다만…얼마나 기다려야 할지는 알 수 없는 것 같습니다^^;
개인 PC이므로 모니터링 결과상 다른 문제나 영향은 없는 것 같았습니다. 놔두면 해결된다고 하나 실제 서버에서는 담당자를 불안하게 만들 것 같습니다.
다행이 이 이슈는 FIX된 상태로 나옵니다. 아래 KB 자료에서 볼 수 있습니다.
해당 이슈를 제거하기 위해서는 SQL Server 서비스를 재시작해야 한다고 언급하고 있습니다^^;
그리고 FIX를 위해서는 아래 버전이 필요하다고 합니다.
- SQL Server 2008 SP2 + CU3
- SQL Server 2008 R2 SP1 + CU6
- SQL Server 2008 R2 SP2 + CU1
그러니 확장이벤트 (혹은 Server Audit) 기능을 사용하실 분은 해당 패치를 해 주시면 도움이 될 것 같습니다. 그리고 혹시 동일 증상이 재현이 되더라도 당황해 하지 마시고 서버에 영향이 없다면 충분히 기다려보셔도 될 것 같습니다.
도움이 되시길 바랍니다.