Установка Postgresql 10.4 на платформу ARM

Собрать Postgresql 10.4 под платформу ARM я решил для того чтобы проверить одну свою идею по поводу логической репликации. Логическая репликация это новая фишка Postgresql 10-ой версии позволяющая реплицировать в Read only режиме отдельные таблицы на другой Postgresql server. Но вот правда одна незадача выяснилась, а именно под мою ARM-платформу собранных пакетов не нашлось.

 
 
Логотип GITA-DEV

Автор: Черноусов Антон aka Gita-Dev
Опубликовано: 25 Май 2018 (последние правки 2 месяца)

install pgsql postgres postgresql postgresql 10 sql tar символические ссылки утилиты

Суть эксперимента состояла в том, чтобы проверить как работает логическая репликация между разными архитектурами. Если вам интересно, то механизмы полной репликации базы данных при помощи XLOG которые являются штатным механизмом полной Failover-репликации не работают не только на разных аппаратных платформах, но и на системах разной разрядности. У вас не получится настроить репликацию с 64-х битной версии Postgresql на 32-х битную, это кстати однажды стало для меня небольшим сюрпризом.

Создание базы данных Postgresql в ручном режиме

Как я уже сказал во вступлении к статье, собранных пакетов Postgresql 10.4 под платформу armhf не нашлось, но когда это останавливало то?

Сборка из исходных кодов простая и максимально типовая:

# wget https://ftp.postgresql.org/pub/source/v10.4/postgresql-10.4.tar.gz
# tar -xvf ./postgresql-10.4.tar.gz
# cd ./postgresql-10.4
# ./configure
# make && make install

Следующим этапом создадим пользователя Postgres, от его имени создаем базу и т.п.

Создаем пользователя postgres и от имени этого пользователя создаем пустую базу данных:

# useradd postgres
# passwd postgres
# su postgres
$ mkdir /var/lib/postgresql/data
$ /usr/local/pgsql/bin/initdb --pgdata=/var/lib/postgresql/data/ -E 'UTF-8' --lc-collate='ru_RU.UTF-8' --lc-ctype='ru_RU.UTF-8'

Проведем тестовый запуск базы данных при помощи команды (и конечно же тестовое подключение):

$ /usr/local/pgsql/bin/pg_ctl -D /var/lib/postgresql/data/ -l logfile start
$ /usr/local/pgsql/bin/psql
psql (10.4)
Type "help" for help.
postgres=# \

И закончим установку созданием сервиса SystemD для автоматического запуска базы данных (соберем его из штатного сервиса), для чего создайте файл /lib/systemd/system/postgresql-10.service следующего содержания:

[Unit]
Description=PostgreSQL 10 database server
After=syslog.target network.target

[Service]
Type=forking
TimeoutSec=120

User=postgres

Environment=PGDATA=/var/lib/postgresql/data/
PIDFILE=/var/lib/postgresql/data/postmaster.pid

ExecStart=/usr/local/pgsql/bin/pg_ctl start -w -D "/var/lib/postgresql/data/" -l "/var/lib/postgresql/data/pg_log/startup.log"
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -m fast -w -D "/var/lib/postgresql/data/"
ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D "/var/lib/postgresql/data/"

[Install]
WantedBy=multi-user.target

Активируйте автозапуск сервиса и запустие его:

# systemctl enable postgresql-10
# systemctl start postgresql-1

Так как бинарные файлы у нас лежат в немного нестандартном месте, то я рекомендую создать символические ссылки на утилиты работы с базой данных в системный каталог:

# ln -s /usr/local/pgsql/bin/psql /usr/bin/psql
# ln -s /usr/local/pgsql/bin/pg_dump /usr/bin/pg_dump
# ln -s /usr/local/pgsql/bin/pg_dumpall /usr/bin/pg_dumpal

База готова к работе и мы можем переходить к эксперименту ради которго все и затевалось.

Похожие статьи

Установка Postgresql версии 10 в Ubuntu Linux и Debian Linux

Установка Postgresql версии 10 в Ubuntu Linux и Debian Linux

На данный момент,10-ая версия Postgresql является стабильной и данный релиз принес довольно много "вкусностей", таких как: логическая репликация, партиционирование, улучшена производительность физической репликации, hash-индексы стали реплицируемы, поддержка полнотекстового поиска на jsonb колонках, улучшенная поддержка работы с xml и многое другое ... Естественно, что сходу мигрировать ваш сайт или приложение на новую версию не стоит, так как в ряде случаев вам потребуется некоторая доработка для обеспечения совместимости с десятой версией.


Легковесный почтовый сервер с хранением учетных данных в базе Postgresql

