Табличные пространства и 1С
При работе с базами данных 1С на Tantor Postgres важно понимать особенности использования табличных пространств (tablespaces). Платформа 1С имеет встроенную поддержку специальных табличных пространств, которая позволяет оптимизировать размещение данных и индексов.
Предопределенные табличные пространства
Платформа 1С понимает и автоматически использует два предопределенных табличных пространства с фиксированными именами:
- v81c_data — для размещения таблиц с данными
- v81c_index — для размещения индексов
Эти имена жестко заданы в платформе и не могут быть изменены. При наличии данных табличных пространств в базе Tantor Postgres платформа 1С будет автоматически их использовать.
Автоматическое создание объектов
При создании информационной базы средствами платформы 1С (через DT или утилиту ibcmd) происходит автоматическое распределение объектов базы данных:
- Все таблицы автоматически размещаются в табличном пространстве v81c_data
- Все индексы автоматически размещаются в табличном пространстве v81c_index
Это позволяет физически разделить данные и индексы, что может дать преимущества в производительности при размещении их на разных дисковых подсистемах.
Объекты в дефолтном табличном пространстве
Несмотря на использование специальных табличных пространств, некоторые объекты базы данных все равно создаются в дефолтном табличном пространствеTantor Postgres. К таким объектам относятся:
Системные таблицы 1С
- Таблицы конфигурации и метаданных
- Служебные таблицы платформы
- Таблицы для хранения настроек и параметров системы
Временные объекты
- Временные таблицы, создаваемые во время выполнения запросов
- Промежуточные таблицы для сложных операций
Служебные структуры
- Последовательности (sequences)
- Некоторые системные индексы
- Таблицы для хранения блокировок и транзакционной информации
Восстановление базы через pg_restore
При восстановлении базы данных 1С с помощью стандартной утилиты Tantor Postgres pg_restore необходимо учитывать, что табличные пространства v81c_data и v81c_index должны быть созданы, чтобы pg_restore сразу разместил таблицы и индексы по ним, иначе вы можете получить ошибку:
pg_restore: error: could not set default tablespace to v81c_index: ERROR: invalid value for parameter "default_tablespace": "v81c_index"
DETAIL: Tablespace "v81c_index" does not exist.
Ошибка означает, что pg_restore не может установить табличное пространство v81c_index, потому что оно не существует в целевой базе данных. Если отсутствует табличное пространство v81c_data, то данные будут восстанавливаться в табличное пространство по умолчанию.
Если у вас нет данных табличных пространств, то вы можете запускать pg_restore с параметром --no-tablespaces, который позволяет игнорировать наличие табличных пространств.
Управление пользовательскими табличными пространствами
Помимо предопределенных табличных пространств, платформа 1С поддерживает управление пользовательскими табличными пространствами. Это позволяет администраторам более гибко управлять размещением данных в зависимости от специфики конкретной информационной системы.
Подробная информация о возможностях управления пользовательскими табличными пространствами доступна в официальной документации 1С.