트랜잭션이 커밋되면 (COMMIT) 트랜잭션이 RAM의 트랜잭션 로그에 기록됩니다.
쿼리에서 요청한대로 페이지 나 데이터를 변경하기 전에 트랜잭션이 트랜잭션 로그에 기록됩니다. 이를 미리 쓰기 로깅 (WAL)이라고합니다. 페이지가 메모리에서 업데이트되는 동안 SQL Server가 중단되면 WAL은 DB 엔진이 트랜잭션 로그를 읽고 트랜잭션을 롤백 할 수 있도록합니다. RDBMS의 ACID 특성입니다.
CHECKPOINT가 발생하면 (일부 시간 및 / 또는 일부 트랜잭션 및 기타 기준 후) 마지막 CHECKPOINT와 현재 간의 트랜잭션이 디스크에 기록됩니다.
검사 점은 더티 페이지를 버퍼에서 디스크로 플러시합니다. tempdb의 경우 조금 다르게 동작 합니다 . 더티 페이지는 디스크에서 읽은 후 변경된 페이지입니다. 이 검사 점 프로세스는 트랜잭션이 커밋 된 시점까지 트랜잭션 로그에 표시를 만듭니다. 장애 발생 후 복구는 해당 표시까지의 모든 트랜잭션이 커밋되었음을 알 수 있습니다. TSQL 명령으로 체크 포인트를 수동으로 발행 할 수 있습니다.
백업 로그가 발생하면 데이터가 MDF 파일에 기록됩니다.
아니요, 백업 로그가 발생하면 SQL Server는 트랜잭션 로그 정보를 데이터베이스 로그 파일에서 백업을 작성중인 디스크로 복사합니다. 백업 작업은 디스크에서 데이터를 읽고 디스크에 데이터를 씁니다.
아래 링크를 읽고 싶습니다
Mark가 지적한 SQL Server의 로깅 및 복구 이해
SQL Server 2008 내부 및 문제 해결 설명서
트랜잭션 로그 아키텍처 및 관리