×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

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

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

3.7.6. Табличные пространства

Табличные пространства в Digital Q.DataBase позволяют администраторам баз данных определять расположения в файловой системе, в которых могут храниться файлы, представляющие объекты базы данных. После создания на табличное пространство можно ссылаться по имени при создании объектов базы данных.

Используя табличные пространства, администратор может управлять физическим размещением на диске Digital Q.DataBase установка. Это полезно как минимум в двух отношениях. Во-первых, если на разделе или томе, на котором был инициализирован кластер, заканчивается свободное место и его невозможно расширить, табличное пространство может быть создано на другом разделе и использоваться до тех пор, пока система не будет перенастроена.

Во-вторых, табличные пространства позволяют администратору использовать знания о шаблонах использования объектов базы данных для оптимизации производительности. Например, индекс, который используется очень интенсивно, может быть размещен на очень быстром и высокодоступном диске, таком как дорогостоящий твердотельный накопитель. В то же время таблица, хранящая архивные данные, которые используются редко или не критичны для производительности, может быть размещена на менее дорогой и медленной дисковой системе.

Предупреждение

Несмотря на то, что табличные пространства расположены за пределами основного каталога данных PostgreSQL, они являются неотъемлемой частью кластера баз данных и не могут рассматриваться как автономная совокупность файлов данных. Они зависят от метаданных, содержащихся в основном каталоге данных, и поэтому не могут быть подключены к другому кластеру баз данных или подвергнуты резервному копированию по отдельности. Аналогичным образом, в случае потери табличного пространства (удаление файлов, сбой диска и т. д.) кластер баз данных может стать нечитаемым или не сможет запуститься. Размещение табличного пространства во временной файловой системе, такой как RAM-диск, ставит под угрозу надежность всего кластера.

Чтобы определить табличное пространство, используйте CREATE TABLESPACE команду, например::

CREATE TABLESPACE fastspace LOCATION '/ssd1/postgresql/data';

Это расположение должно быть существующим пустым каталогом, владельцем которого является Digital Q.DataBase пользователь операционной системы. Все объекты, созданные в дальнейшем в этом табличном пространстве, будут храниться в файлах внутри данного каталога. Путь не должен вести к съемному или временному носителю, так как кластер может выйти из строя, если табличное пространство будет отсутствовать или окажется утеряно.

Примечание

Обычно не имеет смысла создавать более одного табличного пространства для одной логической файловой системы, поскольку невозможно управлять расположением отдельных файлов внутри неё. Однако Digital Q.DataBase не накладывает подобных ограничений и, более того, не обладает сведениями о границах файловых систем в вашей системе. Она просто сохраняет файлы в тех каталогах, которые вы указываете.

Создание табличного пространства должно выполняться суперпользователем базы данных, но впоследствии право на его использование можно предоставить обычным пользователям. Для этого назначьте им привилегию CREATE для данного объекта.

Таблицы, индексы и базы данных целиком могут быть сопоставлены с определенными табличными пространствами. Для этого пользователь, обладающий привилегией CREATE в отношении данного табличного пространства, должен передать его имя в качестве параметра соответствующей команде. Например, следующая команда создает таблицу в табличном пространстве space1:

CREATE TABLE foo(i int) TABLESPACE space1;

В качестве альтернативы используйте default_tablespace параметр:

SET default_tablespace = space1;
CREATE TABLE foo(i int);

Когда для default_tablespace задано любое значение, отличное от пустой строки, он добавляет неявное TABLESPACE для CREATE TABLE и CREATE INDEX команды, не имеющие явно указанного параметра.

Также существует temp_tablespaces параметр, определяющий размещение временных таблиц и индексов, а также временных файлов, используемых для таких задач, как сортировка больших наборов данных. В данном параметре может быть указан список имен табличных пространств, а не только одно, что позволяет распределить нагрузку от временных объектов между несколькими табличными пространствами. Каждый раз при создании временного объекта выбирается случайный элемент из данного списка.

Табличное пространство, связанное с базой данных, используется для хранения системных каталогов этой базы данных. Кроме того, оно является табличным пространством по умолчанию для таблиц, индексов и временных файлов, создаваемых в базе данных, если не указано предложение TABLESPACE и не задан иной вариант выбора через default_tablespace или temp_tablespaces (надлежащим образом). Если база данных создается без указания табличного пространства, она использует то же табличное пространство, что и шаблонная база данных, на основе которой она создается.

При инициализации кластера баз данных автоматически создаются два табличных пространства. Табличное пространство pg_global используется только для общих системных каталогов. Табличное пространство pg_default является табличным пространством по умолчанию для template1 и template0 базы данных (и, следовательно, оно также будет являться табличным пространством по умолчанию для других баз данных, если только не будет переопределено параметром TABLESPACE в команде CREATE DATABASE).

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

Для удаления пустого табличного пространства используйте DROP TABLESPACE команду.

Чтобы определить набор существующих табличных пространств, выполните запрос pg_tablespace системному каталогу, например:

SELECT spcname FROM pg_tablespace;

Использование psql программы, \db метакоманда также полезна для вывода списка существующих табличных пространств.

Каталог $PGDATA/pg_tblspc содержит символические ссылки, указывающие на каждое из пользовательских табличных пространств, определенных в кластере. Хотя это не рекомендуется, структуру табличных пространств можно изменить вручную путем переопределения этих ссылок. Ни при каких обстоятельствах не выполняйте эту операцию во время работы сервера. Обратите внимание, что в PostgreSQL 9.1 и более ранних версиях также потребуется обновить системный pg_tablespace каталог, указав новые пути расположения. (Если этого не сделать, pg_dump будет по-прежнему выводить старые пути расположения табличных пространств.)

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению