Как установить PostgreSQL Linux часть1.

 Введение.

 В семействе управления базами данных существует PostgreSQL(PqSQL), — рекомендованный для установки и эксплуатации Единым реестром Российских программ для ЭВМ и баз данных. В статье блога приводятся практические рекомендации по общим вопросам установки, запуску и эксплуатации экземпляра кластера сервера PqSQL в среде Linux. При описании некоторых программ, в дальнейшем, будут делаться ссылки на эту статью, как базовую, при подготовки и первоначальной настройки устройств работающих на PqSQL.

Подготовка PostgreSQL.

  • Стенд: 
    • Cервер ALT Linux, имя: lin-pq; IP 10.0.2.11;
    • Simply Linux, имя: lin-sl, IP=10.0.2.30
    • Пользователь, имя: trt

При установке пакетов можно воспользоваться графическим менеджер synaptic.

# apt-get update
# apt-get install synaptic
# synaptic
  • Для установки PqSQL требуется
    • проверить кодировку
locale -a|grep ru_RU
ru_RU
ru_RU.cp1251
ru_RU.ibm866
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
  • выбрать версию сервера PqSQL
# apt-cache show postgresql Виртуальный пакет postgresql предоставляется следующими пакетами: .... You should explicitly select one to show. E: Package postgresql is a virtual package with multiple providers.
  • установить выбранный пакет сервера
# apt-get install postgresqlXX-server

XX — версия выбранного сервера PqSQL

  • проверить службу времени NTP.
  • После установки создаются каталоги:
    •  /var/lib/pgsql — папки кластера БД
    • /usr/share/pgsql — пакеты PostgreSQL

Формирование кластера PostgreSQL.

Кластер — область хранения баз данных на диске = кластер баз данных

При развёртывании сервера PqSQL создаётся пользователь postgres.

$ id postgres
uid=46(postgres) gid=46(postgres) группы=46(postgres)

Пользователь postgres осуществляет управление сервером PqSQL обладает ролью суперпользователя. Этого пользователя не стоит в дальнейшем задействовать в других программах. По умолчанию пароль для postgres не установлен.

Используя запись postgres мы будем создавать кластер сервера. Для выполнения, необходимо, что бы учётная запись осуществляющая действия с пользователем postgres была членом группы whell.

$ id -Gn trt
trt wheel uucp proc cdrom floppy cdwriter audio radio users vboxusers scanner xgrp camera

Открываем доступ группе wheel, к выполнению команд sudo.

$ su -l Password:********* # visudo … WHEEL_USERS ALL=(ALL) ALL … :wq

С помощью пользователя postgres создадим кластер сервера PqSQL.

$ sudo su - postgres -s /bin/bash [sudo] password for trt:******** -bash-x.x$ initdb -k Файлы, относящиеся к этой СУБД, будут принадлежать пользователю "postgres". От его имени также будет запускаться процесс сервера. Кластер баз данных будет инициализирован с локалью "ru_RU.UTF-8". Кодировка БД по умолчанию, выбранная в соответствии с настройками: "UTF8". Выбрана конфигурация текстового поиска по умолчанию "russian". Контроль целостности страниц данных включён. исправление прав для существующего каталога /var/lib/pgsql/data... ок создание подкаталогов... ок выбирается значение max_connections... 100 выбирается значение shared_buffers... 128MB выбор реализации динамической разделяемой памяти... posix создание конфигурационных файлов... ок выполняется подготовительный скрипт... ок выполняется заключительная инициализация... ок сохранение данных на диске... ок ПРЕДУПРЕЖДЕНИЕ: используется проверка подлинности "trust" для локальных подключений. Другой метод можно выбрать, отредактировав pg_hba.conf или используя ключи -A, --auth-local или --auth-host при следующем выполнении initdb. Success. You can now start the database server using: service postgresql start or pg_ctl -D /var/lib/pgsql/data -l файл_журнала start -bash-x.x$ exit
  • Пояснения:
    • sudo su — выполнить команду от имени текущего пользователя входящего в группу администраторов
    • s — запуск команд в оболочке BASH

