로그 파일이 많으면 왜 안 좋은가

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

 

SQL Server에서 발생하는 트랜잭션은 트랜잭션 로그 라는 로그 파일에 기록 된다. 기본 설정으로 SQL Server를 설치 하였다면 확장자는 ldf로 표시 되며 하나의 로그 파일이 생성된다.

 

트랜잭션 로그 파일은 순환 파일이다. 한 개의 물리 파일에 4개의 가상 로그 파일이 있다고 가정 하였을 때 데이터베이스가 생성될 때 물리 로그파일의 시작 부분에서 논리로그 파일이 시작 된다. 새 로그레코드는 논리 로그의 끝 부분에 추가되며 물리 로그의 끝 방향으로 확장 된다. 로그에 물리 로그 파일이 여러 개 있으면 논리 로그는 모든 물리로그 파일을 거친 후 첫 번째 물리로그 파일의 시작 부분으로 순환된다.

 

다음 스크립트는 데이터베이스의 로그파일의 개수를 확인 하는 스크립트이다.

SELECT

DISTINCT [LogFiles],

COUNT (*) AS [Databases]

FROM (

SELECT

COUNT (*) AS [LogFiles]

FROM sys.master_files

WHERE [type_desc] = N'LOG'

GROUP BY [database_id]) [LogFilesCounts]

GROUP BY [LogFiles];

GO

 

로그파일이 많으면 왜 좋지 않을까? 로그파일이 많으면 재해 복구 중에 더 오랜 시간이 걸릴 수 있다. 데이터베이스를 복원을 할 때 로그 파일이 존재 하지 않는 경우 새로운 로그 파일 생성과 함께 0으로 초기화 하는 작업이 진행 된다. 로그 파일이 2개 이상인 경우 첫 번째 로그파일을 초기화하고 두 번째 로그 파일 또한 초기화 작업이 진행 되기 때문에 다운타임이 증가한다.

 

위에서 설명 하였듯이 로그 파일은 순환이다. 따라서 다중 로그 파일을 파일을 사용하는것은 성능상 큰 이점은 없다고 할 수 있다.

 

다만 가상 로그파일에 따란 성능 이슈는 있으므로 다음 포스트를 참고 한다.

 

 

[참고자료]

http://www.sqlskills.com/blogs/paul/multiple-log-files-and-why-theyre-bad/

 



강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 32241
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 16380
1934 확장이벤트를 사용하여 데드락 정보 확인 jevida(강성욱) 2016.10.15 1658
1933 확장 이벤트를 사용한 CPU 고부하 쿼리 추적 [1] jevida(강성욱) 2016.10.15 2215
1932 데이터에 대한 이해와 spill in tempdb jevida(강성욱) 2016.10.13 1815
» 로그 파일이 많으면 왜 안 좋은가 jevida(강성욱) 2016.10.13 2118
1930 트랜잭션 백업 실패와 전체 백업 성공 그리고 대처 방안 jevida(강성욱) 2016.10.13 1618
1929 Fast recovery 와 로그 잠금 jevida(강성욱) 2016.10.13 2070
1928 고스트 클린업 jevida(강성욱) 2016.10.13 2345
1927 페이지 분할이 발생 하였을 때 롤백을 하면 어떻게 될까? jevida(강성욱) 2016.10.13 1709
1926 DBCC WRITEPAGE - DBCC 명령을 사용한 데이터 파괴하기 jevida(강성욱) 2016.10.13 1691
1925 SQL Server Backup Error 3023 jevida(강성욱) 2016.10.13 2442
1924 Delete 작업과 페이지 offset 변화 jevida(강성욱) 2016.10.13 1544
1923 트랜잭션 로그 및 LSN을 이용한 삭제된 데이터 복구 jevida(강성욱) 2016.10.13 5824
1922 PFX 형식의 인증서를 SQL Server에서 사용하기 jevida(강성욱) 2016.10.13 1211
1921 SQL Server NUMA 메모리 노드와 Operating System 접근 jevida(강성욱) 2016.10.13 1368
1920 SQL Server 에러 핸들링 비용 비교 jevida(강성욱) 2016.10.13 1357
1919 압축 백업 시 Checksum 옵션으로 손상 확인하기 jevida(강성욱) 2016.10.13 1750
1918 SQL Server 2012 Memory Manager 구성 jevida(강성욱) 2016.10.13 1300
1917 SQL Server Memory Manager 변화 jevida(강성욱) 2016.10.13 1560
1916 Ring_Buffer_Resource_Monitor jevida(강성욱) 2016.10.13 1092
1915 SQL Server 프로파일러 템플릿 만들기 jevida(강성욱) 2016.10.13 1423





XE Login