г. Москва, Дмитровское шоссе д. 9 стр. 3, офис 416
Войти
Интегрируем 1С решения любой сложности
+7 (495) 212-06-55
+7 (495) 212-06-55
г. Москва, Дмитровское шоссе д. 9 стр. 3, офис 416
Пн-Пт: 9:00-19:00 Cб-Вс: Выходной
Заказать звонок

Резервное копирование и восстановление базы данных 1С: полная инструкция | IT-компания Виант

Самые читаемые
5 ноя 2025
22 сен 2025
10 сен 2025
22 авг 2025
5 ноя 2025
#1C:ERP
#1C:УНФ
#1С:Управление торговлей
#1С:Комплексная автоматизация

Резервное копирование базы данных 1С на SQL Server — это критически важная процедура для обеспечения сохранности корпоративных данных и возможности их восстановления в случае сбоев. Правильная настройка механизма резервного копирования позволяет минимизировать риски потери информации и обеспечить непрерывность работы предприятия.

Модели восстановления базы данных (RECOVERY MODEL)

На процесс восстановления базы данных 1С напрямую влияет выбранная модель восстановления. Модель восстановления — это свойство базы данных, которое управляет процессом регистрации транзакций, определяет необходимость резервного копирования журнала транзакций и доступные типы операций восстановления.

Full (Полная модель)

Режим полного протоколирования записывает максимальное количество операций в журнал транзакций, что может вызывать его быстрый рост. Журнал транзакций в этом режиме не обрезается автоматически. Модель обеспечивает максимальные возможности по восстановлению данных, но незначительно снижает производительность системы.

В данном режиме исключена потеря результатов работы и возможно восстановление базы данных до произвольного момента времени, например, до момента возникновения ошибки приложения. Для полноценного использования этой модели необходимо регулярно осуществлять резервное копирование журналов транзакций.

Bulk-logged (С неполным протоколированием)

Режим является компромиссом между возможностями восстановления и производительностью. В данном режиме запись в журнал транзакций не производится для операций по созданию, перестроению и удалению индексов, массовой вставки данных и операций с большими двоичными данными.

Microsoft не рекомендует использование этого режима на постоянной основе — лучше переключаться в него из режима Full только на время выполнения больших операций массовой вставки, а затем возвращаться обратно.

Simple (Простая модель)

Режим обеспечивает максимальный выигрыш в производительности. Производится автоматическое освобождение места на диске, занятое журналами, что устраняет необходимость в управлении размером журналов транзакций. В данном режиме отсутствуют резервные копии журнала транзакций, соответственно изменения, созданные с момента последней резервной копии, восстановить невозможно.

Настроить нужный режим можно в свойствах базы данных на соответствующей вкладке в SQL Server Management Studio.

Типы резервного копирования

SQL Server использует процесс резервного копирования в сети, что позволяет создавать резервную копию базы данных во время ее использования. Во время резервного копирования можно производить большинство операций с базой данных.

Полное резервное копирование

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

Если копирование началось в 9 часов, а завершилось в 10, то в базе будут содержаться данные на 10 часов. По мере увеличения размера базы данных полное копирование занимает много времени, поэтому для больших баз не рекомендуется использовать только этот тип копирования.

Разностное резервное копирование

В резервную копию записываются все изменения, которые были произведены с момента последнего полного резервного копирования. Разностное резервное копирование можно использовать только в дополнение к полному. Время на данное копирование затрачивается существенно меньше, соответственно копия занимает меньше места на диске.

Резервное копирование журналов транзакций

Работает только для полной модели восстановления и модели с неполным протоколированием. Перед созданием любой резервной копии журнала необходимо создать как минимум одну полную резервную копию. После этого резервное копирование журнала транзакций может выполняться в любое время, кроме времени другого резервного копирования журнала.

Резервная копия журнала будет хранить информацию с последней резервной копии журнала транзакций. Microsoft рекомендует создавать резервные копии журналов с достаточной периодичностью в соответствии с бизнес-требованиями, особенно касающимися устойчивости к потере данных.

Рекомендуемая стратегия резервного копирования

