Размещение информационной базы 1С: от файлового варианта до сервера с СУБД
Содержание
Базу 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 пользователей разнесите нагрузку:
- Системный диск — ОС и программы, RAID 1 из двух SSD.
- Файлы данных баз (
.mdfв MS SQL, каталогdataв PostgreSQL) — отдельный массив NVMe. - Журнал транзакций (
.ldfв MS SQL,pg_walв PostgreSQL) — отдельный диск или массив: журнал пишется последовательно, и ему мешает случайное чтение данных. tempdbв MS SQL — на быстрый NVMe. 1С активно использует временные таблицы в запросах, иtempdbнагружается сильнее, чем кажется.- Резервные копии — на отдельный носитель, не на те же диски, где данные.
Файл журнала транзакций MS SQL в модели восстановления Full растёт, пока не сделана копия журнала. Включили Full и не настроили бэкап журнала — через месяц диск заполнится, и база встанет.
RAID-массивы для сервера 1С: какой уровень выбрать
RAID защищает от отказа диска, но не заменяет резервную копию. Удалённые данные, ошибочная обработка и шифровальщик поражают все диски массива одновременно.
| Уровень | Сколько дисков | Для чего | Минусы |
|---|---|---|---|
| RAID 1 | 2 | система, журнал транзакций, небольшие базы | доступна половина объёма |
| RAID 10 | 4 и больше | данные СУБД на нагруженном сервере | доступна половина объёма |
| RAID 5 | 3 и больше | архив, файловое хранилище копий | медленная запись, долгое восстановление |
| RAID 6 | 4 и больше | хранилище резервных копий на HDD | ещё медленнее на запись, чем RAID 5 |
| RAID 0 | 2 и больше | только 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С, и СУБД:
| Пользователей | Ядер | Частота | ОЗУ |
|---|---|---|---|
| до 20 | 4–6 | от 3,5 ГГц | 32 ГБ |
| 20–50 | 8 | от 3,5 ГГц | 64 ГБ |
| 50–100 | 12–16 | от 3,0 ГГц | 128 ГБ |
| 100+ | 16 и больше, часто отдельные серверы под 1С и СУБД | от 3,0 ГГц | 192 ГБ и выше |
Цифры примерные: ERP с производственным учётом нагружает сильнее, чем БП 3.0 на тех же пользователях.
Отключите энергосбережение. В Windows — схема электропитания «Высокая производительность», в BIOS — профиль максимальной производительности. Иначе ядра сбрасывают частоту, и одиночные операции идут медленнее.
Оперативная память
Память делят три потребителя: СУБД, рабочие процессы сервера 1С (rphost) и ОС.
- СУБД под кэш данных: в идеале база целиком помещается в память. Для базы 40 ГБ дайте СУБД 40–48 ГБ.
- Рабочим процессам 1С: примерно 300–500 МБ на активного пользователя, у тяжёлых конфигураций больше.
- ОС: 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С как отдельную информационную базу и откройте.
- Сформируйте пару отчётов за последний закрытый период и сверьте с рабочей базой.
- Засеките время восстановления. Если оно больше, чем бизнес готов ждать, меняйте схему копий заранее, а не в день аварии.
Частые вопросы
Можно ли перевести файловую базу на сервер 1С без потери данных?
.dt через Конфигуратор, создайте новую базу в кластере сервера 1С с нужной СУБД и загрузите в неё файл через Администрирование → Загрузить информационную базу. Пользователи на время переноса должны выйти.