Размещение информационной базы 1С: от файлового варианта до сервера с СУБД

· 10 мин

Содержание

Базу 1С на 5–10 пользователей храните файлом на локальном SSD того компьютера или сервера, где она открывается. Для 15–20 человек и больше, а также для базы тяжелее 20–30 ГБ, нужен клиент-серверный вариант: сервер 1С:Предприятия плюс СУБД (MS SQL Server или PostgreSQL), а данные СУБД на NVMe SSD в RAID 1 или RAID 10. Сетевая папка на NAS для общей файловой базы — худший вариант из всех: медленно и с риском повредить файл 1Cv8.1CD.

Это общие правила для платформы 8.3, от конфигурации они почти не зависят: БП 3.0, ЗУП 3.1, УТ 11 и ERP нагружают диски по-разному, но принципы одинаковые.

Файловая база или СУБД: как выбрать вариант хранения

Файловая база — это один файл 1Cv8.1CD в каталоге базы. Всю работу с ним ведёт каждый клиент сам. Когда клиентов много, они толкаются за блокировки одного файла, и база начинает «думать» на каждом проведении.

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

ПризнакФайловая базаСервер 1С + СУБД
Одновременных пользователейдо 5–10 комфортноот 10–15 и выше
Размер базыдо 10–20 ГБ без проблемдесятки и сотни ГБ
Обмены, регламентные задания по расписаниюограниченнополноценно
Резервное копирование без остановки работынетда, средствами СУБД
Стоимостьтолько лицензии клиентовплюс лицензия сервера 1С, Windows/Linux, при MS SQL — его лицензия
Администрированиепочти не нужнонужен человек, который понимает СУБД

Ориентир по деньгам: лицензия сервера 1С (x86-64) стоит примерно 80–90 тыс. руб., PostgreSQL в сборке для 1С бесплатен, MS SQL Server Standard обойдётся заметно дороже — в сотни тысяч рублей в зависимости от числа ядер. Цены ориентировочные, уточняйте у партнёра.

Какой вариант хранения подходит вашей базе?

Где точно не стоит держать файловую базу

  • 🚫 На NAS или общей папке, которую открывают по SMB пять-десять человек. Обрыв сети в момент записи — частая причина повреждения 1Cv8.1CD.
  • 🚫 В облачной папке с синхронизацией (Яндекс Диск, OneDrive и подобные). Синхронизация копирует файл, пока 1С его пишет.
  • 🚫 На USB-диске и на HDD 5400 об/мин в ноутбуке.

Если файловую базу нужно открыть из нескольких офисов, не тяните её по VPN как сетевой диск. Поставьте сервер терминалов (RDP) рядом с базой: по каналу пойдёт только картинка, а файл будет читаться с локального диска.

Дисковая подсистема для баз 1С: SSD, NVMe и HDD

Узкое место сервера 1С чаще всего — диски, а не процессор. Проведение документа — это много мелких случайных записей. HDD выдаёт на таких операциях 150–200 IOPS, SATA SSD — десятки тысяч, NVMe — сотни тысяч. Разница видна на любом закрытии месяца.

Что выбрать

Тип накопителяГде применятьГде не применять
NVMe SSD серверного классафайлы данных СУБД, tempdb, журнал транзакций—
SATA/SAS SSD серверного классаданные небольших баз, системный дискочень нагруженные базы на 100+ пользователей
HDD 7200/10000 об/минхранение резервных копий, архивданные и журнал рабочей базы

Берите SSD именно серверного класса: с защитой от потери питания (PLP) и ресурсом записи от 1 DWPD. Десктопные модели на нагрузке 1С быстро исчерпывают ресурс, а при пропадании питания могут потерять данные из кэша.

Как разложить файлы СУБД по дискам

Для базы на 20–50 пользователей хватит одного массива NVMe под всё. Начиная с 50–100 пользователей разнесите нагрузку:

  1. Системный диск — ОС и программы, RAID 1 из двух SSD.
  2. Файлы данных баз (.mdf в MS SQL, каталог data в PostgreSQL) — отдельный массив NVMe.
  3. Журнал транзакций (.ldf в MS SQL, pg_wal в PostgreSQL) — отдельный диск или массив: журнал пишется последовательно, и ему мешает случайное чтение данных.
  4. tempdb в MS SQL — на быстрый NVMe. 1С активно использует временные таблицы в запросах, и tempdb нагружается сильнее, чем кажется.
  5. Резервные копии — на отдельный носитель, не на те же диски, где данные.

