Создание и управление кластером postgresql

Создание и управление кластером postgresql

    Распаковка архива и создание конфигурации
    #Распаковка архива tar xzf /home/student/postgresql-13.6.tar.gz cd postgresql-13.7 #Создание конфигурации ./configure --enable-debug --prefix=/usr/local/bin/postgresql --with-pgport=9999 #Если требуется повторно выполнить конфигурацию, тогда нужно очистить результаты предыдущего запуска make distclean

    --enable-debug - включение отладочной информации
    --prefix=/usr/local/bin/postgresql - каталог установки

    Сборка и установка postgresql
    cd postgresql-13.7/ make world #Установка сервера make install #Для сборки расширений нужно повторить последние две команды, перейдя в подкаталог contrib cd contrib sudo make sudo make install #Посмотреть параметры с которыми был собран сервер pg_config --configure

    make — сборка только сервера
    make world — сборка сервера, всех расширений и документации.


    Создание кластера с помощью initdb

    Кластер базы данных не может принадлежать суперпользователю
    Переменная PGDATA указывает на каталог кластера, ее могут использовать утилиты, такие как initdb или pg_ctlcluster
    В данном примере для создания кластера будет использоваться утилита initdb
    Утилиты сервера установлены в подкаталоге bin, например: /usr/lib/postgresql/12/bin/

    #Создать директорию кластера mkdir -p /var/lib/postgresql/data #Присвоить значение переменной PGDATA export PGDATA=/var/lib/postgresql/data #Добавить путь к исполняемым файлам в переменную PATH export PATH=$PATH:/usr/local/bin/postgresql #Инициализация кластера initdb -U postgres -k -D /var/lib/postgresql/data

    Если при инициализации не задать имя суперпользователя СУБД, тогда будет использоваться имя текущего пользователя $USER
    -k включает подсчет контрольных суммы страниц
    Если переменная PGDATA не установлена, то следует в ключе -D указать каталог для данных
    Если по какой то причине не найдена команда initdb, тогда можно попробовать найти ее с помощью locate initdb
    И указать полный путь к исполняемому файлу в команде инициализации кластера

    Создание кластера с помощью pg_createcluster

    В примере рассматривается создание кластера с помощью утилиты pg_createcluster
    pg_createcluster - это обертка над утилитой initdb
    Для удаления кластера может использоваться утилита pg_dropcluster

    #Создание нового кластера postgresql 12 pg_createcluster 12 main -d /var/lib/postgresql/12 #Удаление кластера #pg_dropcluster --stop 12 main
    Управление кластером

    Для управления сервером может использоваться утилита pg_ctl или загляни сюда
    Утилита pg_ctlcluster - это обертка над утилитой pg_ctl

    #Остановить сервер: sudo pg_ctlcluster 13 main stop #Запустить сервер: sudo pg_ctlcluster 13 main start #Перезапустить: sudo pg_ctlcluster 13 main restart #Получить текущий статус сервера: sudo pg_ctlcluster 13 main status #Перечитать файлы конфигурации: sudo pg_ctlcluster 13 main reload #Вывод логов в файл с помощью опции -l pg_ctl restart -l /home/chich/test.log #Запуск сервера с использование порта 5444 pg_ctl start -o "-p 5444" #Задать режим остановки сервера pg_ctl stop -m smart
    Расчет контрольных сумм в кластере

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

    #Остановить сервер sudo -u postgres pg_ctlcluster 12 main stop #Или так sudo systemctl stop postgresql@12-main #Проверить работу утилиты $ sudo /usr/lib/postgresql/12/bin/pg_checksums --check -D /var/lib/postgresql/12/main/ pg_checksums: error: data checksums are not enabled in cluster #Установить утилиту sudo apt install postgresql-12-pg-checksums #Включить утилиту sudo /usr/lib/postgresql/12/bin/pg_checksums --enable -D /var/lib/postgresql/12/main/ Checksum operation completed Files scanned: 4298 Blocks scanned: 734444 pg_checksums: syncing data directory pg_checksums: updating control file Checksums enabled in cluster #Проверить контрольные суммы sudo /usr/lib/postgresql/12/bin/pg_checksums --check -D /var/lib/postgresql/12/main/ Checksum operation completed Files scanned: 4298 Blocks scanned: 734444 Bad checksums: 0 Data checksum version: 1

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


    Запуск с помощью postgres
    postgres > logfile 2>&1 &
    Выключение сервера

    Завершить работу сервера можно тремя способами, отправляя сигнал главному процессу
    SIGTERM - умное выключение
    SIGINT - быстрое выключение
    SIGQUIT - немедленное выключение
    Более подробно это описано в официальной документации


    postmaster.opts

    postmaster.opts - файл который содержит параметры, которые применяются при управлении кластером с помощью команд pg_ctl, pg_ctlcluster, если не указаны иные значения в -o


    Источники
    Последнее изменение: 04.11.2024 17:54


    Связанные темы
    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