Администрирование · 10 мин
Как перенести SQL-базу 1С на другой сервер
Как перенести SQL-базу 1С на другой сервер: бэкап и восстановление через MS SQL Server, выгрузка в DT, настройка кластера 1С, типичные ошибки и проверка результата.
Перенос базы 1С, работающей в клиент-серверном режиме на MS SQL Server, PostgreSQL или другой СУБД, — типовая задача при смене сервера, апгрейде оборудования или разделении нагрузки. Процедура отличается от простого копирования файловой базы: данные хранятся в СУБД, а ссылка на базу привязана к кластеру серверов 1С, поэтому переносить нужно две сущности — саму базу данных и её регистрацию в кластере.
Существует два основных способа переноса: средствами СУБД (резервная копия и восстановление) и через выгрузку информационной базы в файл DT из конфигуратора. Первый способ быстрее и сохраняет базу «один в один», второй — универсальнее и позволяет заодно сменить СУБД или исправить некоторые повреждения данных. Выбор зависит от объёма базы, допустимого времени простоя и требований к результату.
Критическое правило для обоих способов: на время переноса пользователи должны быть отключены от базы, а регламентные задания — остановлены. Иначе часть данных может быть записана уже после создания копии и безвозвратно потеряется.
Подготовка: что нужно сделать до переноса
Начните с инвентаризации. Зафиксируйте имя информационной базы в кластере, имя базы данных в СУБД, версию платформы 1С, версию СУБД и учётную запись, от имени которой сервер 1С обращается к базе. Эти сведения понадобятся при регистрации базы на новом месте, а расхождение версий — частая причина невозможности подключения.
Проверьте, что целевой сервер соответствует требованиям: версия СУБД не ниже исходной (восстановить бэкап на более старую версию SQL Server нельзя), достаточно места на дисках под данные и журнал транзакций, установлена та же или более новая версия платформы 1С. Учтите, что база 100 ГБ при восстановлении может потребовать заметно больше свободного места из-за роста журнала.
Завершите работу пользователей штатно: через консоль кластера установите для базы блокировку начала сеансов и дождитесь завершения активных соединений. Отключите регламентные и фоновые задания. После этого сделайте контрольную резервную копию — она станет страховкой, если что-то пойдёт не так.
Способ 1: перенос через резервную копию SQL Server
Это основной способ для баз большого объёма. На исходном сервере откройте SQL Server Management Studio, найдите нужную базу, щёлкните правой кнопкой и выберите «Задачи → Создать резервную копию». Укажите тип «Полная» и путь к файлу бэкапа. Дождитесь завершения и скопируйте файл на новый сервер.
На целевом сервере в SSMS выберите «Базы данных → Восстановить базу данных», укажите файл копии и имя новой базы. Если файлы данных должны лежать в других каталогах, скорректируйте пути на вкладке «Файлы». После восстановления проверьте, что база находится в состоянии ONLINE, и при необходимости смените модель восстановления на «Простая», если полный журнал транзакций вам не нужен.
Отдельно создайте на новом сервере логин, под которым сервер 1С будет подключаться к базе, и сопоставьте его с пользователем базы данных. Если логин существует, но связь потеряна после восстановления (ситуация «потерянного пользователя»), её нужно восстановить — иначе сервер 1С получит отказ в доступе.
-- Исправление потерянного пользователя после восстановления
USE MyBase;
ALTER USER db_user WITH LOGIN = db_login;Способ 2: перенос через выгрузку в файл DT
Выгрузка в DT — это внутренний формат 1С, не зависящий от СУБД. Откройте конфигуратор в монопольном режиме, выберите «Администрирование → Выгрузить информационную базу» и укажите файл. На больших базах процесс может занять часы, а файл получится объёмным, поэтому заранее оцените время простоя и место на диске.
На новом сервере создайте пустую информационную базу в кластере 1С (без конфигурации), откройте её конфигуратором и выполните «Загрузить информационную базу». После загрузки платформа предложит выполнить реструктуризацию — соглашайтесь. Этот способ медленнее, но позволяет переехать с MS SQL на PostgreSQL или наоборот и иногда помогает при лёгких повреждениях данных, которые мешают снять бэкап средствами СУБД.
У DT-переноса есть ограничения: он чувствителен к различиям версий платформы (загружать выгрузку лучше в ту же или более новую версию), не переносит настройки кластера и требует монопольного доступа на обеих сторонах. Для баз в сотни гигабайт способ обычно непрактичен.
Сравнение вариантов переноса
Быстро, точная копия, подходит для больших баз. Ограничение: та же СУБД и версия не ниже исходной.
Независимость от СУБД, можно сменить платформу хранения. Ограничение: долго на больших базах, нужен монопольный доступ.
Минимальный простой при миграции больших баз. Ограничение: требует опыта администрирования СУБД и настройки.
Регистрация базы в кластере серверов 1С
После восстановления базы данных её нужно «показать» серверу 1С. Откройте консоль администрирования серверов 1С, создайте новую информационную базу в кластере: укажите имя, тип СУБД, имя сервера баз данных, имя базы данных и учётные данные для подключения. Флажок «Создать базу данных в случае её отсутствия» оставьте снятым — база уже существует.
Если сервер 1С тоже переезжает на новую машину, перенесите и его: установите агент сервера 1С той же версии, перенесите каталог srvinfo с данными кластера или создайте кластер заново и зарегистрируйте базы вручную. Не забудьте про лицензии: программные лицензии привязаны к параметрам компьютера, и на новом сервере их потребуется активировать заново.
После регистрации обновите списки баз у пользователей или поправьте файлы ibases.v8i / настройки веб-сервера, если доступ идёт через публикацию. Проверьте также внешние зависимости: пути к файловым томам, каталоги обмена, подключённые хранилища конфигурации.
- 1Заблокируйте сеансы и регламентные задания в исходной базе
- 2Создайте полную резервную копию базы данных
- 3Скопируйте файл бэкапа на новый сервер и восстановите базу в SSMS
- 4Создайте логин и свяжите его с пользователем базы данных
- 5Зарегистрируйте информационную базу в кластере 1С на новом сервере
- 6Проверьте вход, работу отчётов и фоновых заданий, затем откройте доступ пользователям
Проверка результата после переноса
Первый признак успеха — база открывается в режиме предприятия без ошибок подключения. Дальше проверьте содержимое: сверьте количество документов за последний период, сформируйте пару ключевых отчётов (например, оборотно-сальдовую ведомость) и сравните итоги с исходной базой, открытой только для чтения.
Отдельно убедитесь, что работают регламентные задания: после переноса они часто остаются заблокированными или ссылаются на старые пути. Проверьте обмены с другими системами, печатные формы, доступ к присоединённым файлам. Только после этого удаляйте блокировку сеансов и сообщайте пользователям новый адрес подключения.
Как проверить результат
База открывается в тонком клиенте без ошибок СУБД
Ошибка доступа или «база не найдена» — проверяйте логин и регистрацию в кластере
Итоги ОСВ и число документов совпадают с исходной базой
Расхождения в остатках — база копировалась при активных сеансах
Задания выполняются по расписанию на новом сервере
Задания заблокированы или падают с ошибкой путей
Типичные ошибки и ограничения
Самая частая проблема — попытка восстановить бэкап на более старую версию SQL Server: это технически невозможно, планируйте целевой сервер заранее. Вторая по распространённости — забытый логин СУБД: база восстановлена, но сервер 1С не может к ней подключиться из-за разорванной связи пользователя и логина.
Также типичны: перенос при работающих пользователях (потеря последних документов), несовпадение версий платформы на старом и новом сервере, забытая активация лицензий, неперенесённые каталоги файловых томов и обменов. Каждая из этих ошибок обнаруживается уже после «успешного» переезда, поэтому чек-лист проверки экономит часы разбирательств.
Частые вопросы о переносе SQL-базы 1С
Можно ли перенести базу 1С с MS SQL Server на PostgreSQL?
Да, но только через выгрузку и загрузку в файл DT из конфигуратора — резервные копии между разными СУБД несовместимы. Учтите, что после переезда могут потребоваться корректировки запросов, оптимизированных под конкретную СУБД, и настройка параметров PostgreSQL под нагрузку 1С.
Сколько времени занимает перенос базы?
Зависит от объёма и способа. Восстановление бэкапа базы в десятки гигабайт обычно укладывается в пару часов вместе с регистрацией в кластере. Выгрузка и загрузка DT той же базы может занять весь выходной. Точное время определите тестовым прогоном на копии.
Нужно ли останавливать сервер 1С при переносе?
Сам агент сервера останавливать не обязательно — достаточно заблокировать сеансы и регламентные задания конкретной базы. Полная остановка нужна, только если вы переносите сам сервер 1С с каталогом кластера srvinfo.
Что делать, если после восстановления база в статусе «Восстановление...»?
Обычно это значит, что бэкап восстановлен с опцией NORECOVERY, ожидающей наката дополнительных журналов. Выполните команду RESTORE DATABASE с параметром RECOVERY или восстановите копию заново через интерфейс SSMS с настройками по умолчанию.
Можно ли просто скопировать файлы MDF и LDF?
Такой способ существует: отсоединить базу (Detach), скопировать файлы и присоединить (Attach) на новом сервере. Он работает, но требует остановки базы и рискованнее бэкапа — при повреждении файлов в момент копирования резервной копии у вас не будет. Для боевых баз предпочтительнее резервное копирование.
Что делать со старой базой после успешного переезда?
Переведите её в режим только чтения или заблокируйте сеансы, чтобы никто не продолжил в ней работать по старой привычке. Храните её и финальный бэкап как минимум до конца отчётного периода, затем удаляйте по регламенту резервного копирования вашей организации.
Что важно запомнить
Перенос SQL-базы 1С — это резервная копия СУБД (или выгрузка DT), восстановление на новом сервере и регистрация в кластере 1С. Ключевые условия успеха: заблокированные сеансы, проверенный бэкап, совместимые версии СУБД и платформы, сверка данных до открытия доступа пользователям.