백업 압축(SQL Server)
적용 대상: SQL Server
이 문서에서는 제한 사항, 백업 압축이 성능에 미치는 영향, 백업 압축의 구성 및 압축 비율을 비롯하여 SQL Server 백업의 압축에 대해 설명합니다. 백업 압축은 SQL Server editions 버전: Enterprise, Standard 및 Developer에서 지원됩니다. SQL Server 2008(10.0.x) 이상의 모든 버전은 압축된 백업을 복원할 수 있습니다.
이점
압축된 백업은 동일한 데이터의 압축되지 않은 백업보다 크기가 작기 때문에 일반적으로 백업을 압축하면 디바이스 입/출력(I/O)이 적게 필요합니다. 따라서 일반적으로 백업 속도가 크게 향상됩니다.
자세한 내용은 이 항목 뒷부분의 백업 압축이 성능에 미치는 영향을 참조하십시오.
제한 사항
압축된 백업에는 다음과 같은 제한 사항이 적용됩니다.
압축된 백업과 압축되지 않은 백업은 미디어 세트에 동시에 존재할 수 없습니다.
이전 버전의 SQL Server에서는 암호화된 백업을 읽을 수 없습니다.
NTbackups는 압축된 SQL Server 백업과 테이프를 공유할 수 없습니다.
백업 압축의 성능 영향
기본적으로 압축하면 CPU 사용량이 크게 늘어나고 압축 프로세스로 사용되는 추가 CPU는 동시 작업에 악영향을 줄 수 있습니다. 따라서 CPU 사용량이 리소스 관리자에 의해 제한되는 세션에서 우선 순위가 낮은 압축 백업을 만들 수 있습니다. 자세한 내용은 Resource Governor를 사용하여 백업 압축을 통해 CPU 사용량 제한(Transact-SQL)을 참조하세요.
SQL Server 2022(16.x)부터 통합 오프로드 및 가속을 사용하여 백업을 압축하고 백업에 대한 CPU 리소스를 오프로드할 수 있습니다.
백업 I/O 성능을 잘 파악하려면 다음과 같은 종류의 성능 카운터를 평가하여 디바이스에서 또는 디바이스에서 백업 I/O를 격리할 수 있습니다.
실제 디스크 카운터와 같은 Windows I/O 성능 카운터
SQLServer:Backup 디바이스 개체의 디바이스 처리량 바이트/초 카운터
SQLServer:Databases 개체의 Backup/복원 처리량/초 카운터
Windows 카운터에 대한 자세한 내용은 Windows 도움말을 참조하세요. SQL Server 카운터를 사용하는 방법에 대한 자세한 내용은 SQL Server 개체 사용을 참조 하세요.
압축 비율을 계산하려면 CompressedBackupSize 및 BackupSize를 사용합니다.
백업의 압축 비율을 계산하려면 backupset 기록 테이블의 backup_size 및 compressed_backup_size 열에서 백업의 값을 다음과 같이 사용합니다.
backup_size:compressed_backup_size
예를 들어 3:1 압축 비율은 디스크 공간을 약 66% 절약할 수 있음을 나타냅니다. 이러한 열을 쿼리하려면 다음 Transact-SQL 문을 사용할 수 있습니다.
SELECT backup_size/compressed_backup_size FROM msdb..backupset;
압축된 백업의 압축 비율은 압축된 데이터에 따라 달라집니다. 다양한 요인이 얻은 압축 비율에 영향을 미칠 수 있습니다. 주요 요인은 다음과 같습니다.
의 데이터 형식입니다.
문자 데이터는 다른 형식의 데이터보다 압축됩니다.
페이지의 행 간 데이터 일관성입니다.
일반적으로 필드에 동일한 값이 포함된 여러 행이 페이지에 포함된 경우 해당 값에 대해 상당한 압축이 발생할 수 있습니다. 반면 임의 데이터가 포함되거나 페이지당 하나의 큰 행만 포함된 데이터베이스의 경우 압축된 백업은 압축되지 않은 백업과 거의 같습니다.
데이터의 암호화 여부
암호화된 데이터는 암호화되지 않은 데이터보다 압축률이 크게 낮습니다. 예를 들어 데이터가 Always Encrypted를 사용하여 열 수준에서 암호화되거나 다른 애플리케이션 수준 암호화를 사용하여 암호화되는 경우 백업을 압축해도 크기가 크게 줄어들지 않을 수 있습니다.
투명한 데이터 암호화(TDE)로 암호화된 데이터베이스 압축과 관련된 자세한 내용은 TDE를 사용한 백업 압축을 참조하세요.
데이터베이스의 압축 여부
데이터베이스가 압축된 경우 백업을 압축하면 크기가 줄어들더라도 많이 줄어들지 않을 수 있습니다.
TDE를 사용하여 백업 압축
SQL Server 2016(13.x)부터, 65536(64KB)보다 큰 MAXTRANSFERSIZE
을 설정 시 압축 알고리즘이 사용됩니다. 이 알고리즘은 먼저 페이지를 해독하고 압축한 다음 다시 암호화하는 TDE(투명한 데이터 암호화)로 암호화된 데이터베이스에 최적화되어 있습니다. MAXTRANSFERSIZE
를 지정하지 않은 경우 또는 MAXTRANSFERSIZE = 65536
(64KB)을 사용하는 경우 TDE 암호화 데이터베이스를 통해 백업 압축을 수행하면 암호화된 페이지가 바로 압축되어 압축률이 좋지 않을 수 있습니다. 자세한 내용은 TDE 가능 데이터베이스의 백업 압축을 참조하세요.
SQL Server 2019 (15.x) CU5부터 더 이상 이 TDE를 사용하는 최적화된 압축 알고리즘을 사용하도록 MAXTRANSFERSIZE
를 설정할 필요가 없습니다. 백업 명령에 WITH COMPRESSION
이 지정되거나 백업 압축 기본값 서버 구성이 1로 설정되어 있으면 MAXTRANSFERSIZE
가 자동으로 128K로 증가하여 최적화된 알고리즘을 사용하도록 설정합니다. 백업 명령에 MAXTRANSFERSIZE
가 > 64K 값으로 지정되면 제공된 값이 적용됩니다. 즉, SQL Server는 자동으로 이 값을 줄이지 않고 늘리기만 합니다. MAXTRANSFERSIZE = 65536
을 사용하여 TDE 암호화 데이터베이스를 백업해야 하는 경우 WITH NO_COMPRESSION
를 지정하거나 백업 압축 기본값 서버 구성이 0으로 설정되어 있어야 합니다.
자세한 내용은 BACKUP(Transact-SQL)을 참조하세요.
백업 파일의 공간 할당
압축된 백업의 경우 최종 백업 파일의 크기는 데이터가 압축 가능한 정도에 따라 달라지며 백업 작업이 완료되기 전에 알 수 없습니다. 따라서 기본적으로 압축을 사용하여 데이터베이스를 백업할 때 데이터베이스 엔진은 백업 파일에 대한 사전 할당 알고리즘을 사용합니다. 이 알고리즘을 사용하면 백업 파일의 데이터베이스 크기에 대해 미리 정의된 백분율이 사전 할당됩니다. 백업 작업 중에 더 많은 공간이 필요한 경우 데이터베이스 엔진 파일이 증가합니다. 백업 작업의 마지막에 최종 크기가 할당된 공간보다 작으면 데이터베이스 엔진이 파일을 백업의 실제 최종 크기로 축소합니다.
백업 파일이 최종 크기에 도달하는 데 필요한 경우에만 확장되도록 하려면 추적 플래그 3042를 사용합니다. 추적 플래그 3042를 사용하면 백업 작업에서 기본 백업 압축 사전 할당 알고리즘을 무시합니다. 이 추적 플래그는 압축된 백업에 실제로 필요한 크기만 할당하여 공간에 저장해야 하는 경우 유용합니다. 이 추적 플래그를 사용하면 약간의 성능 저하가 발생할 수 있습니다(백업 작업 시간이 늘어날 수 있음).