-bash-x.x— текущая версия bash

Команды для старта PqSQL.

  • Команды формирующие запуск и остановку сервера:
    • управление автозагрузкой PqSQL
# systemctl enable postgresql
# systemctl is-enabled postgresql
enabled
  • Запуск PqSQL включают два варианта:
    • консольной командой
# systemctl start|status|stop|restart|  postgresql
  • утилитой pg_ctl из инструментария PqSQL
$ sudo su - postgres -s /bin/bash
[sudo] password for trt:********
-bash-x.x$ pg_ctl start | stop | restart| reload| status

Вид1. Листинг запуска сервера командой pg_ctl start

$ sudo su - postgres -s /bin/bash [sudo] password for trt:******** -bash-x.x$ pg_ctl start ожидание запуска сервера.... [1337] СООБЩЕНИЕ: для приёма подключений по адресу IPv4 "127.0.0.1" открыт порт 5432 ... [1337] СООБЩЕНИЕ: для приёма подключений по адресу IPv6 "::" открыт порт 5432 ... [1337] СООБЩЕНИЕ: для приёма подключений открыт Unix-сокет "/tmp/.s.PGSQL.5432" ... [1337] СООБЩЕНИЕ: передача вывода в протокол процессу сбора протоколов ... [1337] ПОДСКАЗКА: В дальнейшем протоколы будут выводиться в каталог "log". готово сервер запущен

При запуске postgresql, может возникнуть сообщение, Вид2, это нормально. Пояснение, стартовый PID автозагрузки запустил кластер, все команды pg_ctl, кроме start доступны.

Вид2. Листинг сообщения о ошибке при старте PqSQL.

-bash-3.2$ pg_ctl start pg_ctl: возможно, уже работает другой сервер; всё же пробуем запустить этот сервер ожидание запуска сервера....ВАЖНО: файл блокировки "postmaster.pid" уже существует ПОДСКАЗКА: Другой экземпляр postmaster (PID 1118) работает с каталогом данных "/var/lib/pgsql/data"? прекращение ожидания pg_ctl: не удалось запустить сервер
  • Продолжение смотри:
  • «Как установить PostgreSQL Linux часть2«
  • «Как установить PostgreSQL Linux часть3«
  • «Как установить PostgreSQL Linux часть4«

 Заключение.

 Сервер PqSQL зарекомендовал себя, как надёжный, устойчивый при длительной эксплуатации СУБД. Встроенные возможности PqSQL, позволяют конкурировать с Microsoft SQL и Oracle. Конечно, те кто вложился деньгами и знаниями в изучение и эксплуатацию MS SQL и Oracle, желания переходить или мигрировать на PqSQL не испытывают. Слишком высоки риски, да и годами устоявшиеся система управления вполне устраивает. Но жизнь и время требует новых подходов и решений. Создать с нуля БД и запустить в эксплуатацию это одно, а подготовить и выполнить план по миграции другое. Здесь требуется проведение предварительных действий. Начинать надо с обучения и развёртывания стенда, что бы на практике получать навыки и опыт работы с PostgreSQL.

Если для организации стоит вопрос перехода на PostgreSQL, то прежде всего, надо решить вопрос оборудования и коннектора для миграции. По оборудованию можно обратиться к официальной документации. Миграционный коннектор, под конкретную прикладную программу надо искать, их достаточно, платных и бесплатных, условие одно — тестирование на стенде предприятия. Есть ещё одно решение по миграции, заказать услугу по переходу на PostgreSQL и его сопровождение. Но это прежде всего финансовый вопрос, придут специалисты проведут миграцию, а может и нет в любом случае это время, оборудование и деньги.

В качестве «живого» примера установки и работы PqSQL,читайте статью.

Полезные ссылки.

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

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