백업 압축(SQL Server)Backup Compression (SQL Server)

이 항목에서는 제한 사항, 백업 압축이 성능에 미치는 영향, 백업 압축의 구성 및 압축 비율을 비롯하여 SQL ServerSQL Server 백업의 압축에 대해 설명합니다.This topic describes the compression of SQL ServerSQL Server backups, including restrictions, performance trade-off of compressing backups, the configuration of backup compression, and the compression ratio. 백업 압축은 SQL Server 2017SQL Server 2017 버전: Enterprise, Standard 및 Developer에서 지원됩니다.Backup compression is supported on SQL Server 2017SQL Server 2017 editions: Enterprise, Standard, and Developer. SQL Server 2008SQL Server 2008 이상의 모든 버전에서는 압축된 백업을 복원할 수 있습니다.Every edition of SQL Server 2008SQL Server 2008 and later can restore a compressed backup.

이점 Benefits

  • 압축된 백업은 동일한 데이터의 압축되지 않은 백업보다 작으므로 일반적으로 백업 압축에 필요한 장치 I/O가 더 적고 따라서 백업 속도가 크게 향상됩니다.Because a compressed backup is smaller than an uncompressed backup of the same data, compressing a backup typically requires less device I/O and therefore usually increases backup speed significantly.

    자세한 내용은 이 항목 뒷부분의 백업 압축이 성능에 미치는 영향을 참조하십시오.For more information, see Performance Impact of Compressing Backups, later in this topic.

제한 사항 Restrictions

다음은 압축된 백업에 적용되는 제한 사항입니다.The following restrictions apply to compressed backups:

  • 압축된 백업과 압축되지 않은 백업은 미디어 세트에 동시에 존재할 수 없습니다.Compressed and uncompressed backups cannot co-exist in a media set.

  • 이전 버전의 SQL ServerSQL Server 에서는 압축된 백업을 읽을 수 없습니다.Previous versions of SQL ServerSQL Server cannot read compressed backups.

  • NTbackup은 압축된 SQL ServerSQL Server 백업과 테이프를 공유할 수 없습니다.NTbackups cannot share a tape with compressed SQL ServerSQL Server backups.

백업 압축이 성능에 미치는 영향 Performance Impact of Compressing Backups

기본적으로 압축하면 CPU 사용량이 크게 늘어나고 압축 프로세스로 사용되는 추가 CPU는 동시 작업에 악영향을 줄 수 있습니다.By default, compression significantly increases CPU usage, and the additional CPU consumed by the compression process might adversely impact concurrent operations. 따라서 CPU 사용량이Resource Governor에 의해 제한되는 세션에서 우선 순위가 낮은 압축 백업을 만들 수 있습니다.Therefore, you might want to create low-priority compressed backups in a session whose CPU usage is limited byResource Governor. 자세한 내용은 이 항목 뒷부분의 Resource GovernoR을 사용하여 백업 압축을 통해 CPU 사용량 제한(Transact-SQL)에 의해 제한되는 세션에서 우선 순위가 낮은 압축 백업을 만들 수 있습니다.For more information, see Use Resource Governor to Limit CPU Usage by Backup Compression (Transact-SQL).

백업 I/O 성능을 손쉽게 확인하려면 다음과 같은 성능 카운터를 평가하여 백업 I/O를 장치로 격리하거나 장치에서 격리하면 됩니다.To obtain a good picture of your backup I/O performance, you can isolate the backup I/O to or from devices by evaluating the following sorts of performance counters:

  • 물리적 디스크 카운터 등의 Windows I/O 성능 카운터Windows I/O performance counters, such as the physical-disk counters

  • SQLServer:Backup Device 개체의 Device Throughput Bytes/sec 카운터The Device Throughput Bytes/sec counter of the SQLServer:Backup Device object

  • SQLServer:Databases 개체의 Backup/Restore Throughput/sec 카운터The Backup/Restore Throughput/sec counter of the SQLServer:Databases object

    Windows 카운터에 대한 자세한 내용은 Windows 도움말을 참조하십시오.For information about Windows counters, see Windows help. SQL Server 카운터로 작업하는 방법은 SQL Server 개체 사용을 참조하세요.For information about how to work with SQL Server counters, see Use SQL Server Objects.

압축된 백업의 압축 비율 계산 Calculate the Compression Ratio of a Compressed Backup

백업의 압축 비율을 계산하려면 backupset 기록 테이블의 backup_sizecompressed_backup_size 열에서 백업의 값을 다음과 같이 사용합니다.To calculate the compression ratio of a backup, use the values for the backup in the backup_size and compressed_backup_size columns of the backupset history table, as follows:

backup_size:compressed_backup_sizebackup_size:compressed_backup_size

