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);