Файл журнала транзакций MS SQL в модели восстановления Full растёт, пока не сделана копия журнала. Включили Full и не настроили бэкап журнала — через месяц диск заполнится, и база встанет.

RAID-массивы для сервера 1С: какой уровень выбрать

RAID защищает от отказа диска, но не заменяет резервную копию. Удалённые данные, ошибочная обработка и шифровальщик поражают все диски массива одновременно.

УровеньСколько дисковДля чегоМинусы
RAID 12система, журнал транзакций, небольшие базыдоступна половина объёма
RAID 104 и большеданные СУБД на нагруженном сервередоступна половина объёма
RAID 53 и большеархив, файловое хранилище копиймедленная запись, долгое восстановление
RAID 64 и большехранилище резервных копий на HDDещё медленнее на запись, чем RAID 5
RAID 02 и большетолько tempdb, если она пересоздаётся при стартеотказ одного диска — потеря всего

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

Контроллер и кэш

  • ✅ Аппаратный RAID-контроллер с кэшем на запись и защитой кэша (батарея или флеш-модуль). Без защиты держите кэш записи выключенным.
  • ✅ Для NVMe часто удобнее программный RAID средствами ОС или контроллер с поддержкой NVMe: обычный SAS-контроллер NVMe не обслужит.
  • ✅ Мониторинг состояния дисков: SMART, оповещение о деградации массива на почту. Массив, который месяц работает на одном диске, — это уже не RAID.

Процессор и оперативная память для сервера 1С и СУБД

Процессор

Отдельный серверный вызов 1С (проведение документа, формирование отчёта) выполняется в основном в одном потоке. Поэтому частота ядра важнее их количества. Процессор на 16 ядер по 2,2 ГГц проиграет 8 ядрам по 3,8 ГГц, если пользователей 30, а не 300.

Ориентиры для сервера, где на одной машине стоят и сервер 1С, и СУБД:

ПользователейЯдерЧастотаОЗУ
до 204–6от 3,5 ГГц32 ГБ
20–508от 3,5 ГГц64 ГБ
50–10012–16от 3,0 ГГц128 ГБ
100+16 и больше, часто отдельные серверы под 1С и СУБДот 3,0 ГГц192 ГБ и выше

Цифры примерные: ERP с производственным учётом нагружает сильнее, чем БП 3.0 на тех же пользователях.

Отключите энергосбережение. В Windows — схема электропитания «Высокая производительность», в BIOS — профиль максимальной производительности. Иначе ядра сбрасывают частоту, и одиночные операции идут медленнее.

Оперативная память

Память делят три потребителя: СУБД, рабочие процессы сервера 1С (rphost) и ОС.

  1. СУБД под кэш данных: в идеале база целиком помещается в память. Для базы 40 ГБ дайте СУБД 40–48 ГБ.
  2. Рабочим процессам 1С: примерно 300–500 МБ на активного пользователя, у тяжёлых конфигураций больше.
  3. ОС: 4–8 ГБ.

В MS SQL обязательно задайте max server memory в свойствах сервера. По умолчанию SQL Server забирает почти всю память, и rphost начинает упираться в файл подкачки. В PostgreSQL ключевые параметры — shared_buffers (обычно около 25% ОЗУ) и effective_cache_size; сборки PostgreSQL для 1С уже идут с подходящим postgresql.conf, но его стоит проверить под ваш объём памяти.

Сеть между клиентами, сервером 1С и СУБД

Схема взаимодействия такая: клиент обращается к агенту сервера 1С (порт 1540), затем к менеджеру кластера (1541) и к рабочим процессам. Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера, по умолчанию это 1560–1591. Все эти порты должны быть открыты на брандмауэре сервера.

Сервер 1С и СУБД обмениваются данными очень часто и мелкими порциями. Здесь важна задержка, а не ширина канала.

  • ✅ Лучший вариант для малых и средних систем — сервер 1С и СУБД на одной машине. MS SQL в этом случае может работать через протокол Shared Memory, без сети.
  • ✅ Если серверы разные — соединение 10 Гбит/с между ними, в одной стойке, без маршрутизации через лишние узлы.
  • ✅ Клиентам хватает 1 Гбит/с в локальной сети. Для удалённых офисов — тонкий клиент или RDP: толстый клиент по каналу с высокой задержкой работает плохо.
  • 🚫 Не ставьте СУБД на одну площадку, а сервер 1С на другую. Задержка 5–10 мс между ними превращает отчёт на минуту в отчёт на десять минут.

