Postgresql — установка и кластеризация

Оцените статью

Сейчас мы обсудим некоторые вопросы установки и базовой настройки СУБД Postgresql, немного коснемся создания Master — Slave кластера, а вопросы углубленной настройки, SQL-синтаксиса и т.п. оставим для другой статьи.

Установка свежих версий Postgresql в Ubuntu Linux

Снимаем полный дамп текущей базы данных

# su postgres
$ pg_dumpall >/tmp/full_dump.sql

Удаляем все пакеты Postgresql

# apt-get purge postgresql-*

Подключаем репозитарий и устанавливаем самый свежий на данный момент Postgresql

# sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# apt -y update
# apt-get install postgresql-15-*

Восстанавливаем полный дамп Postgresql

# su postgres
$ cat /tmp/full_dump.sql | psql

Настройка Master-Slave репликации в Postgresql

Настройка Master-сервера

Создаем пользователя на master-сервере:

CREATE ROLE replicator REPLICATION LOGIN PASSWORD 'xxxSecretPasswordxxx';

Прописываем разрешения на доступ в pg_hba.conf:

local   replication     all                                     md5
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5
host    replication     all             10.54.130.115/32        md5

Конфигурация Master-сервера (отличия от штатного):

max_connections = 1000
wal_level = replica
archive_mode = on
archive_command = 'test ! -f /opt/postgresql_archive_log/%f && cp %p /opt/postgresql_archive_log/%f'
wal_keep_segments = 16
log_timezone = 'Asia/Almaty'
timezone = 'Asia/Almaty'

Настройка Slave-сервера

Копируем данные с Master-сервера

# mkdir /tmp/backup/
# pg_basebackup -h 10.54.130.102 -D /tmp/backup/ -U replicator -v -P -R -X stream -c fast

Последовательность дальнейших действий

  • Останавливаем Postgresql
  • Очистим хранилище data (/var/lib/postgresql/data)
  • Скопируем полученные данные в хранилище (/var/lib/postgresql/data)
  • Правим права доступа к каталогу (/var/lib/postgresql/data)

Правки в конфигурации recovery.conf:

restore_command = 'cp /opt/postgresql_archive_log/%f %p'
archive_cleanup_command = 'pg_archivecleanup  /opt/postgresql_archive_log/ %r'

Прочие заметки и замечания

PgPool2 — Настройка логирования в текстовый файл

Так-как конфигурация Pgpool2 подразумевает логирование или в  stderr или syslog, то для логирования в файл придется немного пошаманить.

Переключаем вывод логов в stderr

/etc/pgpool2/pgpool.conf
log_destination = 'stderr'

Создаем правило переопределения для SystemD-сервиса

Команда редактирования сервиса:

# systemctl edit pgpool2

Добавляем

[Service]
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=pgpool2
StandardOutput=file:/var/log/pgpool/pgpool.log
StandardError=file:/var/log/pgpool/pgpool.log

Перезапускаем сервис

# systemctl daemon-reload
# systemctl restart pgpool2

Таким образом мы логируем и в отдельный файл и в syslog.

Настраиваем logrotate-правило

Файл /etc/logrotate.d/pgpool2

/var/log/pgpool/*.log {
   rotate 12
   weekly
   compress
   missingok
}

Видео-инструкция по настройке подключения к базе данных в DbBeaver

Настройка подключения к базе данных в DBbeaver

Related Posts

Работа с файлами дисков виртуальных машин qcow2 (копирование, сжатие, конвертация и т.п.)

Так-как файлы виртуальных машин формата qcow2 это не совсем обычные файлы, а так называемые sparced-файлы (разряженные), то и подход при работе с ними несколько отличается. Если вы создали виртуальную машину…

План создания удостоверяющего центра (УЦ) PKI на базе Red OS

Так как в планах проекта числится развертывание удостоверяющего центра (УЦ) PKI на базе Red OS, то я заранее решил набросать план действий как будем это разорачивать и какие инструменты использовать.…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You Missed

Работа с файлами дисков виртуальных машин qcow2 (копирование, сжатие, конвертация и т.п.)

Работа с файлами дисков виртуальных машин qcow2 (копирование, сжатие, конвертация и т.п.)

План создания удостоверяющего центра (УЦ) PKI на базе Red OS

План создания удостоверяющего центра (УЦ) PKI на базе Red OS

Терминальный сервер в Linux на базе xrdp

Терминальный сервер в Linux на базе xrdp

Использование pg_probackup для резервного копирования баз данных Postgresql (локально)

Использование pg_probackup для резервного копирования баз данных Postgresql (локально)

Ввод рабочей станции РЕД ОС в IPA-домен

Ввод рабочей станции РЕД ОС в IPA-домен

WEB-интерфейс для удаленного администрирования Centos/РЕД ОС

WEB-интерфейс для удаленного администрирования Centos/РЕД ОС