Популярные сообщения

понедельник, 21 сентября 2020 г.

Установка сторонних расширений в Postgres

 Рассмотрим установку расширения на примере pgsentinel

Стоит отметить, что расширение загружается в конкретную базу, а не в экземпляр.

pgsentinel – хранение истории активных сессий

Расширение pgsentinel предоставляет возможность собирать и просматривать историю активных сессий в PostgreSQL.

Требуется установленная версия PostgreSQL  не ниже PostgreSQL 9.6  или выше.
Перед сборкой убедится что есть:

  •  PostgreSQL version is 9.6 или выше.
  •  Установлен пакет разработки PostgreSQL(postgresql(номер версии)-devel)(gcc,llvm,clang  ) или собран PostgreSQL из исходников(у нас из снепшота в 12.1 уже все стоит, можно ничего не ставить)
    Если это не 12.1 из снепшотов , то каких пакетов не хватает в конкретном случае, можно узнать из сообщений об ошибках при компиляции.
  • Переменная PATH настроена таким образом, что команда pg_config доступна и запускается. (у нас запускается в 12.1) (команду можно запустить для проверки она безопасная)


Типичная установка для 12.1
Поскольку pgsentinel использует расширение pg_stat_statements (официально связанное с PostgreSQL) для отслеживания того, какие запросы выполняются в  базе данных, нужно добавить следующие записи в postgresql.conf:


$ shared_preload_libraries = 'pg_stat_statements,pgsentinel'

$ # Icncrease the max size of the query strings Postgres records

$ track_activity_query_size = 2048 -- можно больше если запросы очень большие

$ # Track statements generated by stored procedures as well

$ pg_stat_statements.track = all


После добавления этих строк нужно перезапустить экземпляр бд.
Важно: Лучше конечно pg_stat_statements,pgsentinel ставить до запуска прода в эксплуатацию, но если забыли то лучше сделать после 18-00 по согласованию с командой продукта.

После того, как экземпляр БД перезапущен
Создаем в /u01/postgres директорию external_extensions
владелец директории и все что внутри postgres

В эту директорию (external_extensions) закидываем  архив с расширением скачать можно тут → https://github.com/pgsentinel/pgsentinel
и разархивируем


unzip pgsentinel-master.zip


Далее



$ cd pgsentinel/src

$ make

$ sudo make install



После чего можно уже создать расширение:

Коннект в БД

\c имя_БД


create extension pg_stat_statements;

create extension pgsentinel;


Проверить можно так:

Коннект в нужную бд и выполняем

\dx




Комментариев нет:

Отправить комментарий