Eu uso o script a seguir para fazer um .bak de um banco de dados de produção e salvá-lo em um servidor de teste onde ele pode ser restaurado se necessário. O script não declara para compactar o arquivo. Executando o SQL Server 2019 Enterprise.
BACKUP DATABASE [PINK]
TO DISK = N'\\TestServer\Transfer\PINK.bak'
WITH NOFORMAT, INIT, NAME = N'PINK', SKIP, NOREWIND, NOUNLOAD, STATS = 10, CHECKSUM
GO
DECLARE @backupSetId AS int
SELECT @backupSetId = position
FROM msdb..backupset
WHERE database_name = N'PINK'
AND backup_set_id = (SELECT MAX(backup_set_id)
FROM msdb..backupset
WHERE database_name = N'PINK')
IF @backupSetId IS NULL
BEGIN
RAISERROR(N'Verify failed. Backup information for database ''PINK'' not found.', 16, 1)
END
RESTORE VERIFYONLY
FROM DISK = N'\\TestServer\Transfer\PINK.bak'
WITH FILE = @backupSetId, NOUNLOAD, NOREWIND
GO
Ele .bak
vai para o servidor de teste e, dependendo de onde você olha no Explorer, ele tem 162 GB ou 154 GB:
Para economizar espaço, tentei compactar .bak
adicionando COMPRESSION
ao script:
BACKUP DATABASE [PINK]
TO DISK = N'\\TestServer\Transfer\PINK.bak'
WITH NOFORMAT, INIT, NAME = N'PINK', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10, CHECKSUM
GO
DECLARE @backupSetId AS int
SELECT @backupSetId = position
FROM msdb..backupset
WHERE database_name = N'PINK'
AND backup_set_id = (SELECT MAX(backup_set_id)
FROM msdb..backupset
WHERE database_name = N'PINK')
IF @backupSetId IS NULL
BEGIN
RAISERROR(N'Verify failed. Backup information for database ''PINK'' not found.', 16, 1)
END
RESTORE VERIFYONLY
FROM DISK = N'\\TestServer\Transfer\PINK.bak'
WITH FILE = @backupSetId, NOUNLOAD, NOREWIND
GO
Após executar com o COMMPRESSION
comando incluído, ele caiu no mesmo tamanho no servidor de teste. Eu verifiquei os arquivos .ndf
e .mdf
e eles totalizam 770 GB ou 732 GB, dependendo de onde você olha. Além disso, ele inclui cerca de 23 GB de informações de índice.
Isso .bak
já está compactado, mesmo que eu não tenha dito isso?