Рассмотрим установку расширения на примере 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