Шифрование и секретность в Linux

Инициализация кластера баз данных



Инициализация кластера баз данных

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

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

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

ВНИМАНИЕ

Не запускайте программу initdb с правами root! Обычный пользователь, создавший кластер, становится владельцем нового кластера, то есть его суперпользователем.

Программа initdb также может исправить поврежденную базу данных template 1, для чего она запускается с ключом -t (или - -template). В этом случае база данных template 1 строится заново.

Синтаксис команды запуска программы initdb:

Initdb [ -D каталог \ --pgdata=Karanor ]

[ -1 sysid | --sysid=sysid ]

[ -W | --pwprompt ]

t -E кодировка | --еncoding=кодировка ]

[ -L каталог \ --pglib=каталог ]



[ -n | --noclean ]

[ -d | --debug ]

С -t I --template ]

Ключи initdb описаны ниже.

  • -D каталог \ - -pgdata=Kamonoz. Каталог, в котором инициализируется новый кластер баз данных. Если имя каталога не задано, команда 1 ni tdb проверяет значение переменной PGDATA.
  • -i sysid \ --sysid=sysid. Системный идентификатор суперпользователя нового кластера. Если параметр не задан, используется системный идентификатор пользователя, запустившего программу initdb.
  • -W | - -pwprompt. Приглашение для ввода пароля после подключения.
  • -Е кодировка \ --еncoding=кодировка. Имя расширенной кодировки для базы данных-шаблона в новом кластере. Заданная кодировка будет использоваться по умолчанию для всех баз данных, создаваемых в этом кластере. Ключ используется лишь в том случае, если вы активизировали поддержку расширенных кодировок в PostgreSQL
  • -L каталог pglib=каталог. Местонахождение библиотечных файлов PostgreSQL, используемых программой initdb при создании кластера. Необходимость в передаче этого параметра возникает крайне редко. Обычно местонахождение файлов известно программе initdb, а если неизвестно — она запросит необходимые данные.
  • -t --template. С ключом template программа initdb заново инициализирует базу данных template 1 в существующем кластере баз данных. Такая возможность может пригодиться при обновлении версии PostgreSQL, при потере или нарушении целостности данных.
  • -n | --noclean. Ключ nodean означает, что программа initdb не должна удалять файлы, если ей не удастся завершить создание кластера из-за ошибки. Используется только при отладке.
  • -d | - -debug. Ключ debug обеспечивает вывод отладочной информации при создании служебных таблиц.

В случае успешного завершения команда initdb создает кластер баз данных в заданном каталоге. Созданный кластер может использоваться PostgreSQL для хранения баз данных.

В листинге 9.7 приведен пример инициализации кластера в каталоге /usr/local/ psql/booktown.



Содержание раздела