Как разместить базу 1С 8.3 на сервере и настроить кластер
Содержание
Чтобы разместить базу 1С на сервере, нужны три вещи: сервер 1С:Предприятия 8.3 с серверной лицензией, СУБД (MS SQL Server или PostgreSQL) и сама информационная база, созданная в кластере через консоль администрирования. Файловую базу
переносят выгрузкой в .dt и загрузкой в новую серверную базу
. Пользователи подключаются строкой вида Srvr="имя_сервера";Ref="имя_базы";.
Есть и упрощённые варианты. Файловая база в общей папке подходит для 3–5 человек. Терминальный сервер с файловой базой выдерживает чуть больше. Клиент-серверный вариант нужен, когда пользователей 10 и больше, база перевалила за 4–5 ГБ или начались блокировки и «зависания» при проведении.
Подготовка к размещению: сервер, лицензии и схема
Сначала решите, на чём будет жить база. От этого зависят бюджет, скорость и то, кто отвечает за железо.
| Вариант | Когда выбирают | Плюсы | Минусы |
|---|---|---|---|
| 🖥️ Физический сервер в офисе | 20+ пользователей, своя ИТ-служба | Полный контроль, нет «соседей» по диску | Покупка, обслуживание, ИБП, охлаждение |
| ☁️ Виртуальная машина (свой гипервизор) | Уже есть кластер виртуализации | Снимки, быстрый перенос, гибкие ресурсы | Делит диски и процессор с другими ВМ |
| 🌐 Аренда в облаке (VPS/выделенный) | Нет серверной, распределённые офисы | Не нужно своё железо, быстрый старт | Задержки сети, зависимость от провайдера |
Ориентиры по ресурсам для связки «сервер 1С + СУБД на одной машине» (примерно, для типовых конфигураций):
| Пользователей | Ядра | Память | Диск |
|---|---|---|---|
| до 10 | 4 | 16 ГБ | SSD от 240 ГБ |
| 10–30 | 6–8 | 32 ГБ | NVMe SSD, RAID 1 |
| 30–80 | 8–16 | 64–128 ГБ | NVMe, отдельные тома под данные и журналы |
Частота ядра для 1С важнее их количества. Один тяжёлый отчёт или закрытие месяца выполняется в одном потоке, и 3,5 ГГц дают заметно больше, чем 2,2 ГГц на сорока ядрах.
Для работы в клиент-серверном режиме нужна лицензия на сервер 1С:Предприятия 8 (ПРОФ или КОРП) плюс клиентские лицензии на каждого одновременно работающего пользователя. Клиентские лицензии от файлового варианта переиспользуются, серверная покупается отдельно.
Перед установкой подготовьте:
- 📌 Статический IP-адрес сервера и понятное имя в DNS.
- 📌 Учётную запись администратора ОС.
- 📌 Дистрибутивы: «Технологическая платформа», СУБД, при необходимости — PostgreSQL в сборке для 1С.
- 📌 Серверную и клиентские лицензии (пинкоды программной лицензии или USB-ключи).
- 📌 Свежую выгрузку
.dtтекущей базы.
Операционная система и СУБД для базы 1С на сервере
Сервер 1С 8.3 работает на Windows Server и на Linux (Ubuntu, Debian, Astra Linux, РЕД ОС, Альт). Выбор обычно диктуют СУБД и навыки администратора.
| Связка | Кому подходит | Что учесть |
|---|---|---|
| Windows Server + MS SQL Server | Привычная среда, админ знает Windows | Лицензии Windows и SQL Server стоят дорого |
| Windows Server + PostgreSQL | Хотят уйти от платной СУБД, не меняя ОС | PostgreSQL нужен в сборке с патчами для 1С |
| Linux + PostgreSQL | Импортозамещение, экономия на лицензиях | Нужен администратор Linux |
Настройка MS SQL Server под 1С
При установке и после неё проверьте пять параметров:
- 🔤 Параметры сортировки —
Cyrillic_General_CI_AS. Задаётся при установке экземпляра, потом поменять сложно. - 💾 Максимальная память сервера (
max server memory) — оставьте ОС и процессам 1С 6–8 ГБ, остальное отдайте SQL. Без ограничения SQL заберёт всю память, иrphostначнёт свопиться. - ⚙️ Max degree of parallelism — для 1С обычно ставят 1. Запросы платформы короткие, параллелизм больше мешает.
- 📂 Расположение файлов — данные, журнал транзакций и
tempdbна разные диски или тома, если есть возможность. - 🔐 Режим проверки подлинности — смешанный. Для 1С создайте отдельного SQL-пользователя с правами создавать базы, не используйте
saв работе.
PostgreSQL под 1С
Обычный «ванильный» PostgreSQL из репозитория дистрибутива для 1С не годится. Нужна сборка с патчами: от фирмы 1С или Postgres Pro. Номер версии PostgreSQL берите из списка поддерживаемых для вашего релиза платформы.
После установки PostgreSQL сразу поправьте postgresql.conf: shared_buffers около четверти памяти, effective_cache_size — половина-три четверти. Значения по умолчанию рассчитаны на слабую машину.
Установка сервера 1С:Предприятия 8.3
На Windows
- Запустите
setup.exeиз дистрибутива технологической платформы. - В списке компонентов отметьте «Сервер 1С:Предприятия 8», «Администрирование сервера 1С:Предприятия» и «1С:Предприятие 8» (клиент пригодится для загрузки базы).
- На шаге установки сервера выберите вариант «как сервис Windows». Мастер предложит создать пользователя
USR1CV8, под которым будет работать служба. - Завершите установку и проверьте в «Службах», что служба агента сервера запущена.
- Через меню «Пуск» выполните «Регистрация утилиты администрирования серверов». Без этого консоль администрирования не откроется.
На Linux
Платформа ставится из пакетов .deb или .rpm (или единым установщиком в новых релизах). Файлы ложатся в /opt/1cv8/. После установки запустите службу сервера и включите автозапуск. Имя службы зависит от релиза, найти его можно так:
systemctl list-unit-files | grep -i 1c
Для управления кластером на Linux поднимите сервер администрирования ras (порт по умолчанию 1545) и работайте через rac или через консоль с Windows-машины.
Порты, которые надо открыть
| Порт | Процесс | Назначение |
|---|---|---|
| 1540 | ragent | Агент сервера |
| 1541 | rmngr | Менеджер кластера |
| 1560–1591 | rphost | Рабочие процессы |
| 1545 | ras | Сервер администрирования (если используется) |
| 1433 / 5432 | СУБД | MS SQL / PostgreSQL, только между сервером 1С и СУБД |
Порт СУБД наружу не открывайте. К базе данных ходит только сервер 1С, пользователям он не нужен.
Создание базы на сервере и перенос файловой базы
Пустую базу удобнее создать в консоли «Администрирование серверов 1С:Предприятия»:
- Разверните дерево:
Центральный сервер 1С:Предприятия 8.3 → Кластеры → Локальный кластер → Информационные базы. - Правой кнопкой по «Информационные базы» → «Создать» → «Информационная база».
- Заполните поля:
- Имя — латиницей, без пробелов, например
buh_ooo_romashka. Это имя войдёт в строку подключения. - Сервер баз данных — имя сервера СУБД (или
localhost, если на этой же машине). - Тип СУБД — MS SQL Server или PostgreSQL.
- База данных — имя базы в СУБД, удобно совпадает с именем в кластере.
- Пользователь и пароль сервера БД — тот SQL-пользователь, которого вы создали.
- Смещение дат — для MS SQL ставят 2000.
- Имя — латиницей, без пробелов, например
- Включите «Создать базу данных в случае её отсутствия».
- «Разрешить выдачу лицензий сервером 1С:Предприятия» — «Да», если лицензии стоят на сервере.
- Нажмите «ОК» и дождитесь создания пустой базы.
То же можно сделать из окна запуска 1С: «Добавить» → «Создание новой информационной базы» → вариант «На сервере 1С:Предприятия».
Перенос существующей файловой базы
- В старой базе откройте Конфигуратор:
Администрирование → Выгрузить информационную базу, сохраните файл.dt. - Добавьте в список баз новую серверную базу и откройте её в Конфигураторе.
- Выполните
Администрирование → Загрузить информационную базуи выберите файл.dt. - После загрузки откройте базу в режиме «1С:Предприятие» и проверьте остатки по ключевым счетам или регистрам.
Загрузка .dt полностью заменяет данные в целевой базе. Если перепутать базу в списке, вы затрёте рабочие данные без возможности отмены.
Сразу после переноса включите блокировку регламентных заданий в свойствах тестовой копии базы. Иначе копия начнёт обмениваться с банком, ЭДО и сайтом от имени рабочей организации.
Рабочие процессы, сеансы и таймауты
Сколько рабочих процессов нужно
Вся работа пользователей выполняется в процессах rphost. В 8.3 их число платформа регулирует сама, исходя из настроек рабочего сервера в консоли (ветка «Рабочие серверы» → свойства сервера):
- 🔢 Количество ИБ на процесс — сколько баз может обслуживать один процесс.
- 👥 Количество соединений на процесс — сколько сеансов он держит, прежде чем платформа запустит следующий.
- 🧠 Максимальный объём памяти рабочих процессов и Безопасный расход памяти за один вызов — защита от «тяжёлого» отчёта, который съест всю память.
Для небольшой организации значения по умолчанию обычно подходят. Менять их стоит, когда один rphost разрастается до 10–15 ГБ и база тормозит у всех сразу. Тогда уменьшите количество соединений на процесс — нагрузка разойдётся по нескольким процессам.
Проблемные процессы платформа может перезапускать сама. В свойствах кластера задаются интервал перезапуска и допустимый объём памяти процесса. Для 24/7-работы это лучше, чем ручной перезапуск службы.
Таймауты сеансов и блокировок
Тут три разных настройки, их часто путают:
| Настройка | Где | Что делает |
|---|---|---|
| Время ожидания блокировки данных | Конфигуратор: Администрирование → Параметры информационной базы | Сколько секунд транзакция ждёт освобождения данных, прежде чем выдать ошибку блокировки |
| Время засыпания пассивного сеанса | Там же | Через сколько секунд сеанс без связи с клиентом «засыпает» и перестаёт держать лицензию |
| Время завершения спящего сеанса | Там же | Через сколько секунд уснувший сеанс удаляется окончательно |
Время задаётся в секундах. Если пользователи жалуются на ошибки блокировок при одновременном проведении, не увеличивайте таймаут бездумно до минут. Сначала проверьте, включён ли управляемый режим блокировок в конфигурации.
Ставить короткое время завершения спящего сеанса имеет смысл, если лицензий впритык. Тогда «зависшие» после обрыва связи сеансы быстрее освобождают места.
Настройка доступа пользователей к базе на сервере
Подключение клиента
На каждом рабочем месте ставится клиент 1С той же версии, что и сервер. Номер платформы клиента должен совпадать с номером сервера до последней цифры, иначе подключение не пройдёт.
В окне запуска: «Добавить» → «Добавление в список существующей информационной базы» → «На сервере 1С:Предприятия». Укажите имя кластера (имя сервера) и имя базы в кластере. Если менеджер кластера работает не на порту 1541, укажите порт через двоеточие: server1c:1641.
Для массовой раздачи используйте общий файл списка баз .v8i или строку подключения:
Srvr="server1c";Ref="buh_ooo_romashka";
Пользователи и права
- 👤 Пользователей базы создают в самой программе: в типовых конфигурациях —
Администрирование → Настройки пользователей и прав → Пользователи. - 🔑 Для доменной сети включите аутентификацию ОС. Пользователь входит без пароля 1С под своей учётной записью Windows.
- 🛡️ Администратора кластера задайте в консоли (ветка «Администраторы» кластера). Без этого любой, у кого есть консоль, может удалить базу.
Удалённый доступ
Толстый и тонкий клиент напрямую через интернет к серверу 1С не выводят. Варианты: VPN, терминальный сервер (RDP) или публикация базы на веб-сервере IIS/Apache для тонкого и веб-клиента по HTTPS.
Производительность и мониторинг сервера 1С
Большинство «тормозов» на сервере вызывают не настройки 1С, а диск и СУБД. Проверяйте по порядку:
- Диск. Очередь к диску на томе с базой не должна стабильно держаться высокой. HDD под базой 1С — частая причина медленной работы.
- Память СУБД. Проверьте, что лимит памяти SQL задан и ОС не уходит в своп.
- Обслуживание базы. Еженедельно — перестроение индексов, ежедневно — обновление статистики. В MS SQL это делается планом обслуживания, в PostgreSQL —
VACUUM ANALYZE(автоочистка должна быть включена). - Сеть. Между сервером 1С и СУБД — гигабит и выше, без промежуточных маршрутизаторов.
- Энергосбережение. На Windows Server включите план питания «Высокая производительность». Режим «Сбалансированный» занижает частоту процессора.
Чем смотреть, что происходит
- 📊 Консоль кластера: ветка «Сеансы» покажет, кто работает, сколько памяти и времени вызовов занимает сеанс, ветка «Блокировки» — кто кого ждёт.
- 📝 Технологический журнал: включается файлом
logcfg.xmlв каталогеconfплатформы. Пишите в журнал только нужные события (например, длительные вызовы и взаимоблокировки), иначе он займёт весь диск за день. - 🖥️ Счётчики ОС: загрузка процессора по ядрам, свободная память, очередь диска.
# Linux: список сеансов через сервер администрирования
rac cluster list
rac session list --cluster=<uuid_кластера>
Резервное копирование и восстановление базы на сервере
Для клиент-серверной базы основной инструмент — копии средствами СУБД. Выгрузка .dt идёт долго, а при работающих пользователях может дать несогласованные данные. Её делают перед обновлением и переносом, а не каждую ночь.
| Способ | Как часто | Что даёт |
|---|---|---|
| Полная копия СУБД | Ежедневно ночью | Восстановление на конец прошлого дня |
| Копия журнала транзакций (MS SQL, модель Full) | Каждые 15–60 минут | Восстановление на любой момент дня |
pg_dump / копия кластера PostgreSQL | Ежедневно | Аналог полной копии |
Выгрузка .dt | Перед обновлением, переносом | Переносимый файл для любой СУБД |
Правило 3-2-1 работает и здесь: три копии, на двух разных носителях, одна — вне сервера и вне офиса.
# PostgreSQL: сжатая копия одной базы
pg_dump -U postgres -Fc -f /backup/buh_$(date +%F).dump buh_ooo_romashka
Как восстановить
- Заблокируйте начало сеансов в свойствах базы в консоли кластера.
- Восстановите копию в СУБД: в MS SQL — через «Восстановить базу данных» в Management Studio, в PostgreSQL —
pg_restoreв пустую базу. - Снимите блокировку и проверьте данные в 1С.
Раз в месяц делайте пробное восстановление в отдельную базу. Копия, которую ни разу не разворачивали, — это надежда, а не резервное копирование.