При работе с базами данных 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.
CODE

Ошибка означает, что pg_restore не может установить табличное пространство v81c_index, потому что оно не существует в целевой базе данных. Если отсутствует табличное пространство v81c_data, то данные будут восстанавливаться в табличное пространство по умолчанию.

Если у вас нет данных табличных пространств, то вы можете запускать pg_restore с параметром --no-tablespaces, который позволяет игнорировать наличие табличных пространств.

Управление пользовательскими табличными пространствами

Помимо предопределенных табличных пространств, платформа 1С поддерживает управление пользовательскими табличными пространствами. Это позволяет администраторам более гибко управлять размещением данных в зависимости от специфики конкретной информационной системы.

Подробная информация о возможностях управления пользовательскими табличными пространствами доступна в официальной документации 1С.