CREATE TABLESPACE

CREATE TABLESPACE — создать табличное пространство

Синтаксис

CREATE TABLESPACE табл_пространство
    [ OWNER { новый_владелец | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ]
    LOCATION 'шаблон'
    [ WITH ( параметр_табличного_пространства = значение [, ... ] ) ]
        

Описание

Расширение синтаксиса команды CREATE TABLESPACE в Shardman позволяет создавать новое табличное пространство на уровне кластера. Все табличные пространства в кластере Shardman должны создаваться на уровне кластера. Табличное пространство на уровне кластера создаётся на каждом узле с расположением, полученным из параметра шаблон.

Параметры

табл_пространство #

Имя создаваемого табличного пространства. Это имя не может начинаться с pg_, так как такие имена зарезервированы для системных табличных пространств. Имя также не может содержать символы начала новой строки.

шаблон #

Шаблон имени каталога, который будет использоваться для табличного пространства. Шаблон должен включать подстроку «{rgid}», которая преобразовывается в фактический идентификатор группы репликации в каждом экземпляре, где выполняется оператор. Шаблон имени каталога должен разрешать преобразование в абсолютный путь. Путь не может содержать символы начала новой строки. CREATE TABLESPACE создаёт соответствующий каталог, если он отсутствует. Если каталог существует, он должен быть пуст и принадлежать системному пользователю PostgreSQL.

параметр_табличного_пространства #

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

Примеры

Чтобы создать табличное пространство dbspace, расположенное в файловой системе в каталоге /data/dbs, сначала создайте этот каталог средствами операционной системы на всех узлах и установите для него подходящего владельца (или проверьте, что у пользователя postgres есть право его создать):

mkdir /data/dbs
chown postgres:postgres /data/dbs

Затем выполните в PostgreSQL команду, собственно создающую табличное пространство:

CREATE TABLESPACE dbspace LOCATION '/data/dbs/ts-{rgid}' WITH (global);