Если данные СУБД лежат на внешней СХД, подключайте её по Fibre Channel или iSCSI на выделенной сети. Файлы баз MS SQL и PostgreSQL на сетевой папке по SMB или NFS — плохая идея для 1С: задержка и риск повреждения при сбоях сети.

Виртуализация

Сервер 1С и СУБД нормально работают в виртуальных машинах. Условия: зарезервированная память (без динамической), выделенные ядра без переподписки, виртуальные диски на быстром хранилище. Снимок (snapshot) виртуальной машины резервной копией базы не считается.

Резервное копирование и восстановление базы 1С

Правило 3-2-1: три копии данных, на двух разных носителях, одна — вне офиса или в другом облаке. Копия, которую ни разу не восстанавливали, — это надежда, а не копия.

Файловая база

  • 📁 Скопировать каталог базы целиком, когда в ней никто не работает . Копирование «на ходу» даёт файл, который может не открыться.
  • 📁 Выгрузить базу в .dt через Конфигуратор: Администрирование → Выгрузить информационную базу. Пользователи на время выгрузки должны выйти.
  • 📁 В типовых конфигурациях есть встроенное резервное копирование в разделе Администрирование (Обслуживание), оно умеет работать по расписанию для файловых баз.

Клиент-серверная база

Копии делаются средствами СУБД, без выгона пользователей. Типовая схема для MS SQL:

Тип копииЧастотаМодель восстановления
Полнаяраз в сутки, ночьюSimple или Full
Разностнаякаждые 4–6 часовSimple или Full
Журнала транзакцийкаждые 15–60 минуттолько Full

Модель Full с копиями журнала позволяет восстановить базу на конкретную минуту до сбоя. Модель Simple проще: восстановить можно только на момент последней полной или разностной копии.

Пример полной копии средствами T-SQL (имя базы и путь замените на свои):

BACKUP DATABASE [buh_main]
TO DISK = N'E:\Backup\buh_main_full.bak'
WITH COMPRESSION, CHECKSUM, INIT;

В PostgreSQL логическую копию делают через pg_dump, для копий с восстановлением на момент времени — архивирование WAL и базовые копии через pg_basebackup.

Выгрузка .dt для больших клиент-серверных баз — не замена копии СУБД. Выгрузка базы на 100 ГБ идёт часами, требует выгнать пользователей и при восстановлении тоже занимает часы. Делайте .dt перед обновлением конфигурации, а ежедневные копии — средствами СУБД.

Как проверять восстановление

  1. Раз в месяц разворачивайте свежую копию в тестовую базу на другом сервере или под другим именем.
  2. Зарегистрируйте её в кластере 1С как отдельную информационную базу и откройте.
  3. Сформируйте пару отчётов за последний закрытый период и сверьте с рабочей базой.
  4. Засеките время восстановления. Если оно больше, чем бизнес готов ждать, меняйте схему копий заранее, а не в день аварии.
Проверка сервера под базы 1С
Выполнено: 0 / 8

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

Можно ли перевести файловую базу на сервер 1С без потери данных?
Да. Выгрузите базу в .dt через Конфигуратор, создайте новую базу в кластере сервера 1С с нужной СУБД и загрузите в неё файл через Администрирование → Загрузить информационную базу. Пользователи на время переноса должны выйти.
Что лучше для 1С: MS SQL Server или PostgreSQL?
Оба варианта поддерживаются платформой. PostgreSQL бесплатен и работает на Linux и Windows, MS SQL привычнее многим администраторам и платный. На базах до сотни пользователей разницу в скорости определяет скорее настройка и диски, чем выбор СУБД.
Есть ли ограничение на размер файловой базы?
Жёсткий предел у современных форматов файла очень большой, на практике до него не доходят. Проблемы начинаются раньше: на 20–30 ГБ и 10+ пользователях файловая база заметно тормозит, а её копирование и тестирование занимают много времени.
Можно ли хранить базу 1С в облаке?
Да, двумя способами: арендовать виртуальный сервер и поставить на него сервер 1С с СУБД самостоятельно или взять готовую 1С в аренду у провайдера. Требования к дискам и памяти те же, что и для своего железа, их стоит уточнить у провайдера до переезда.
Нужен ли отдельный сервер под СУБД?
До 50–100 пользователей обычно нет: сервер 1С и СУБД на одной машине работают быстрее, чем на двух через сеть. Разносят их, когда одной машине не хватает памяти или ядер.