Табличные пространства и 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 возникает особенность: утилита не понимает специальные табличные пространства 1С и размещает все объекты в дефолтном табличном пространстве.
Размещение таблиц в v81c_data
Для размещения таблиц в правильном табличном пространстве при восстановлении необходимо указать параметр --tablespace в команде pg_restore:
pg_restore -d database_name --tablespace=v81c_data backup_file.sql
Эта команда разместит все таблицы в табличном пространстве v81c_data.
Размещение индексов в v81c_index
pg_restore не предоставляет прямого способа указать отдельное табличное пространство для индексов. Индексы необходимо пересоздавать вручную с указанием нужного табличного пространства. Пример команды для пересоздания индекса:
-- Удаление существующего индекса
DROP INDEX IF EXISTS index_name;
-- Создание индекса в нужном табличном пространстве
CREATE INDEX index_name ON table_name (column_name) TABLESPACE v81c_index;
Для массового пересоздания индексов рекомендуется подготовить скрипт, который переберет все индексы и пересоздаст их с указанием табличного пространства v81c_index.
Управление пользовательскими табличными пространствами
Помимо предопределенных табличных пространств, платформа 1С поддерживает управление пользовательскими табличными пространствами. Это позволяет администраторам более гибко управлять размещением данных в зависимости от специфики конкретной информационной системы.
Подробная информация о возможностях управления пользовательскими табличными пространствами доступна в официальной документации 1С.