Легковесный почтовый сервер с хранением учетных данных в базе Postgresql

До этого я рассказывал исключительно о монстроидальном комплексе совместной работы под названием Zimbra и вы наверное поняли, что запустить его на небольшом VPS у вас не получится, так как он потребляет просто огромное количество системных ресурсов. Но, что же делать, если требуется собственный почтовый сервер и вы сильно ограничены в системных ресурсах? Правильный ответ, это собрать его самому из Opensource-компонентов и полученный результат удивит вас своей легковесностью.


Установка свежих версий Postgresql (10.X) в Debian Linux

Установка свежих версий Postgresql (10.X) в Debian Linux

В LTS-версии дистрибутивов обычно входят такие-же LTS версии пакетов и в ряде случаев это конечно хорошо и стабильные обкатанные версии это гораздо лучше чем dev-ветки, но иногда требуются именно новые возможности которые появились недавно. Например мне, требовалась логическая репликация Postgresql в Debian версии 9.4, но логическая репликация появилась только в Postgresql 10, а штатный пакет в дистрибутиве имеет версию 9.6.


Настройка потоковой репликации Postgresql сервера (WAL-репликация)

Настройка потоковой репликации Postgresql сервера (WAL-репликация)

Потоковая репликация Postgresql сервера позволяет создать асинхронную Read Only копию сервера баз данных который можно использовать как FailOver-сервер или строить на нем какие-то тяжелые аналитические отчеты которые бы в свою очередь сильно загрузили боевой сервер. Назначений можно придумать огромное множество, да и настраивается эта технология довольно просто, правда есть у нее есть и несколько недостатков.


Чистка архива WAL в реплицируемых базах Postgresql

Чистка архива WAL в реплицируемых базах Postgresql

Потоковая репликация Postgresql это конечно круто, но есть у этой технологии и немного минусов. Во первых, при активной записи и обновлении данных генерируется довольно много трафика и я на одном из микро-тарифов довольно быстро вышел за лимиты, а во вторых, WAL-логи при активной записи и обновлении данных в базе Postgresql очень быстро разрастаются и начинают занимать гораздо больше места, чем сама база данных. Сегодня мы будем решать вторую проблему.


GITLAB - перенос интегрированной базы Postgresql в штатную базу операционной системы

GITLAB - перенос интегрированной базы Postgresql в штатную базу операционной системы

GitLab, это отличный GIT-репозитарий для использования внутри компании с богатым функционалом и простой установкой, как его устанавливать я уже рассказывал и вы наверное обратили внимание, что этот продукт рекомендуется использовать на отдельном хосте и он поставляется полностью со своей инфраструктурой программ окружения. Как отвязать его от использования встроенного Nginx я вам уже рассказал и сегодня мы будем отвязывать его от встроенного сервера Postgresql.


Мониторинг основных показателей базы данных Postgresql при помощи Zabbix

Мониторинг основных показателей базы данных Postgresql при помощи Zabbix

Сегодня я хотел бы продолжить цикл статей по мониторингу различных сервисов при помощи Zabbix и начнем пожалуй с баз данных Postgresql, на деле там ничего особо сложного нет и все уже давно придумано до нас. Нам остается только внедрить сборщик данных на сервер и понять, что за сведения мы собираем и где стоит установить границы срабатывания триггеров.


Установка и настройка Postgresql в Windows 10

Установка и настройка Postgresql в Windows 10

Установка Postgresql и утилит администрирования в Windows 10 (как в прочем и других версиях) особой сложности не представляет и сейчас я вам продемонстрирую как это сделать.


Оптимизация настроек Postgresql-сервера

Оптимизация настроек Postgresql-сервера

Как показывает практика, большие руководства читают только в крайнем случае и в большинстве случаев наиболее востребованным форматом являются быстрые чек-листы и наборы команд и параметров "как сделать чтобы было хорошо". К оптимизации сервера Postgresql нельзя приступать не выяснив основные метрики сервера исходя из которых мы будем "плясать" и сегодня я расскажу как собрать необходимые для анализа параметры и исходя из полученных данных произвести оптимизацию сервера.


Как установить Postgresql 11.1 в Ubuntu Server 18.04

Как установить Postgresql 11.1 в Ubuntu Server 18.04

Если вы пользовались бинарными инсталляторами от EDB Postgres, то у меня для вас плохая новость и Postgresql 10 был последней Linux версией которая поддерживалась Enterprise Postgres. Согласно сообщению на сайте бинарные пакеты инсталляторов будут поддерживаться только для Windows и MacOS, а для Linux рекомендуется использовать репозитории вашего дистрибутива.


Отзывы и комментарии