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

Похожие записи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

В этой статье мы рассмотрим пошаговую настройку кластера Kubernetes на Ubuntu 24.04 с тремя узлами: один мастер (который также может запускать пользовательские поды) и два рабочих узла. Мы настроим PersistentVolume…

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

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

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

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования