백업 압축(SQL Server)

적용 대상:SQL Server

이 문서에서는 제한 사항, 압축 백업의 성능 장차, 백업 압축 구성 및 압축 비율을 포함하여 SQL Server 백업 압축에 대해 설명합니다. 백업 압축은 SQL Server 버전(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 개체 사용을 참조 하세요.

압축된 백업의 압축 비율 계산

백업의 압축 비율을 계산하려면 backupset 기록 테이블의 backup_sizecompressed_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)부터, MAXTRANSFERSIZE65536(64KB)보다 큰을 설정 시 압축 알고리즘이 사용됩니다. 이 알고리즘은 먼저 페이지를 해독하고 압축한 다음 다시 암호화하는 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를 사용하면 백업 작업에서 기본 백업 압축 사전 할당 알고리즘을 무시합니다. 이 추적 플래그는 압축된 백업에 실제로 필요한 크기만 할당하여 공간에 저장해야 하는 경우 유용합니다. 그러나 이 추적 플래그를 사용하면 약간의 성능 저하(백업 작업 기간이 증가할 수 있음)가 발생할 수 있습니다.

관련 작업

다음 단계

백업 개요(SQL Server)
추적 플래그(Transact-SQL)