예를 들어 3:1 압축 비율은 디스크 공간을 약 66% 절약할 수 있음을 나타냅니다.For example, a 3:1 compression ratio indicates that you are saving about 66% on disk space. 이러한 열에 대해 쿼리하려면 다음 Transact-SQL 문을 사용하면 됩니다.To query on these columns, you can use the following Transact-SQL statement:

SELECT backup_size/compressed_backup_size FROM msdb..backupset;  

압축된 백업의 압축 비율은 압축된 데이터에 따라 달라집니다.The compression ratio of a compressed backup depends on the data that has been compressed. 다양한 요소가 결과 압축 비율에 영향을 줄 수 있습니다.A variety of factors can impact the compression ratio obtained. 주요 요소는 다음과 같습니다.Major factors include:

  • 데이터의 형식입니다.The type of data.

    문자 데이터는 다른 형식의 데이터보다 압축률이 높습니다.Character data compresses more than other types of data.

  • 페이지의 행에 포함된 데이터의 일관성The consistency of the data among rows on a page.

    일반적으로 한 페이지에 필드의 값이 같은 행이 여러 개 있는 경우 이 값에 상당한 압축이 발생할 수 있습니다.Typically, if a page contains several rows in which a field contains the same value, significant compression might occur for that value. 반면 임의의 데이터가 들어 있거나 페이지당 하나의 큰 행만 들어 있는 데이터베이스의 경우 압축된 백업의 크기가 압축되지 않은 백업의 크기와 거의 같습니다.In contrast, for a database that contains random data or that contains only one large row per page, a compressed backup would be almost as large as an uncompressed backup.

  • 데이터의 암호화 여부Whether the data is encrypted.

    암호화된 데이터는 암호화되지 않은 데이터보다 압축률이 크게 낮습니다.Encrypted data compresses significantly less than equivalent unencrypted data. 투명한 데이터 암호화를 사용하여 전체 데이터베이스를 암호화할 경우 백업을 압축해도 크기가 별로 줄어들지 않거나 그대로일 수 있습니다.If transparent data encryption is used to encrypt an entire database, compressing backups might not reduce their size by much, if at all.

  • 데이터베이스의 압축 여부Whether the database is compressed.

    데이터베이스가 압축된 경우 백업을 압축하면 크기가 줄어들더라도 많이 줄어들지 않을 수 있습니다.If the database is compressed, compressing backups might not reduce their size by much, if at all.

백업 파일에 대한 공간 할당 Allocation of Space for the Backup File

압축된 백업에 대한 최종 백업 파일의 크기는 데이터의 압축 가능한 정도에 따라 달라지며, 백업 작업이 완료되기 전까지는 크기를 알 수 없습니다.For compressed backups, the size of the final backup file depends on how compressible the data is, and this is unknown before the backup operation finishes. 따라서 기본적으로 압축을 사용하여 데이터베이스를 백업할 때 데이터베이스 엔진은 백업 파일에 대한 사전 할당 알고리즘을 사용합니다.Therefore, by default, when backing up a database using compression, the Database Engine uses a pre-allocation algorithm for the backup file. 이 알고리즘을 사용하면 백업 파일의 데이터베이스 크기에 대해 미리 정의된 백분율이 사전 할당됩니다.This algorithm pre-allocates a predefined percentage of the size of the database for the backup file. 백업하는 동안 더 많은 공간이 필요한 경우 데이터베이스 엔진은 파일을 늘립니다.If more space is needed during the backup operation, the Database Engine grows the file. 백업 작업의 마지막에 최종 크기가 할당된 공간보다 작으면 데이터베이스 엔진이 파일을 백업의 실제 최종 크기로 축소합니다.If the final size is less than the allocated space, at the end of the backup operation, the Database Engine shrinks the file to the actual final size of the backup.

백업 파일을 최종 크기에 도달하는 데 필요한 만큼만 늘리도록 허용하려면 추적 플래그 3042를 사용합니다.To allow the backup file to grow only as needed to reach its final size, use trace flag 3042. 추적 플래그 3042를 사용하면 백업 작업에서 기본 백업 압축 사전 할당 알고리즘을 무시합니다.Trace flag 3042 causes the backup operation to bypass the default backup compression pre-allocation algorithm. 이 추적 플래그는 압축된 백업에 실제로 필요한 크기만 할당하여 공간에 저장해야 하는 경우 유용합니다.This trace flag is useful if you need to save on space by allocating only the actual size required for the compressed backup. 그러나 이 추적 플래그를 사용하면 약간의 성능 저하가 발생할 수 있습니다(백업 작업 시간이 늘어날 수 있음).However, using this trace flag might cause a slight performance penalty (a possible increase in the duration of the backup operation).

참고 항목See Also

백업 개요(SQL Server) Backup Overview (SQL Server)
추적 플래그(Transact-SQL) Trace Flags (Transact-SQL)