SQL Server 의 압축백업 방법
SQL Server 2008 버전부터 압축백업이 지원됩니다.
압축된 백업은 압축되지 않은 백업보다 작기 때문에, I/O 에 대한 비용이 절약되며 백업속도가 크게 향상됩니다.
다만 압축을 하기위해 CPU 오버헤드가 발생합니다.
반면 압축을 하지 않는다면 CPU 오버헤드는 발생하지 않지만 I/O 가 훨씬 많이 발생하게 될 것입니다.
그렇지만 I/O 와 CPU 의 부하 비교했을 때, CPU 의 오버헤드가 발생하는 부분이 훨씬 효율적입니다.
압축백업의 이점
압축된 백업에 대한 최종 백업 파일의 크기는 데이터를 어느정도나 압축할 수 있는지에 따라 달라집니다.
테스트했을 때 대략적으로는 원본백업파일의 80% 크기 정도를 생각하면 좋습니다.
참고로 이 80% 도 데이터 유형에 따라 달라질 수 있으므로, 기준치를 80% 으로 잡는건 옳지는 않습니다.
압축백업의 약점
이 말은, 백업작업이 최종적으로 완료되기 전까지는 백업파일크기를 알 수 없다는 점입니다.
기본적으로 압축백업을 할 때, SQL Server 엔진에서 백업파일에 대한 사전크기 할당 알고리즘을 적용합니다.
사전 할당 알고리즘은 미리 정의된 백분율로 파일크기를 먼저 할당해놓습니다.
그러고 난 후 작업도중 더 많은 공간이 필요한 경우 파일 크기를 늘려나가게 되며,
작업이 완료되었을 때 최종크기가 할당한 공간보다 작으면 파일 크기를 축소합니다.
즉, 사전 할당 알고리즘에 의에 더 많은 파일 공간이 할당될 수 있게 된다는 점입니다.
파일크기를 먼저 할당하지 않는 방법
추적플래그 3042 는 백업 파일을 필요한 만큼씩 계속해서 늘려가도록 합니다.
따라서 사전할당 알고리즘이 무시되며 백업을 진행하면서 필요한 크기를 계속해서 할당해 나가게 됩니다.
테스트 결과
아래처럼 3042 추적플래그를 활성화 해줍니다.
1
2
|
DBCC TRACEON (3042,-1);
GO
|
cs |
추적플래그를 활성화 하지 않았을 때는, 좌측 네모박스처럼 파일크기가 한번에 할당됩니다.
추적플래그를 활성화 했을 때는, 우측 네모박스처럼 파일크기가 점차 커지는 걸 확인할 수 있습니다.
Trace Flag 설정이 안된 경우 | Trace Flag 설정이 된 경우 |
그 외에 CPU 나 IO 부하량은 큰 차이가 나지 않아서 따로 정리하지는 않았습니다.
'SQL Server > SQL Server 이중화_백업' 카테고리의 다른 글
[MSSQL] Standard 버전에서 Availability Group Auto Failover 설정하기 (0) | 2020.07.16 |
---|---|
[MSSQL] 백업파일 압축하기, 압축률 확인하는 방법 (0) | 2020.07.07 |
[MSSQL] 데이터베이스 백업과 복구해보기 (0) | 2019.04.16 |
[MSSQL] 백업장치 만들고 삭제해보기 (0) | 2019.03.21 |
[MsSQL] 데이터베이스 전체 복구, 차등 복구, 로그 복구 알아보기 (0) | 2019.03.20 |