Переезд 1С на новый сервер без потери данных и простоя

· 9 мин

Содержание

Файловую базу 1С переносят копированием одного каталога. Клиент-серверную базу так не перенести: нужна выгрузка в файл .dt либо резервная копия средствами СУБД и заново созданная запись в кластере серверов. Самая частая ошибка — скопировать только файлы или забыть про лицензию, а потом искать причину на новом сервере.

Чтобы перенести базу 1С на другой сервер, нужны четыре вещи: свежая копия, платформа не ниже прежней версии, настроенная СУБД и работающая лицензия. Ниже порядок действий для обоих вариантов, настройка кластера и проверка.

Что сделать до переезда: копия, версии, список зависимостей

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

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

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

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

  • 📦 выгрузка в .dt из Конфигуратора (пункт Администрирование → Выгрузить информационную базу);
  • 🗄 копия средствами СУБД для клиент-серверной базы или копия каталога для файловой.

Выгрузку .dt делайте в момент, когда в базе нет пользователей. Если сеансы остались, Конфигуратор выдаст ошибку или попросит монопольный доступ.

Что выписать со старого сервера

Составьте список. Он пригодится на каждом шаге ниже:

  1. Точный номер версии платформы (например, 8.3.xx.xxxx) — смотрите в окне «О программе».
  2. Тип базы: файловая или клиент-серверная, и какая СУБД.
  3. Имя базы в кластере, имя базы в СУБД, параметры блокировки регламентных заданий.
  4. Пользователи ОС, под которыми работают службы 1С и СУБД.
  5. Публикации на веб-сервере, если база открывается через браузер или отдаёт веб-сервисы.
  6. Внешние компоненты, обработки в каталогах, сетевые папки, на которые ссылаются настройки в базе.
  7. Обмены с другими базами и сайтами, настроенные на адрес старого сервера.

Если версия платформы на новом сервере ниже, чем на старом, базу может не принять. Ставьте на новый сервер версию платформы не ниже той, на которой база работала. Обновление платформы — отдельная операция, не совмещайте её с переездом.

Как перенести файловую базу на другой компьютер или сервер

Файловая база — это каталог, внутри которого лежит файл 1Cv8.1CD. Путь к нему указан в списке баз у пользователя.

  1. Попросите всех выйти из базы. Проверьте по списку активных пользователей или просто убедитесь, что в каталоге нет файла блокировки 1Cv8.cdn.
  2. Скопируйте каталог целиком на новый сервер: по сети, на внешнем диске или архивом. Не копируйте только 1Cv8.1CD, если рядом лежат другие файлы базы.
  3. На новом сервере создайте общую папку и дайте пользователям права на чтение и запись. Файловой базе нужно право на создание и удаление файлов в каталоге.
  4. В списке баз 1С на рабочем месте нажмите Добавить → Добавление существующей информационной базы и укажите новый путь. Старую запись удалите или переименуйте, чтобы никто не открыл прежнюю копию.
  5. Запустите 1С, откройте базу под администратором и проверьте данные.

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

Файловая база: перед тем как удалить старую копию
Выполнено: 0 / 5

Как перенести клиент-серверную базу: выгрузка и загрузка .dt

Способ универсальный и самый безопасный: подходит для любой СУБД и даже при смене СУБД (например, из MS SQL в PostgreSQL). Минус — на больших базах выгрузка и загрузка идут долго.

Выгрузка на старом сервере

  1. Закройте все сеансы. Для надёжности включите блокировку начала сеансов в консоли кластера.
  2. Запустите базу в режиме Конфигуратора под пользователем с полными правами.
  3. Выберите Администрирование → Выгрузить информационную базу, укажите имя файла .dt.
  4. Дождитесь окончания. Проверьте размер файла: он должен быть заметно меньше самой базы, но не нулевой.

Скопируйте .dt на новый сервер. Перенос по сети удобно проверять контрольной суммой, чтобы убедиться, что файл не повредился.

Загрузка на новом сервере

  1. Создайте пустую информационную базу в консоли кластера (подробнее в следующем разделе).
  2. Откройте её в Конфигураторе.
  3. Выберите Администрирование → Загрузить информационную базу и укажите файл.
  4. После загрузки запустите обычный режим и проверьте работу.

Загрузка .dt заменяет все данные в целевой базе. Не делайте её в рабочей базе по ошибке: проверьте имя базы в заголовке окна Конфигуратора.

Перенос через резервную копию SQL: быстрее для больших баз

Если база весит десятки гигабайт, .dt выгружается часами. Тогда переносят саму базу СУБД — копией и восстановлением.

МетодКогда подходитРиски
Выгрузка .dtЛюбая СУБД, смена СУБД, небольшие и средние базыДолго на больших базах
Бэкап и восстановление MS SQLТот же тип СУБД на обоих серверахВерсия SQL Server на новом сервере не должна быть ниже старой
pg_dump и pg_restore PostgreSQLТот же тип PostgreSQL на обоих серверахНужны совместимые версии и сборка, подходящая для 1С

MS SQL Server

  1. На старом сервере сделайте полную резервную копию базы (в SQL Server Management Studio это Tasks → Back Up).
  2. Скопируйте файл .bak на новый сервер.
  3. Восстановите его: Databases → Restore Database. Имя базы можно оставить прежним.
  4. Проверьте, что вход под учётной записью, которую использует кластер 1С, разрешён и у неё есть права на эту базу.

PostgreSQL

Дамп делают утилитой pg_dump, а восстанавливают pg_restore. Пример для архивного формата:

pg_dump -U postgres -Fc -f base.dump имя_базы
createdb -U postgres имя_базы
pg_restore -U postgres -d имя_базы base.dump