На практике часто встречается простое расписание, когда каждую ночь производится только полное копирование всей базы данных. Однако эксперты рекомендуют настраивать копирование следующим образом:

  • Раз в неделю — полное резервное копирование базы данных;
  • Раз в сутки — разностное резервное копирование;
  • Несколько раз в день — копирование журналов транзакций (частота зависит от бизнес-требований к конкретной базе данных).

Создание резервной копии через графический интерфейс

Использование SQL Server Management Studio


Для создания резервной копии базы данных 1С через графический интерфейс выполните следующие действия:

  1. Щелкните правой кнопкой мыши базу данных в обозревателе объектов;
  2. Наведите указатель мыши на пункт Задачи и выберите Резервное копирование;
  3. В открывшемся окне выберите тип резервной копии (Полная, Разностная или Журнал транзакций);
  4. В разделе Назначение проверьте путь к резервной копии. Если необходимо изменить его, выберите Удалить, чтобы удалить существующий путь, а затем Добавить, чтобы ввести новый путь;
  5. На вкладке Параметры рекомендуется установить флажок Проверить резервную копию после завершения
  6. Нажмите ОК для создания резервной копии.

Создание резервной копии через T-SQL запросы

Для автоматизации процесса резервного копирования можно использовать команды Transact-SQL.

Полная резервная копия

BACKUP DATABASE [ИМЯ_БАЗЫ]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\SQLTestDB.bak'
WITH NOFORMAT, NOINIT,
NAME = N'SQLTestDB-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO

Полная резервная копия с контрольными суммами и сжатием

BACKUP DATABASE [ИМЯ_БАЗЫ]
TO DISK = N'D:\SQL\Backup\ИМЯ_БАЗЫ.bak'
WITH CHECKSUM, COMPRESSION, INIT
GO

Разностная резервная копия

BACKUP DATABASE [ИМЯ_БАЗЫ]
TO DISK = N'D:\SQL\ИМЯ_БАЗЫ.bak'
WITH DIFFERENTIAL, CHECKSUM
GO

Резервная копия журнала транзакций

BACKUP LOG [ИМЯ_БАЗЫ]
TO DISK = N'D:\SQL\ИМЯ_БАЗЫ.log'
GO

Эти скрипты можно выполнить в окне запроса SQL Server Management Studio.

Настройка и техническая поддержка 1C
Подробнее

Настройка автоматического резервного копирования

Для автоматизации процесса резервного копирования необходимо настроить регламентное задание через SQL Server Agent.

Создание плана обслуживания

  1. В SQL Server Management Studio разверните раздел Управление;
  2. Щелкните правой кнопкой мыши Планы обслуживания и выберите Создать план обслуживания;
  3. Задайте имя плана и настройте расписание выполнения;
  4. Из панели инструментов перетащите задачу Резервное копирование базы данных в область конструктора;
  5. Настройте параметры задачи: выберите базы данных, тип резервного копирования, место назначения и параметры проверки;
  6. Сохраните план обслуживания.

Создание задания через SQL Server Agent

Альтернативный способ — создание задания напрямую:

  1. Откройте SQL Server Management Studio и подключитесь к серверу
  2. Разверните SQL Server Agent → щелкните правой кнопкой Jobs → выберите New Job
  3. На вкладке General укажите имя задания, например, Full Backup [ИМЯ_БАЗЫ]
  4. На вкладке Steps нажмите New и создайте шаг:
    • Step name: Create Full Backup
    • Type: Transact-SQL script (T-SQL)
    • Database: master
    • Command: вставьте T-SQL команду создания резервной копии
  5. На вкладке Schedules настройте расписание выполнения
  6. На вкладке Notifications настройте уведомления об успешном или неудачном выполнении
  7. Нажмите ОК для сохранения задания

Рекомендуется создать несколько заданий для разных типов резервного копирования в соответствии с рекомендуемой стратегией.

Проверка целостности резервных копий

Создание резервной копии — это только половина задачи. Необходимо регулярно проверять возможность восстановления из созданных копий.

Быстрая проверка целостности файла

