Администрирование · 12 мин
Где находится серверная база 1С и как определить её расположение
Где физически хранится серверная база 1С на SQL Server, PostgreSQL и в кластере 1С. Способы узнать путь к базе, проверить расположение файлов и настроить хранение.
Вопрос «где находится серверная база 1С» возникает у администраторов при настройке резервного копирования, переносе базы на другой сервер или поиске причин нехватки дискового пространства. Ключевой момент, который нужно понять сразу: в клиент-серверном варианте работы 1С сама база данных физически находится на сервере СУБД, а не в каталоге сервера 1С:Предприятия.
Сервер 1С:Предприятия выполняет роль посредника: он принимает запросы от клиентских приложений, преобразует их в SQL-запросы и передаёт в систему управления базами данных. В своих каталогах сервер 1С хранит только служебную информацию — список информационных баз, настройки кластера, журналы регистрации и временные файлы сеансов.
Поэтому искать «файл базы» в папке srvinfo бессмысленно — там лежит лишь реестр кластера, а сами данные (справочники, документы, регистры) расположены в файлах СУБД. Ниже разберём, как определить точное расположение для каждой поддерживаемой СУБД и как не перепутать серверную базу с файловой.
Как устроено хранение данных в клиент-серверной 1С
Клиент-серверная архитектура 1С состоит из трёх звеньев: клиентское приложение (тонкий, толстый или веб-клиент), сервер 1С:Предприятия и сервер СУБД. Данные физически размещаются только в третьем звене. Сервер 1С может работать на той же машине, что и СУБД, или на отдельном физическом/виртуальном сервере — на расположение файлов базы это не влияет.
На сервере 1С в каталоге srvinfo (по умолчанию C:\Program Files\1cv8\srvinfo на Windows или /opt/1cv8/srvinfo в Linux) хранятся: файл 1CV8Clst.lst со списком баз кластера, подкаталоги reg_1541 и аналогичные с журналами регистрации, файлами сеансовых данных и снимками. Это служебная информация, а не сама база.
Реальные таблицы с данными находятся в базе данных СУБД под именем, которое администратор указал при создании информационной базы в консоли кластера. Именно эту базу нужно резервировать, переносить и обслуживать средствами СУБД.
Как узнать, какая СУБД и какая база используются
Первый шаг — открыть консоль администрирования серверов 1С (оснастка «Администрирование серверов 1С:Предприятия» на Windows или скрипты rac/ras на Linux). В дереве слева разверните кластер, откройте ветку «Информационные базы» и найдите нужную базу.
Двойной щелчок по базе открывает окно свойств. Здесь указаны ключевые параметры: тип СУБД (MSSQLServer, PostgreSQL, Oracle, DB2), имя сервера баз данных, имя базы данных в СУБД, а также пользователь СУБД, под которым сервер 1С подключается к базе. Именно сочетание «сервер СУБД + имя базы» и есть логическое расположение вашей базы.
- 1Откройте консоль администрирования серверов 1С и разверните нужный кластер
- 2Откройте ветку «Информационные базы» и дважды щёлкните по нужной базе
- 3Запишите тип СУБД, имя сервера баз данных и имя базы данных
- 4Подключитесь к указанному серверу СУБД его штатными средствами
- 5Найдите базу по имени и посмотрите пути к её файлам данных и журнала
Если консоль кластера недоступна, альтернативный способ — посмотреть строку подключения в списке баз клиентского приложения. В свойствах базы в окне запуска 1С для серверного варианта указываются параметры вида Srvr="ИмяСервера";Ref="ИмяБазы";. Здесь Ref — имя базы в кластере 1С, которое обычно совпадает с именем базы в СУБД (но не гарантированно — проверяйте через консоль).
Где лежат файлы базы в MS SQL Server
В MS SQL Server каждая база данных состоит минимум из двух файлов: основного файла данных с расширением MDF и файла журнала транзакций с расширением LDF. Могут быть добавлены дополнительные файлы данных NDF. Физическое расположение этих файлов задаётся при создании базы и может отличаться от каталога по умолчанию.
Чтобы узнать точные пути, подключитесь к SQL Server через SQL Server Management Studio (SSMS), найдите базу в списке, откройте её свойства и перейдите на страницу «Files» (Файлы). В колонке «Path» будут указаны полные пути к каждому файлу базы. Тот же результат даёт запрос к системному представлению:
SELECT name, physical_name, type_desc FROM sys.master_files WHERE database_id = DB_ID('ИмяБазы1С');По умолчанию файлы размещаются в каталоге данных экземпляра SQL Server, например C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA (номер версии в пути зависит от установленного релиза SQL Server). Однако на практике администраторы часто выносят файлы баз на отдельные диски или массивы, поэтому полагаться на путь «по умолчанию» нельзя — всегда проверяйте фактический путь через SSMS или запрос.
Важно понимать: копировать файлы MDF/LDF напрямую файловыми средствами при работающем SQL Server нельзя — они заблокированы службой. Для резервного копирования используйте штатную команду BACKUP DATABASE, а для переноса — отсоединение базы (Detach) с последующим присоединением (Attach) на новом месте.
Где лежат данные в PostgreSQL
В PostgreSQL структура хранения другая: все базы данных кластера PostgreSQL размещаются внутри единого каталога данных (data directory). Каждой базе соответствует подкаталог с числовым именем — это OID базы, а не её читаемое имя. Поэтому найти «папку с именем базы» напрямую не получится.
Расположение каталога данных зависит от способа установки. Для сборок PostgreSQL под 1С на Linux это часто /var/lib/pgsql/data или /var/lib/postgresql/<версия>/main, на Windows — каталог, указанный инсталлятором, например C:\Program Files\PostgreSQL\<версия>\data. Точный путь виден в параметрах запуска службы PostgreSQL или в файле postgresql.conf (параметр data_directory).
Чтобы связать имя базы 1С с её каталогом, выполните SQL-запрос к системному каталогу:
SELECT oid, datname FROM pg_database WHERE datname = 'ИмяБазы1С';Полученный OID совпадёт с именем подкаталога внутри data/base. Как и в случае с SQL Server, копировать этот каталог при работающем сервере нельзя — используйте pg_dump/pg_dumpall для логического резервного копирования или останавливайте службу для холодного копирования всего каталога данных.
Что хранит сервер 1С: каталог srvinfo
Хотя данные базы лежат в СУБД, каталог srvinfo на сервере 1С тоже важен и его потеря создаёт проблемы. В нём находится реестр кластера — файл 1CV8Clst.lst со списком информационных баз, их описаниями и параметрами подключения к СУБД. Без этого файла сервер 1С «не знает» о существовании баз, хотя сами данные в СУБД остаются целыми.
Также в srvinfo хранятся журналы регистрации (в формате SQLite-файлов lgd или старом формате lgp), файлы снимков сеансов, очереди фоновых заданий и служебные блокировки. При переносе сервера 1С на другую машину каталог srvinfo нужно переносить целиком, иначе придётся заново регистрировать все базы в кластере.
Где что хранится
Реестр баз кластера, журналы регистрации, сеансовые данные. Самих учётных данных здесь нет
Все таблицы базы: справочники, документы, регистры, пользователи. Это и есть «серверная база» в физическом смысле
Только кэш метаданных и настройки пользователя. Данных базы на клиенте нет
Как отличить серверную базу от файловой
Частая путаница возникает у тех, кто привык к файловому варианту 1С, где вся база — это один файл 1Cv8.1CD в сетевой папке. В серверном варианте такого файла не существует в принципе. Проверить тип базы можно в окне запуска 1С: выделите базу и посмотрите строку подключения внизу окна.
Если строка начинается с File="..." — это файловая база, и путь указывает на каталог с файлом 1Cv8.1CD. Если строка вида Srvr="...";Ref="..."; — база серверная, и её физическое расположение определяется через СУБД по инструкции выше. Тот же признак виден в конфигураторе: меню «Администрирование → Свойства информационной базы».
Перенос серверной базы на другой сервер
Когда нужно переместить базу на новое оборудование, правильная последовательность зависит от того, что переносится: только СУБД, только сервер 1С или оба звена. В любом случае начинайте с полной резервной копии базы средствами СУБД и убедитесь, что копия восстанавливается.
Для переноса базы в MS SQL Server типовой путь такой: выполните BACKUP DATABASE на старом сервере, скопируйте файл бэкапа на новый сервер, выполните RESTORE DATABASE. Затем в консоли кластера 1С откройте свойства базы и измените параметр «Сервер баз данных» на новый адрес. Для PostgreSQL аналогичная схема через pg_dump и pg_restore.
Если сервер СУБД не меняется, а переносится только сервер 1С, достаточно установить сервер 1С на новой машине, перенести каталог srvinfo (или заново зарегистрировать базы в кластере с теми же параметрами подключения к СУБД) и переключить клиентов на новый адрес сервера. Сама база при этом остаётся на прежнем месте в СУБД.
Как проверить результат
Указаны корректные сервер СУБД и имя базы, база открывается в клиенте
Ошибка соединения с СУБД при запуске клиента
Файлы базы находятся на ожидаемом диске с достаточным свободным местом
Файлы на системном диске с критически малым объёмом свободного места
Выполняется штатный BACKUP DATABASE или pg_dump именно рабочей базы
Копируется только srvinfo или файлы копируются при работающей СУБД
Частые вопросы
Можно ли найти серверную базу 1С как обычный файл на диске?
Нет, единого файла у серверной базы нет. Данные распределены по файлам СУБД: MDF/LDF у MS SQL Server или по подкаталогам каталога данных у PostgreSQL. Узнать точные пути можно через свойства базы в SQL Server Management Studio или запрос к системным представлениям СУБД.
Где по умолчанию находится каталог srvinfo сервера 1С?
На Windows обычно это C:\Program Files\1cv8\srvinfo, на Linux — /opt/1cv8/srvinfo (для 64-разрядной версии путь может содержать x86_64). Точный каталог задаётся параметром -d при запуске агента сервера и виден в свойствах службы агента сервера 1С.
Достаточно ли копировать папку srvinfo для резервного копирования базы?
Нет. В srvinfo хранится только реестр кластера, журналы регистрации и служебные данные. Все учётные данные находятся в базе СУБД, поэтому резервное копирование нужно выполнять средствами СУБД: BACKUP DATABASE для SQL Server или pg_dump для PostgreSQL.
Имя базы в кластере 1С и в СУБД — это одно и то же?
Не обязательно. При создании базы через консоль кластера имя базы данных в СУБД указывается отдельным параметром и может отличаться от имени информационной базы в кластере. Точное соответствие смотрите в свойствах базы в консоли администрирования серверов 1С.
Как перенести серверную базу на другой диск, если заканчивается место?
Для SQL Server: сделайте полный бэкап, отсоедините базу (Detach), переместите файлы MDF/LDF на новый диск и присоедините базу (Attach) с новыми путями. Для PostgreSQL проще остановить службу, перенести каталог данных целиком и поправить путь в конфигурации службы. Все операции выполняйте только при остановленных сеансах пользователей и после проверочной резервной копии.
Почему клиент 1С не показывает, где физически лежит база?
Клиентское приложение работает только с сервером 1С и не знает о СУБД ничего — это особенность трёхзвенной архитектуры. Информация о сервере баз данных и имени базы доступна только администратору кластера через консоль администрирования или администратору СУБД через её штатные инструменты.
Что важно запомнить
Серверная база 1С физически хранится в СУБД — MS SQL Server, PostgreSQL, Oracle или DB2, а не на сервере 1С. Каталог srvinfo содержит лишь реестр кластера и журналы. Точное расположение файлов базы определяйте через консоль кластера 1С и средства СУБД, а резервное копирование и перенос выполняйте только штатными механизмами СУБД.