Администрирование · 12 мин
Где хранятся серверные базы 1С и как их найти
Разбираем, где физически хранятся серверные базы 1С: каталоги SQL Server, PostgreSQL, файловый режим, кластер srvinfo и способы найти базу на сервере.
База 1С в клиент-серверном режиме не лежит одним файлом в понятной папке «рядом с программой». Она распределена как минимум между двумя компонентами: сервером 1С:Предприятия, который хранит служебную информацию о регистрации баз, и сервером СУБД (MS SQL Server, PostgreSQL, Oracle или IBM DB2), где физически находятся сами данные. Поэтому вопрос «где хранится база» всегда распадается на два: где зарегистрирована база и где лежат её файлы данных.
Понимать эту структуру нужно в трёх практических ситуациях: при настройке резервного копирования, при переносе базы на другой сервер и при диагностике переполнения диска. Копирование «не тех» каталогов — типичная причина того, что резервная копия оказывается пустышкой, а восстановить данные из неё невозможно.
Ниже разобраны конкретные пути для каждого компонента: каталог кластера 1С, стандартные каталоги данных популярных СУБД, файловый режим для сравнения, а также способы точно определить расположение конкретной базы через консоль администрирования и средства самой СУБД.
Как устроено хранение: сервер 1С и СУБД
В клиент-серверной архитектуре участвуют три звена: клиентское приложение, сервер 1С:Предприятия и сервер СУБД. Сервер 1С не хранит пользовательские данные — документы, справочники, проводки. Он выполняет код, управляет соединениями и блокировками, а все данные читает и пишет в СУБД по её протоколу.
На стороне сервера 1С хранится только служебная информация: список зарегистрированных информационных баз, параметры кластера, настройки пользователей кластера, журнал регистрации (если он не перенесён отдельно). Это небольшой по объёму каталог, но без него база «исчезает» из списка, хотя данные в СУБД остаются нетронутыми.
На стороне СУБД хранится всё содержимое базы: таблицы с данными, индексы, хранимые процедуры, журнал транзакций. Именно файлы СУБД занимают гигабайты и терабайты на диске, и именно их нужно учитывать при планировании дискового пространства и резервного копирования.
Каталог srvinfo: где сервер 1С хранит список баз
Регистрационная информация кластера находится в каталоге srvinfo. На Windows по умолчанию это C:\Program Files\1cv8\<версия платформы>\srvinfo либо каталог C:\Program Files\1cv8\srvinfo, если путь не менялся при установке. На Linux стандартный путь — /opt/1cv8/x86_64/<версия>/srvinfo или заданный параметром -d при запуске агента сервера.
Внутри srvinfo находятся подкаталоги вида reg_1541 (номер соответствует порту кластера) и файлы списка информационных баз — 1CV8Clst.lst и связанные с ним. В них в текстовом и бинарном виде записаны: имя базы, тип СУБД, адрес сервера СУБД, имя базы данных на стороне СУБД и признак блокировки соединений.
Если сервер 1С переустанавливали или агент запускается с другим рабочим каталогом, srvinfo может оказаться в нестандартном месте. Точный путь виден в свойствах службы «Агент сервера 1С:Предприятия» в Windows — параметр -d в строке запуска исполняемого файла ragent.exe.
Где лежат данные в MS SQL Server
Для MS SQL Server каждая база 1С — это обычная база данных SQL Server, состоящая минимум из двух файлов: основного файла данных с расширением MDF и файла журнала транзакций LDF. Возможны дополнительные файлы данных NDF, если базу разбивали на файловые группы.
По умолчанию файлы лежат в каталоге данных экземпляра SQL Server, например C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA — точный путь зависит от версии и имени экземпляра. Однако при создании базы администратор мог указать любой другой диск, и на практике базы часто размещают на отдельных массивах.
Точное расположение файлов конкретной базы проще всего узнать запросом в SQL Server Management Studio:
SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID(N'ИмяБазы1С');Запрос вернёт полные пути ко всем файлам данных и журнала. Это единственный надёжный способ: искать файлы по имени базы в проводнике нельзя, потому что логическое имя базы в 1С, имя базы в SQL Server и имена файлов могут не совпадать.
Где лежат данные в PostgreSQL
В PostgreSQL база 1С — это база данных внутри кластера PostgreSQL. Физически все базы кластера хранятся в общем каталоге данных, который задаётся при инициализации. Типичные пути: на Windows — C:\Program Files\PostgreSQL\<версия>\data, на Linux — /var/lib/pgsql/<версия>/data или /var/lib/postgresql/<версия>/main в зависимости от дистрибутива.
Внутри каталога data находится подкаталог base, где каждой базе соответствует папка с числовым именем — это внутренний идентификатор OID, а не имя базы. Сопоставить OID и имя можно запросом:
SELECT oid, datname FROM pg_database ORDER BY datname;Искать файлы конкретной базы «глазами» по каталогу base неудобно и рискованно: вручную копировать или удалять эти папки нельзя ни при каких обстоятельствах — это разрушит кластер PostgreSQL. Резервное копирование выполняется только штатными средствами: pg_dump, pg_basebackup или на уровне файловой системы с корректной остановкой службы.
Файловый режим: для сравнения и пограничных случаев
В файловом режиме вся база — это один файл 1Cv8.1CD, который лежит в каталоге, указанном при добавлении базы в список. Этот каталог может находиться на локальном диске или в сетевой папке. Путь до базы виден внизу окна выбора информационных баз при выделении строки, а также в параметре Connect=File="..." строки соединения.
Файловый режим встречается и на серверах: небольшие организации размещают каталог с файлом 1Cv8.1CD в общей сетевой папке и считают это «серверной базой». Технически это не клиент-серверный вариант: сервер 1С и СУБД не участвуют, а одновременная работа ограничена механизмом файловых блокировок.
Отличить режим просто: если в свойствах базы в списке указан путь к каталогу — это файловая база; если указаны сервер 1С и имя базы на сервере — клиент-серверная. От этого зависит и стратегия копирования: файл 1Cv8.1CD можно скопировать как обычный файл (при отсутствии активных сеансов), а базу СУБД — только средствами СУБД.
Сравнение вариантов
Подходит для небольших команд и простых сценариев. Ограничение: файл копируется только при закрытых сеансах, при росте объёма и числа пользователей падает производительность.
Подходит для одновременной работы десятков и сотен пользователей. Ограничение: требует администрирования СУБД, резервное копирование только штатными средствами СУБД.
Как найти конкретную базу: пошаговый порядок
Когда нужно точно определить, где лежит конкретная база, действуйте от регистрации к физическим файлам, а не наоборот. Поиск по диску файлов с похожими именами даёт ложные совпадения, особенно если на сервере несколько копий и тестовых баз.
- 1Откройте консоль администрирования серверов 1С (или оснастку «Администрирование серверов 1С») и найдите нужную информационную базу в дереве кластера.
- 2В свойствах базы посмотрите тип СУБД, адрес сервера СУБД и имя базы данных на стороне СУБД.
- 3Подключитесь к указанному серверу СУБД (SSMS для MS SQL, psql или pgAdmin для PostgreSQL).
- 4Запросом к sys.master_files (MS SQL) или pg_database/pg_tablespace (PostgreSQL) получите физические пути файлов.
- 5Проверьте, что найденные файлы по размеру и дате изменения соответствуют рабочей базе, а не старой копии.
Если консоль администрирования недоступна, имя базы на стороне СУБД можно подсмотреть в файле списка баз внутри srvinfo, но удобнее открыть свойства базы в конфигураторе: меню «Администрирование — Свойства информационной базы» показывает сервер СУБД и имя базы данных.
Как проверить результат
Имена совпадают, запрос путей возвращает существующие файлы
В СУБД такой базы нет — регистрация устарела или база переименована
Файлы изменялись недавно, в период активной работы пользователей
Файлы старые — это заброшенная копия, рабочая база лежит в другом месте
Размер соответствует ожидаемому объёму учётных данных
Подозрительно маленький MDF на десятки мегабайт при многолетнем учёте — вероятно, не та база
Резервное копирование и перенос: что копировать на самом деле
Главная практическая ошибка — копировать srvinfo и считать, что база сохранена. Каталог srvinfo содержит только регистрацию, в нём нет данных. Резервная копия серверной базы делается на стороне СУБД: полный backup средствами MS SQL Server, pg_dump или pg_basebackup для PostgreSQL. Альтернатива — выгрузка в файл .dt через конфигуратор, которая не зависит от СУБД, но занимает заметно больше времени на больших базах.
При переносе базы на другой сервер последовательность обратная поиску: сначала восстанавливают базу в целевой СУБД, затем в консоли администрирования нового кластера создают информационную базу, указывая существующую базу данных. Копировать srvinfo со старого сервера на новый имеет смысл только при миграции кластера целиком и с остановленными службами.
Как выбрать действие
Что важно запомнить
Серверная база 1С живёт в двух местах: регистрация — в каталоге srvinfo кластера 1С, данные — в файлах СУБД. Точные пути определяют через консоль администрирования и системные запросы СУБД. Копировать и переносить базу нужно средствами СУБД или выгрузкой .dt, а не копированием служебных каталогов.
Частые вопросы
Можно ли перенести серверную базу 1С, просто скопировав папку srvinfo?
Нет. В srvinfo хранится только регистрационная информация кластера: список баз, настройки, блокировки. Сами данные — документы, справочники, проводки — находятся в файлах СУБД. Перенос выполняется через backup/restore на стороне СУБД или выгрузку .dt, после чего база заново регистрируется в кластере на новом сервере.
Как узнать путь к базе, если нет доступа к консоли администрирования 1С?
Откройте конфигуратор под пользователем с правами администратора и посмотрите «Администрирование — Свойства информационной базы»: там указаны тип СУБД, сервер и имя базы данных. Затем путь к файлам получите запросом к sys.master_files в MS SQL или pg_database в PostgreSQL. Крайний вариант — изучить файл списка баз внутри каталога srvinfo.
Почему в каталоге base PostgreSQL нет папок с именами баз?
PostgreSQL хранит данные каждой базы в папке с числовым именем — внутренним идентификатором OID. Сопоставление OID и имён баз возвращает запрос SELECT oid, datname FROM pg_database. Ориентироваться по именам папок и тем более изменять их вручную нельзя.
Что занимает больше всего места: srvinfo или файлы СУБД?
Файлы СУБД. Каталог srvinfo обычно занимает от мегабайт до нескольких гигабайт (в основном за счёт журнала регистрации), тогда как база в СУБД может достигать сотен гигабайт. При нехватке места в первую очередь проверяйте файлы данных и журналы транзакций LDF, которые при модели полного восстановления растут до первого бэкапа журнала.
Можно ли хранить файлы базы на сетевом диске?
Для СУБД это не рекомендуется и часто технически невозможно без специальных настроек: сетевые протоколы не гарантируют нужной семантики блокировок и записи, что грозит повреждением базы. Файлы данных размещают на локальных дисках сервера СУБД или на СХД с блочным доступом (iSCSI, FC). Сетевые папки допустимы только для файлового режима 1С и для хранения готовых резервных копий.
База есть в SQL Server, но в списке баз 1С её нет. Что делать?
Данные не потеряны: пропала только регистрация в кластере. Откройте консоль администрирования серверов 1С, создайте новую информационную базу и в поле «База данных» укажите имя существующей базы в SQL Server. Платформа обнаружит, что база уже содержит данные 1С, и подключит её без потери информации.