PostgreSQL: запрос для размещения глобального табличного пространства?

Я пытаюсь сделать наших клиентов базы данных активными, чтобы не заполнить раздел, на котором находится база данных, которую они используют.

Поскольку все наши клиенты находятся на том же хосте, что и менеджер баз данных, он должен быть достаточно простым для созданных пользователем табличных пространств; клиент может найти путь к файловой системе для табличного пространства (в spclocation) и использовать вызовы ОС для проверки доступности доступного пространства:

adb=> select * from pg_tablespace;

  spcname   | spcowner |    spclocation    |       spcacl        
------------+----------+-------------------+---------------------
 pg_default |       10 |                   | 
 pg_global  |       10 |                   | 
 adb        |  2033793 | /database/adb     | {adb=C/adb}

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

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

Надеюсь, я просто пропустил что-то очень простое.

6 голосов | спросил Peter 22 ThuEurope/Moscow2011-12-22T19:22:16+04:00Europe/Moscow12bEurope/MoscowThu, 22 Dec 2011 19:22:16 +0400 2011, 19:22:16

1 ответ


2

PostgreSQL создает pg_default и pg_global при создании кластера, возможно, используя initdb. Утилита initdb может принимать аргумент, который задает каталог данных, но нет аргументов о том, где положить pg_default и pg_global tablespaces.

Я бы сделал вывод, что они всегда создаются в каталоге данных. Я мог ошибаться в этом. Я не думаю, что они могут быть тронуты. Я тоже ошибаюсь.

Но если я до этого момента, вы можете получить свое физическое местоположение на

show data_directory;

pg_global tablespace почти наверняка является «глобальным» подкаталогом; pg_default, вероятно, тоже.

Если бы у меня было время, я прочитал исходный код . Это устранит все сомнения.

ответил Mike Sherrill 'Cat Recall' 22 ThuEurope/Moscow2011-12-22T21:15:46+04:00Europe/Moscow12bEurope/MoscowThu, 22 Dec 2011 21:15:46 +0400 2011, 21:15:46

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132