Команда RESTORE VERIFYONLY проверяет полноту резервной копии и возможность её считывания:

RESTORE VERIFYONLY 
FROM DISK = N'D:\SQL\Backup\ИМЯ_БАЗЫ.bak'
WITH CHECKSUM
GO

Эта команда не восстанавливает базу данных, а только проверяет структурную целостность файла резервной копии.

Проверка целостности базы данных перед резервным копированием

Рекомендуется проверять целостность базы данных перед созданием резервной копии:

-- Проверка целостности базы данных
DBCC CHECKDB ('ИМЯ_БАЗЫ') WITH NO_INFOMSGS

-- Если проверка прошла успешно, создаем резервную копию
IF @@ERROR = 0
BEGIN
    BACKUP DATABASE [ИМЯ_БАЗЫ]
    TO DISK = N'D:\SQL\Backup\ИМЯ_БАЗЫ.bak'
    WITH CHECKSUM, COMPRESSION, INIT
    PRINT 'Резервное копирование выполнено успешно'
END
ELSE
BEGIN
    RAISERROR('Обнаружены ошибки целостности базы данных', 16, 1)
END
GO

Автоматическая проверка резервных копий по расписанию

Скрипт для проверки последней созданной резервной копии:

DECLARE @BackupPath NVARCHAR(500)
DECLARE @DatabaseName NVARCHAR(128) = 'ИМЯ_БАЗЫ'
DECLARE @BackupFile NVARCHAR(500)

-- Формирование пути к файлу резервной копии
SET @BackupPath = 'D:\SQL\Backup\'
SET @BackupFile = @BackupPath + @DatabaseName + '_' + 
    CONVERT(VARCHAR(8), GETDATE(), 112) + '.bak'

-- Проверка целостности резервной копии
BEGIN TRY
    RESTORE VERIFYONLY 
    FROM DISK = @BackupFile
    WITH CHECKSUM
    
    PRINT 'Проверка резервной копии успешно завершена: ' + @BackupFile
END TRY
BEGIN CATCH
    PRINT 'ОШИБКА при проверке резервной копии: ' + ERROR_MESSAGE()
    RAISERROR('Резервная копия повреждена или недоступна', 16, 1)
END CATCH
GO

Расширенный скрипт проверки всех резервных копий в папке

Для проверки всех файлов резервных копий в указанной папке используйте следующий скрипт:

DECLARE @BackupPath NVARCHAR(500) = 'D:\SQL\Backup\'
DECLARE @Command NVARCHAR(4000)
DECLARE @BackupFile NVARCHAR(500)

-- Создание временной таблицы для списка файлов
CREATE TABLE #BackupFiles (
    FileName NVARCHAR(500)
)

-- Получение списка файлов резервных копий
SET @Command = 'DIR "' + @BackupPath + '*.bak" /B'
INSERT INTO #BackupFiles
EXEC xp_cmdshell @Command

-- Удаление NULL значений
DELETE FROM #BackupFiles WHERE FileName IS NULL

-- Курсор для проверки каждого файла
DECLARE backup_cursor CURSOR FOR
SELECT FileName FROM #BackupFiles

OPEN backup_cursor
FETCH NEXT FROM backup_cursor INTO @BackupFile

WHILE @@FETCH_STATUS = 0
BEGIN
    SET @Command = @BackupPath + @BackupFile
    
    BEGIN TRY
        PRINT 'Проверка файла: ' + @BackupFile
        
        RESTORE VERIFYONLY 
        FROM DISK = @Command
        WITH CHECKSUM
        
        PRINT 'OK: ' + @BackupFile
    END TRY
    BEGIN CATCH
        PRINT 'ОШИБКА в файле ' + @BackupFile + ': ' + ERROR_MESSAGE()
    END CATCH
    
    FETCH NEXT FROM backup_cursor INTO @BackupFile
END

CLOSE backup_cursor
DEALLOCATE backup_cursor

DROP TABLE #BackupFiles
GO

Этот скрипт можно добавить как отдельное задание SQL Server Agent, которое будет запускаться после создания резервных копий.

Восстановление базы данных из резервной копии

