Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

MSSQL_BACKUP_COMPRESSION 1С:Предприятие и СУБД

Настройка сжатия резервных копий (Backup Compression) в SQL Server

Обновлено: 26.08.2026 · Официальная документация ↗

Отсутствие компрессии бэкапов на серверах СУБД приводит к критическим инфраструктурным издержкам:

  • Резервные копии занимают терабайты дискового пространства на СХД и бэкап-серверах;
  • Процесс создания бэкапа утилизирует 100% пропускной способности дисковой подсистемы (Storage Bottleneck), замедляя работу пользователей 1С;
  • Сетевые каналы перегружаются при передаче несжатых .bak файлов на удаленные площадки Disaster Recovery.

1. Включение сжатия резервных копий по умолчанию на уровне экземпляра

Активируйте глобальную опцию сервера через sp_configure:

USE [master];
GO
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'backup compression default', 1;
RECONFIGURE;
GO

2. Создание сжатого бэкапа в T-SQL

Явное указание директивы COMPRESSION в запросе (переопределяет глобальную настройку):

BACKUP DATABASE [ERP_1C]
TO DISK = N'E:\Backup\ERP_1C_Compressed.bak'
WITH COMPRESSION, CHECKSUM, STATS = 10;

3. Оценка эффективности коэффициента сжатия

Запрос для анализа степени сжатия существующих резервных копий в истории msdb:

SELECT 
    database_name,
    backup_start_date,
    backup_size / 1048576.0 AS OriginalSize_MB,
    compressed_backup_size / 1048576.0 AS CompressedSize_MB,
    CAST((backup_size / compressed_backup_size) AS DECIMAL(5,2)) AS CompressionRatio
FROM msdb.dbo.backupset
WHERE database_name = 'ERP_1C'
ORDER BY backup_start_date DESC;

4. Балансировка нагрузки на процессор (Resource Governor)

Если сжатие бэкапа перегружает CPU в рабочее время, ограничьте поток бэкапа через Resource Governor:

-- Ограничение пула ресурсов бэкапа до максимум 30% CPU
ALTER WORKLOAD GROUP [GroupBackup] WITH (IMPORTANCE = LOW);
ALTER RESOURCE POOL [PoolBackup] WITH (MAX_CPU_PERCENT = 30);
ALTER RESOURCE GOVERNOR RECONFIGURE;
💡 Практика специалистов: Для баз 1С коэффициент сжатия стандартным алгоритмом MSSQL обычно составляет от 3.5:1 до 5:1. Не используйте сжатие только в том случае, если сервер уже утилизирован по CPU более чем на 85%.

Частые вопросы (FAQ)

Почему сжатие бэкапа ускоряет процесс резервного копирования, несмотря на нагрузку на CPU?

В большинстве современных серверов узким горлышком является скорость дискового ввода-вывода (I/O). Сжатие уменьшает объем записываемых на диск мегабайт в 3-6 раз, поэтому выигрыш во времени сброса на диск многократно превышает микросекундные затраты CPU на компрессию.

Поддерживается ли Backup Compression в версии SQL Server Standard?

Да, начиная с SQL Server 2008 R2, сжатие резервных копий официально поддерживается и в редакции Standard (ранее было доступно только в Enterprise).

Сжимаются ли базы данных, зашифрованные с помощью TDE (Transparent Data Encryption)?

Начиная с SQL Server 2016 SP1, сжатие TDE-баз поддерживается, но для этого в команде BACKUP необходимо явно указать параметр MAXTRANSFERSIZE >= 65536, иначе степень сжатия будет близка к нулю.

Можно ли восстановить сжатый бэкап на сервере, где опция backup compression default отключена?

Да. SQL Server автоматически распознает сжатый формат файла .bak и выполняет декомпрессию 'на лету' вне зависимости от параметров целевого сервера.

Полезные материалы
Рекомендуем