트랜잭션 로그 파일의 크기 관리Manage the Size of the Transaction Log File

이 항목에서는 SQL ServerSQL Server 트랜잭션 로그 크기 모니터링, 트랜잭션 로그 축소, 트랜잭션 로그 파일에 추가 또는 파일 확장, tempdb 트랜잭션 로그 증가율 최적화, 트랜잭션 로그 파일 증가 제어 등을 수행하는 방법에 대해 설명합니다.This topic covers how to monitor SQL ServerSQL Server transaction log size, shrink the transaction log, add to or enlarge a transaction log file, optimize the tempdb transaction log growth rate, and control the growth of a transaction log file.

로그 공간 사용 모니터링 Monitor log space use

DBCC SQLPERF(LOGSPACE)를 사용하여 로그 공간 사용을 모니터링합니다.Monitor log space use by using DBCC SQLPERF (LOGSPACE). 이 명령은 현재 사용된 로그 공간 크기에 대한 정보를 반환하고 트랜잭션 로그 잘림을 수행해야 하는 시기를 나타냅니다.This command returns information about the amount of log space currently used, and indicates when the transaction log needs truncation. 자세한 내용은 DBCC SQLPERF Transact-SQL을 참조하세요.For more information, see DBCC SQLPERF Transact-SQL. 로그 파일의 현재 크기 및 최대 크기, 파일의 자동 증가 옵션에 대한 정보를 보기 위해 sys.database_files에서 해당 로그 파일의 size, max_sizegrowth 열을 사용할 수도 있습니다.For information about the current log file size, its maximum size, and the autogrow option for the file, you can also use the size, max_size, and growth columns for that log file in sys.database_files. 자세한 내용은 sys.database_files(Transact-SQL)를 참조하세요.For more information, see sys.database_files (Transact-SQL).

중요!Important! 로그 디스크가 오버로드되지 않도록 하세요.Avoid overloading the log disk!

로그 파일 크기 축소 Shrink log file size

실제 로그 파일의 크기를 줄이려면 로그 파일을 축소해야 합니다.To reduce the physical size of a physical log file, you must shrink the log file. 이는 트랜잭션 로그 파일에 사용되지 않은 공간이 포함되어 있는 경우에 유용합니다.This is useful when you know that a transaction log file contains unused space. 데이터베이스가 온라인 상태이고 하나 이상의 가상 로그 파일에 여유 공간이 있는 경우에만 로그 파일을 축소할 수 있습니다.You can shrink a log file only while the database is online, and at least one virtual log file is free. 경우에 따라 다음에 로그가 잘릴 때까지 로그를 축소하지 못할 수도 있습니다.In some cases, shrinking the log may not be possible until after the next log truncation.

참고

장기 실행 트랜잭션과 같이 오랜 시간 동안 가상 로그 파일을 활성 상태로 유지하는 요소가 있으면 로그 축소가 제한되거나 로그를 전혀 축소하지 못할 수 있습니다.Factors, such as a long-running transaction, that keep virtual log files active for an extended period can restrict log shrinkage or even prevent the log from shrinking at all. 로그 잘림을 지연시킬 수 있는 요소에 대한 자세한 내용은 트랜잭션 로그(SQL Server)를 참조하세요.For information about factors that can delay log truncation, see The Transaction Log (SQL Server).

로그 파일을 축소하면 논리 로그 부분이 포함되지 않은 하나 이상의 가상 로그 파일( 비활성 가상 로그 파일)이 제거됩니다.Shrinking a log file removes one or more virtual log files that hold no part of the logical log (that is, inactive virtual log files). 트랜잭션 로그 파일을 축소하면 비활성 가상 로그 파일이 로그 파일의 끝에서 제거되어 로그가 대략적인 대상 크기로 줍니다.When a transaction log file is shrunk, inactive virtual log files are removed from the end of the log file to reduce the log to approximately the target size.

로그 파일 축소(데이터베이스 파일의 축소 없이)Shrink a log file (without shrinking database files)

참고

로그 파일이 자동으로 축소되도록 설정할 수 있습니다.You can set log files to shrink automatically. 그러나 자동 축소는 사용하지 않는 것이 좋으며 autoshrink 데이터베이스 속성도 기본적으로 FALSE로 설정됩니다.However, we recommend against automatic shrinking, and the autoshrink database property is set to FALSE by default. autoshrink 를 TRUE로 설정하면 파일 공간의 25% 이상이 사용되지 않을 때만 자동 축소에 의해 파일 크기가 줄어듭니다.If autoshrink is set to TRUE, automatic shrinking reduces the size of a file only when more than 25 percent of its space is unused. 파일은 파일의 25%만 사용되지 않을 때의 크기 또는 파일의 원래 크기 중 더 큰 크기로 축소됩니다.The file is shrunk either to the size at which only 25 percent of the file is unused space or to the original size of the file, whichever is larger. 자동 축소 속성의 설정을 변경하는 방법은 옵션 페이지의 자동 축소 속성을 사용하는 데이터베이스의 속성 보기 또는 변경 또는 AUTO_SHRINK 옵션을 사용하는 ALTER DATABASE SET 옵션(Transact-SQL)을 참조하세요.For information about changing the setting of the autoshrink property, see View or Change the Properties of a Database—use the Auto Shrink property on the Options page—or ALTER DATABASE SET Options (Transact-SQL)—use the AUTO_SHRINK option.

