Автоматическое создание backup

Ниже написан скрипт для автоматического создания копии БД с последующим восстановлением на тестовой среде.

#!/bin/bash
echo "Архивация БД vote-dev"
dir_folder=/var/lib/postgresql/vote-dev
mkdir -p $dir_folder
cd $dir_folder
# создание backup
pg_dump vote-dev > $dir_folder/vote-dev-day_$(date +\%Y\%m\%d).bak
# disconnect БД
psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid() AND datname = 'vote-test';"
# удаление и создание БД
dropdb vote-test
psql -c 'create database "vote-test";'
psql -c 'ALTER DATABASE "vote-test" OWNER TO mobnius;'
# восстановление резервной копии
psql -U postgres vote-test < $dir_folder/vote-dev-day_$(date +\%Y\%m\%d).bak
ls -1tr | head -n -7 | xargs -d '\n' rm -f --
echo "Завершено"

Повышение производительности PostgreSQL после настройки параметров

Многие думают, что изменение параметров в postgresql.conf — это реальный путь к успеху. Однако это не всегда так. Конечно, чаще всего хорошие параметры конфигурации базы данных очень полезны. Тем не менее, во многих случаях реальные проблемы будут возникать из-за странного запроса, скрытого глубоко в некоторой логике приложения. Даже вполне вероятно, что запросы, вызывающие реальные проблемы, не являются теми, на которые вы обратили внимание. Возникает естественный вопрос: как мы можем отследить эти запросы и выяснить, что на самом деле происходит? Мой любимый инструмент для этого — pg_stat_statements, который всегда должен быть включен по моему мнению, если вы используете PostgreSQL 9.2 или выше (пожалуйста, не используйте его в более старых версиях).
 

Читать далее «Повышение производительности PostgreSQL после настройки параметров»

Pentaho для работы с отчетами

Скачиваем с данного сайта последние версии приложений:

 https://sourceforge.net/projects/pentaho/files/ 
Читать далее «Pentaho для работы с отчетами»

Потоковая репликация в PostgreSql 10

Для реализации потоковой репликации требуется наличие, как минимума 2-х серверов:

  • Имя мастера: master-db / IP 192.168.0.1
  • Имя слейва: slave-db / IP 192.168.0.2

Устанавливаем на каждый сервер postgresql:

sudo apt-get update 
sudo apt-get install postgresql postgresql-contrib 

Устанавливаем дополнения:

sudo apt-get install postgis  sudo apt install postgresql-10-postgis-scripts sudo apt install postgresql-plv8 sudo apt install nodejs npm 

Настраиваем мастер

Создаем пользователя для репликации:

sudo su postgres #В этот момент мы авторизовываемся под пользователем postgres 
psql 
postgres=# CREATE USER replica REPLICATION LOGIN CONNECTION LIMIT 2 PASSWORD 'qwe-123'; 
\q 
Читать далее «Потоковая репликация в PostgreSql 10»

Интеграция PostgreSQL с MS SQL Server

Чтобы можно было локально тестировать механизм интеграции лучше установить MSSQL Server Express

Внимание!!! Если сервер будет не виден, то нужно запустить «Обозреватель» — см. службу

Устанавливаем необходимые библиотеки для PostgreSQL 10

Примечание: полную инструкцию лучше смотреть на сайте https://github.com/tds-fdw/tds_fdw.git

  • sudo apt-get install freetds-dev freetds-common

Далее собираем расширение:

git clone https://github.com/tds-fdw/tds_fdw.git 
cd tds_fdw 
make USE_PGXS=1 install 
Читать далее «Интеграция PostgreSQL с MS SQL Server»

Координаты в базе данных PostgreSQL

Для работы с координатами в бд «Mobnius» необходимо скачать и установить пакет postgis.

sudo apt-get install postgis

Инструкция по установке находится здесь.

sudo -u postgres psql mobnius
mobnius=# CREATE EXTENSION postgis;

Далее необходимо перейти в базу данных и установить расширение postgis, в поле «schema» указать «public»
Координаты в бд «Mobnius» используются в следующих таблицах:

  • ad_tracking;
  • cd_files;
  • cd_points.
Читать далее «Координаты в базе данных PostgreSQL»

VACUUM FULL ANALYZE

VACUUM высвобождает пространство, занимаемое «мёртвыми» кортежами. При обычных операциях Postgres Pro кортежи, удалённые или устаревшие в результате обновления, физически не удаляются из таблицы; они сохраняются в ней, пока не будет выполнена команда VACUUM. Таким образом, периодически необходимо выполнять VACUUM, особенно для часто изменяемых таблиц.

Без параметра команда VACUUM обрабатывает все таблицы в текущей базе данных, которые может очистить текущий пользователь. Если в параметре передаётся имя таблицы, VACUUM обрабатывает только эту таблицу.

VACUUM ANALYZE выполняет очистку (VACUUM), а затем анализ (ANALYZE) всех указанных таблиц. Это удобная комбинация для регулярного обслуживания БД. За дополнительной информацией об анализе обратитесь к описанию ANALYZE.

Простая команда VACUUM (без FULL) только высвобождает пространство и делает его доступным для повторного использования. Эта форма команды может работать параллельно с обычными операциями чтения и записи таблицы, так она не требует исключительной блокировки. Однако освобождённое место не возвращается операционной системе (в большинстве случаев); оно просто остаётся доступным для размещения данных этой же таблицы. VACUUM FULL переписывает всё содержимое таблицы в новый файл на диске, не содержащий ничего лишнего, что позволяет возвратить неиспользованное пространство операционной системе. Эта форма работает намного медленнее и запрашивает исключительную блокировку для каждой обрабатываемой таблицы.

Когда список параметров заключается в скобки, параметры могут быть записаны в любом порядке. Без скобок параметры должны указываться именно в том порядке, который показан выше. Синтаксис со скобками появился в PostgreSQL 9.0; вариант записи без скобок считается устаревшим.