Для 1С обычно ставят сборку PostgreSQL, рекомендованную фирмой «1С», либо сборку от поставщиков, адаптированную для платформы. Обычная сборка с официального сайта PostgreSQL может не подойти. Версия на новом сервере должна быть совместимой с версией платформы.

После восстановления базы СУБД в кластере 1С она ещё не появилась. Её нужно подключить отдельно, иначе пользователи её не увидят.

Настройка кластера 1С на новом сервере

Кластер — это служба сервера 1С, которая хранит список баз и управляет сеансами. Без него клиент-серверная база не откроется, даже если в СУБД всё восстановлено.

Установка и запуск сервера 1С

  1. Установите на новый сервер платформу 1С с компонентой «Сервер 1С:Предприятия». Версия не ниже прежней.
  2. Убедитесь, что служба Агент сервера 1С:Предприятия запущена и работает от отдельной учётной записи, у которой есть права на каталог кластера.
  3. Откройте на файрволе порты: по умолчанию это 1540 (агент), 1541 (менеджер кластера) и диапазон рабочих процессов 1560–1591. Если вы меняли порты на старом сервере, повторите настройку.

Подключение базы

  1. Откройте консоль администрирования серверов 1С и подключитесь к серверу.
  2. В разделе Информационные базы выберите Создать → Информационная база.
  3. Укажите имя базы (его увидят пользователи), тип СУБД и адрес сервера СУБД, имя базы данных в СУБД, учётную запись с правами владельца базы.
  4. Если вы загружаете .dt, поставьте отметку создать базу данных в случае её отсутствия. Если база восстановлена из бэкапа, эту отметку не ставьте: база уже есть.
  5. Включите блокировку регламентных заданий, пока идёт проверка. Иначе скопированная база начнёт рассылать письма и выгружать обмены от имени рабочей.

Список баз и сеансов из командной строки покажет rac. Например, rac cluster list выведет кластеры сервера. Остальные подкоманды смотрите в справке rac help.

Если имя базы в кластере совпадает с прежним, пользователям не придётся менять запись в списке баз. Остаётся поменять только адрес сервера, и то, если он изменился.

Лицензии 1С и ключи защиты после переезда

Платформа без доступной лицензии базу не откроет. Исключение — учебная версия. Поэтому лицензии проверяйте до того, как объявлять о переезде.

  • 🔑 Аппаратный ключ (USB). Вставьте в новый сервер, поставьте драйвер защиты, который идёт вместе с платформой. Если сервер виртуальный, USB-ключ чаще всего пробрасывают через специальный USB-сервер или ставят ключ на отдельную машину и раздают по сети.
  • 🌐 Сетевой ключ. Сервер лицензий должен быть доступен с нового сервера 1С. Проверьте файрвол: для ключей защиты используется порт 1947.
  • 💻 Программная лицензия. Привязана к компьютеру, на котором активирована. На новом сервере её нужно получить заново, по регистрационному номеру и пин-коду. Если лицензия уже использована на старом сервере, активацию лучше делать по согласованию с поставщиком или службой поддержки 1С.

Серверные лицензии подбирают по количеству подключений: у клиентских лицензий и у серверной свои учёт и ограничения. Если после переезда пользователи получают отказ «Не обнаружено свободной лицензии», проверьте, что в списке лицензий консоли кластера есть ваши.

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

Не торопитесь снимать блокировку. Пройдите по короткому списку, пока в базе работает только администратор.

Приёмка новой базы
Выполнено: 0 / 6

Что сверять:

  1. Отчёты. Оборотно-сальдовая ведомость на последнюю закрытую дату должна совпадать со старой базой копейка в копейку.
  2. Пользователи и права. Список пользователей совпадает, вход работает.
  3. Внешние связи. Веб-сервисы, публикации на веб-сервере, эквайринг, банк-клиент, ЭДО. Адрес сервера часто прописан в настройках обмена, и после переезда он указывает на старую машину.
  4. Файлы. Если в базе есть присоединённые файлы в томах на диске, проверьте пути томов.

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

Прежде чем остановить службу 1С или перезагрузить сервер, предупредите пользователей: все открытые сеансы оборвутся, а несохранённые документы пропадут. Делайте это в нерабочее время.

Частые ошибки при переносе базы 1С на другой сервер

  • ❌ Скопировали файлы СУБД на диске вместо бэкапа. Для MS SQL и PostgreSQL такой способ не работает : нужен только бэкап средствами СУБД или выгрузка .dt.
  • ❌ Не отключили регламентные задания. Тестовая копия отправила клиентам письма и обновила данные на сайте.
  • ❌ Версия платформы ниже прежней. База не открывается или выдаёт ошибку о несовместимости версий.
  • ❌ Не открыли порты. Клиент видит сервер по имени, но подключиться не может.
  • ❌ Не проверили права учётной записи службы 1С. Кластер запускается, но не может создать каталог для данных.

Частые вопросы

Сколько занимает перенос базы 1С на другой сервер?
Файловая база копируется за минуты. Клиент-серверная через .dt занимает от получаса до нескольких часов в зависимости от объёма, через бэкап СУБД обычно быстрее.
Можно ли перенести базу с Windows на Linux?
Да. Универсальный способ — выгрузка .dt и загрузка в базу на новом сервере. Копировать бэкап СУБД между разными системами и разными СУБД нельзя.
Нужно ли переустанавливать платформу на клиентах?
Нет, если версия платформы на сервере не изменилась. Достаточно поменять адрес сервера в списке баз.
Что делать с публикацией базы на веб-сервере?
Публикацию нужно создать заново на новом веб-сервере, а в настройках внешних систем заменить адрес.
Как проверить, что данные перенеслись полностью?
Сравните оборотно-сальдовую ведомость и количество документов по основным видам за один и тот же период в старой и новой базе.