로그 파일 추가 또는 확장 Add or enlarge a log file

디스크 공간이 충분한 경우 기존의 로그 파일을 확장하거나 일반적으로 다른 디스크에 있는 데이터베이스에 로그 파일을 추가하여 공간을 확보할 수 있습니다.You can gain space by enlarging the existing log file (if disk space permits) or by adding a log file to the database, typically on a different disk.

  • 데이터베이스에 로그 파일을 추가하려면 ALTER DATABASE 문의 ADD LOG FILE 절을 사용합니다.To add a log file to the database, use the ADD LOG FILE clause of the ALTER DATABASE statement. 로그 파일을 추가하면 로그가 확장될 수 있습니다.Adding a log file allows the log to grow.

  • 로그 파일을 확장하려면 SIZE 및 MAXSIZE 구문을 지정하여 ALTER DATABASE 문의 MODIFY FILE 절을 사용합니다.To enlarge the log file, use the MODIFY FILE clause of the ALTER DATABASE statement, specifying the SIZE and MAXSIZE syntax. 자세한 내용은 ALTER DATABASE(Transact-SQL)를 참조하세요.For more information, see ALTER DATABASE (Transact-SQL).

tempdb 트랜잭션 로그 크기 최적화 Optimize tempdb transaction log size

서버 인스턴스를 다시 시작하면 tempdb 데이터베이스의 트랜잭션 로그가 자동 증가 이전의 원래 크기로 다시 조정됩니다.Restarting a server instance resizes the transaction log of the tempdb database to its original, pre-autogrow size. 이 경우 tempdb 트랜잭션 로그의 성능이 저하될 수 있습니다.This can reduce the performance of the tempdb transaction log. 서버 인스턴스를 시작하거나 다시 시작한 후에 tempdb 트랜잭션 로그의 크기를 늘려 이 오버헤드를 방지할 수 있습니다.You can avoid this overhead by increasing the size of the tempdb transaction log after starting or restarting the server instance. 자세한 내용은 tempdb Database을(를) 참조하세요.For more information, see tempdb Database.

트랜잭션 로그 파일 증가 제어 Control transaction log file growth

ALTER DATABASE(Transact-SQL) 문을 사용하여 트랜잭션 로그 파일의 증가를 관리합니다.Use the ALTER DATABASE (Transact-SQL) statement to manage the growth of a transaction log file. 다음에 유의하세요.Note the following:

  • 현재 파일의 크기(KB, MB, GB 및 TB 단위)를 변경하려면 SIZE 옵션을 사용합니다.To change the current file size in KB, MB, GB, and TB units, use the SIZE option.
    • 증분을 변경하려면 FILEGROWTH 옵션을 사용합니다.To change the growth increment, use the FILEGROWTH option. 값 0은 자동 증가를 사용하지 않고 추가 공간을 허용하지 않음을 나타냅니다.A value of 0 indicates that automatic growth is set to off and no additional space is permitted. 로그 파일의 자동 증가분이 적어도 성능이 저하될 수 있습니다.A small autogrowth increment on a log file can reduce performance. 로그 파일의 파일 증가분이 충분히 커야 자주 확장하는 번거로움을 피할 수 있습니다.The file growth increment on a log file should be sufficiently large to avoid frequent expansion. 대개 기본 증가분인 10%가 알맞습니다.The default growth increment of 10 percent is generally suitable.

로그 파일의 파일 증가 속성을 변경하는 방법은 ALTER DATABASE(TRANSACT-SQL)를 참조하세요.For information on changing the file-growth property on a log file, see ALTER DATABASE (Transact-SQL).

  • 로그 파일의 최대 크기(KB, MB, GB 및 TB 단위)를 제어하거나 증가를 UNLIMITED로 설정하려면 MAXSIZE 옵션을 사용합니다.To control the maximum the size of a log file in KB, MB, GB, and TB units or to set growth to UNLIMITED, use the MAXSIZE option.

참고 항목See also

BACKUP(Transact-SQL) BACKUP (Transact-SQL)
꽉 찬 트랜잭션 로그 문제 해결(SQL Server 오류 9002)Troubleshoot a Full Transaction Log (SQL Server Error 9002)