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

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

Настройка взаимодействия RED ADM и Windows Active Directory

Сегодня проведем несколько экспериментов по настройке взаимодействия RED ADM и Windows Active Directory. Есть несколько способов настройки доверия для упрощения миграции с решений Microsoft на Российское ПО и сегодня их…

Установка основного контроллера домена на базе REDADM

Продолжаем наш проект по импортозамещеню Зарубежного ПО на Российское. Я уже рассказывал как работать с доменом FreeIPA, но для полноты картины стоит рассказать и про контроллер домена на базе REDADM.…

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

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

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

Настройка взаимодействия RED ADM и Windows Active Directory

Настройка взаимодействия RED ADM и Windows Active Directory

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Установка основного контроллера домена на базе REDADM

Установка основного контроллера домена на базе REDADM

zVirt работа с шаблонами виртуальных машин

zVirt работа с шаблонами виртуальных машин

Подробная инструкция по работе с томами (volumes) в Docker

Подробная инструкция по работе с томами (volumes) в Docker

Сетевые возможности Docker

Сетевые возможности Docker