При возникновении проблемы с базой данных, требующей восстановления, необходимо сначала сделать резервную копию журналов транзакций без его обрезки (если это возможно).

Восстановление через графический интерфейс

  1. В SQL Server Management Studio щелкните правой кнопкой мыши по базе данных
  2. Выберите ЗадачиВосстановитьБаза данных
  3. В окне восстановления выберите источник восстановления (устройство или файл)
  4. Укажите путь к файлу резервной копии
  5. Выберите необходимые резервные копии для восстановления (полная, разностная, журналы)
  6. На вкладке Параметры настройте необходимые опции восстановления
  7. Нажмите ОК для начала процесса восстановления

Восстановление через T-SQL

Для восстановления полной резервной копии используйте команду:

RESTORE DATABASE [ИМЯ_БАЗЫ]
FROM DISK = N'C:\Backup\SQLTestDB.bak'
WITH FILE = 1, NOUNLOAD, STATS = 5
GO

Последовательное восстановление нескольких резервных копий

Для восстановления полной, разностной копии и журналов транзакций:

-- Восстановление полной резервной копии с опцией NORECOVERY
RESTORE DATABASE [ИМЯ_БАЗЫ]
FROM DISK = N'D:\Backup\VIANT_AC_Full.bak'
WITH NORECOVERY, REPLACE
GO

-- Восстановление разностной резервной копии с опцией NORECOVERY
RESTORE DATABASE [ИМЯ_БАЗЫ]
FROM DISK = N'D:\Backup\VIANT_AC_Diff.bak'
WITH NORECOVERY
GO

-- Восстановление журнала транзакций с опцией RECOVERY (последний шаг)
RESTORE LOG [ИМЯ_БАЗЫ]
FROM DISK = N'D:\Backup\VIANT_AC_Log.trn'
WITH RECOVERY
GO

Опция NORECOVERY оставляет базу данных в состоянии восстановления, что позволяет применить дополнительные резервные копии. Последняя операция восстановления должна использовать опцию RECOVERY для завершения процесса и перевода базы данных в рабочее состояние.

Рекомендации по хранению резервных копий

Для обеспечения максимальной надежности системы резервного копирования следуйте этим рекомендациям:

  • Храните резервные копии на отдельном физическом диске или сетевом хранилище, отличном от диска с рабочей базой данных;
  • Используйте несколько независимых мест хранения резервных копий;
  • Регулярно проверяйте целостность и возможность восстановления из резервных копий;
  • Документируйте процедуры создания и восстановления резервных копий;
  • Настройте автоматические уведомления о результатах выполнения заданий резервного копирования;
  • Определите политику хранения резервных копий в соответствии с требованиями бизнеса;
  • Обеспечьте достаточное количество свободного места на диске для хранения резервных копий;
  • Не храните резервные копии на том же диске, где установлена операционная система.

Проверяйте себя и избегайте создания резервных копий без использования параметра CHECKSUM.

Заключение

Правильная настройка резервного копирования базы данных 1С на SQL Server требует понимания моделей восстановления, типов резервных копий и оптимальной стратегии их создания. Регулярное резервное копирование в сочетании с автоматической проверкой целостности и периодическим тестированием процедуры восстановления обеспечивает надежную защиту корпоративных данных.

Ключевые моменты для запоминания:

  • Используйте комбинированную стратегию резервного копирования (полное + разностное + журналы транзакций);
  • Обязательно проверяйте созданные резервные копии с помощью RESTORE VERIFYONLY;
  • Настройте автоматические уведомления о результатах резервного копирования;
  • Храните резервные копии на отдельном физическом носителе;
  • Регулярно тестируйте процедуру восстановления данных.
Если вы столкнулись со сложными задачами при настройке и использовании учетных систем на базе 1С, вы всегда можете получить нашу профессиональную помощь и поддержу, достаточно оставить заявку на сайте или позвонить по номеру +7 (495) 212-07-85.

Подписывайтесь на наш Telegram канал: ВИАНТ | Про технологии для бизнеса, где мы открыто рассказываем про реализацию наших проектов, пишем новости и обозреваем IT-решения для бизнеса.