반응형

checkpoint가 발생될 수 있는 조건이 갖추어 지면

자동으로 checkpoint가 발생하여 commit되지 않은 페이지가 disk에 모두 기록됩니다.

(checkpoint에 대한 자세한 내용은 BOL을 참조하세요.)

 

SQL Server 서비스의 shutdown시에도 checkpoint가 발생하게 되는대요.

비정상적인 종료로 인해 checkpoint가 발생하지 않은 경우는

다음 start up 시에 다음과 같은 복구과정을 거치게 됩니다.

    (1/3) - analyze

    (2/3) - rollforward

    (3/3) - rollback

 

2/3 또는 3/3 과정에 처리해야할 transaction이 많은 경우는

이 과정이 1시간 이상 소요되어 서비스에 지장을 초래할 수도 있으니

24*7 를 요하는 곳에서는 중요한 issue가 될 수도 있습니다.

 

따라서, checkpoint는 SQL Server의 중요한 activity중 하나입니다.

ERRORLOG를 통해서 이 checkpoint가 언제 발생하는지 확인이 가능합니다.

 

/*

    How to know when a checkpoint was occured

    2006-02-02

    Gi Whan Han

*/

 

--xp_readerrorlog undocumented extended procedure was used to read a errorlog

EXEC master..xp_readerrorlog

 

--make the checkpoint is logged to ERRORLOG

DBCC TRACEON (3502)

 

--execute checkpoint manually

checkpoint

-- 2006-02-02 14:06:40.64 spid53    DBCC TRACEON 3502, 서버 프로세스 ID(SPID) 53입니다.

-- 2006-02-02 14:07:48.27 spid53    Ckpt dbid 7 started (100000)

-- 2006-02-02 14:07:48.31 spid53    Ckpt dbid 7 phase 1 ended (100000)

-- 2006-02-02 14:07:48.42 spid53    Ckpt dbid 7 complete

 

--execute checkpoint manually

checkpoint

-- 2006-02-02 14:08:17.07 spid53    Ckpt dbid 7 started (100000)

-- 2006-02-02 14:08:17.10 spid53    Ckpt dbid 7 phase 1 ended (100000)

-- 2006-02-02 14:08:17.12 spid53    Ckpt dbid 7 complete

 

--make the checkpoint is not logged to ERRORLOG

DBCC TRACEOff (3502)

--2006-02-02 14:09:17.92 spid53    DBCC TRACEOFF 3502, 서버 프로세스 ID(SPID) 53입니다.

 

checkpoint

--No scripts were logged

반응형

+ Recent posts