- Linux downloads (Red Hat family)
- PostgreSQL Yum Repository
- Included in Distribution
- Post-installation
- For RHEL / CentOS / SL / OL 6
- For RHEL / Rocky Linux / CentOS / SL / OL 7, 8 or Fedora 31 and later derived distributions:
- Direct RPM download
- Установка и запуск PostgreSQL на CentOS
- Установка
- Запуск
- Как установить PostgreSQL на CentOS 8
- Подготовка
- Установка PostgreSQL на CentOS 8
- Роли и методы аутентификации PostgreSQL
- Создание роли и базы данных PostgreSQL
- Включить удаленный доступ к серверу PostgreSQL
- Выводы
- Установка и настройка PostgreSQL в CentOS
- Установка PostgreSQL в CentOS/RHEL
- Подключение к PostgreSQL, создание БД, пользователя
- Основные параметры конфигурационных файлов PostgreSQL
- Резевное копирование и восстановление БД в PostgreSQL
- Оптимизация и тюниг PostgreSQL
Linux downloads (Red Hat family) 
The Red Hat family of distributions includes:
- Red Hat Enterprise Linux
- Rocky Linux
- CentOS
- Fedora
- Scientific Linux
- Oracle Linux
PostgreSQL is available on these platforms by default. However, each version of the platform normally «snapshots» a specific version of PostgreSQL that is then supported throughout the lifetime of this platform. Since this can often mean a different version than preferred, the PostgreSQL project provides a repository of packages of all supported versions for the most common distributions.
PostgreSQL Yum Repository
The PostgreSQL Yum Repository will integrate with your normal systems and patch management, and provide automatic updates for all supported versions of PostgreSQL throughout the support lifetime of PostgreSQL.
The PostgreSQL Yum Repository currently supports:
- Red Hat Enterprise Linux
- Rocky Linux
- CentOS
- Scientific Linux
- Oracle Linux
- Fedora *
* Note: due to the shorter support cycle on Fedora, all supported versions of PostgreSQL are not available on this platform. We do not recommend using Fedora for server deployments.
To use the PostgreSQL Yum Repository, follow these steps:
- Select version:
- Select platform:
- Select architecture:
- Copy, paste and run the relevant parts of the setup script:
Included in Distribution
These distributions all include PostgreSQL by default. To install PostgreSQL from these repositories, use the yum command on RHEL 6 and 7:
yum install postgresql-server
or dnf command on RHEL 8 and Fedora:
dnf install postgresql-server
Which version of PostgreSQL you get will depend on the version of the distribution:
Distribution | Version |
---|---|
RHEL/Rocky Linux/CentOS/OL 8 | 13, 12, 10 and 9.6 via modules |
RHEL/CentOS/SL/OL 7 | 9.2 (also supplies package rh-postgresql10, rh-postgresql96, rh-postgresql95 and rh-postgresql94 via SCL) |
RHEL/CentOS/SL/OL 6 | 8.4 (also supplies package rh-postgresql96, via SCL) |
Fedora 34 | 13 |
Fedora 33 | 12 |
Other Red Hat family distributions may ship a different version of PostgreSQL by default, check with your distribution vendor to be sure.
The repository contains many different packages including third party addons. The most common and important packages are (substitute the version number as required):
postgresql-client | libraries and client binaries |
---|---|
postgresql-server | core database server |
postgresql-contrib | additional supplied modules |
postgresql-devel | libraries and headers for C language development |
Post-installation
Due to policies for Red Hat family distributions, the PostgreSQL installation will not be enabled for automatic start or have the database initialized automatically. To make your database installation complete, you need to perform the following steps, based on your distribution:
For RHEL / CentOS / SL / OL 6
For RHEL / Rocky Linux / CentOS / SL / OL 7, 8 or Fedora 31 and later derived distributions:
Direct RPM download
If you cannot, or do not want to, use the yum based installation method, all the RPMs that are in the yum repository are available for direct download and manual installation as well.
Copyright © 1996-2021 The PostgreSQL Global Development Group
Источник
Установка и запуск PostgreSQL на CentOS
Данная инструкция написана на примере систем CentOS 7 и 8, а также PostgreSQL 9/10 (из коробки) или любой другой версии (настройка репозитория).
Установка
PostgreSQL 9/10
В зависимости от версии операционной системы, из коробки будет установлена версия 9.2 (CentOS 7) или 10 (CentOS 8).
Просто вводим команду:
yum install postgresql-server
PostgreSQL > 9.2
Для установки более свежей версии PostgreSQL на CentOS необходимо подключить репозиторий:
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-`rpm -E %
Установка PostgreSQL в CentOS 8 осуществлена через модульные репозитории, что помешает нам — отключаем их командой:
dnf module disable postgresql
После чего обновляем список пакетов:
yum makecache -y
yum install postgresql11-server
* в данном примере будет установлен postgresql версии 11.
** система проверит репозиторий на наличие нужного пакета и задаст запрос на подтверждение установки программы — отвечаем Y.
Запуск
После установки СУБД необходимо:
- Инициализировать базу. Это делается с помощью утилиты postgresql-setup с ключом initdb.
- Разрешить автозапуск сервиса.
- Стартовать службу.
В зависимости от версии postgresql, эти операции выполняются, немного, по-разному.
Источник
Как установить PostgreSQL на CentOS 8
PostgreSQL или Postgres — это универсальная объектно-реляционная система управления базами данных с открытым исходным кодом, обладающая множеством расширенных функций, которые позволяют создавать отказоустойчивые среды или сложные приложения.
В этом руководстве мы обсудим, как установить сервер базы данных PostgreSQL на CentOS 8. Перед тем, как выбрать версию для установки, убедитесь, что ваши приложения ее поддерживают.
Мы также изучим основы администрирования баз данных PostgreSQL.
Подготовка
Чтобы иметь возможность устанавливать пакеты, вам необходимо войти в систему как пользователь root или пользователь с привилегиями sudo .
Установка PostgreSQL на CentOS 8
На момент написания этой статьи для установки из стандартных репозиториев CentOS доступны две версии сервера PostgreSQL: версия 9.6 и 10.0.
Чтобы вывести список доступных потоков модуля PostgreSQL, введите:
Выходные данные показывают, что модуль postgresql доступен с двумя потоками. Каждый поток имеет два профиля: серверный и клиентский. По умолчанию используется поток 10 с сервером профилей:
Чтобы установить поток по умолчанию, введите сервер PostgreSQL версии 10.0:
Чтобы установить сервер PostgreSQL версии 9.6, введите:
Вы также можете установить пакет contrib, который предоставляет несколько дополнительных функций для системы баз данных PostgreSQL.
После завершения установки инициализируйте базу данных PostgreSQL с помощью следующей команды:
Запустите службу PostgreSQL и включите ее запуск при загрузке:
Используйте инструмент psql , чтобы проверить установку, подключившись к серверу базы данных PostgreSQL и распечатав его версию :
Роли и методы аутентификации PostgreSQL
PostgreSQL обрабатывает разрешения на доступ к базе данных, используя концепцию ролей. Роль может представлять пользователя базы данных или группу пользователей базы данных.
PostgreSQL поддерживает несколько методов аутентификации . Наиболее часто используемые методы:
- Доверие — роль может подключаться без пароля, если выполняются условия, определенные в pg_hba.conf .
- Пароль — роль может подключиться, указав пароль. Пароли могут быть сохранены как scram-sha-256 , md5 и password (открытый текст).
- Ident — поддерживается только для соединений TCP / IP. Он работает путем получения имени пользователя операционной системы клиента с дополнительным отображением имени пользователя.
- Peer — То же, что и Ident, но поддерживается только для локальных подключений.
Аутентификация клиента PostgreSQL определяется в файле конфигурации с именем pg_hba.conf . По умолчанию для локальных подключений PostgreSQL настроен на использование метода одноранговой аутентификации.
Пользователь postgres создается автоматически при установке сервера PostgreSQL. Этот пользователь является суперпользователем для экземпляра PostgreSQL. Он эквивалентен пользователю root MySQL.
Чтобы войти на сервер PostgreSQL в качестве пользователя postgres , сначала переключитесь на пользователя, а затем войдите в командную строку PostgreSQL с помощью утилиты psql :
Отсюда вы можете взаимодействовать с экземпляром PostgreSQL. Чтобы выйти из оболочки PostgreSQL, введите:
Вы также можете получить доступ к командной строке PostgreSQL, не переключая пользователей, с помощью команды sudo :
Обычно пользователь postgres используется только с локального хоста.
Создание роли и базы данных PostgreSQL
Только суперпользователи и роли с привилегией CREATEROLE могут создавать новые роли.
В следующем примере мы создадим новую роль с именем john , базу данных с именем johndb и предоставим привилегии для этой базы данных.
Сначала подключитесь к оболочке PostgreSQL:
Создайте новую роль PostgreSQL, используя следующую команду:
Создайте новую базу данных:
Предоставьте пользователю права доступа к базе данных, выполнив следующий запрос:
Включить удаленный доступ к серверу PostgreSQL
По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс 127.0.0.1 .
Чтобы включить удаленный доступ к вашему серверу PostgreSQL, откройте файл конфигурации:
Прокрутите вниз до раздела CONNECTIONS AND AUTHENTICATION и добавьте / отредактируйте следующую строку:
Сохраните файл и перезапустите службу PostgreSQL с помощью:
Проверьте изменения с помощью утилиты ss :
Приведенный выше вывод показывает, что сервер PostgreSQL прослушивает порт по умолчанию на всех интерфейсах (0.0.0.0).
Последний шаг — настроить сервер на прием удаленных подключений путем редактирования файла pg_hba.conf .
Ниже приведены несколько примеров, показывающих различные варианты использования:
Выводы
CentOS 8 предоставляет две версии PostgreSQL: 9.6 и 10.0.
Для получения дополнительной информации по этой теме посетите документацию PostgreSQL.
Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.
Источник
Установка и настройка PostgreSQL в CentOS
В данной статье мы проведем установку СУБД PostgreSQL 11 в Linux CentOS 7, выполним базовую настройку сервера и СУБД, рассмотрим основные параметры конфигурационного файла, а так же способы тюнинга производительности. PostgreSQL – популярная свободная объектно-реляционная система управления базами данных. Не смотря на то, что она не так распространена как MySQL/MariDB, она является самой профессиональной.
Сильные стороны PostgreSQL:
- Полное соответствие стандартам SQL;
- Высокая производительность за счет управления многовариантным параллелизмом (MVCC);
- Масштабируемость (широко используется в высоконагруженных средах);
- Поддержка множества языков программирования;
- Надёжные механизмы транзакций и репликации;
- Поддержка данных в формате JSON.
Установка PostgreSQL в CentOS/RHEL
Хотя PostgreSQL можно установить из базового репозитория CentOS, мы выполним установку репозитория от разработчиков, так как в нем всегда присутствует актуальная версия пакета.
Первым шагом устанавливаем репозиторий PosgreSQL (на данный момент он устанавливается следующим образом):
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
В данном репозитории есть как самые новые версии PostgreSQL, так и более старые версии. Информация о репозитории выглядит следующим образом:
Установим последнюю доступную версию версию (PostrgeSQL 11) c помощью yum.
yum install postgresql11-server -y
В процессе установки устаналивается сам сервере PostgreSQL и необходимые библотеки:
После установки пакетов, нужно произвести инициализацию базы данных:
Так же сразу добавим сервер БД в автозагрузку и запустим его:
systemctl enable postgresql-11
systemctl start postgresql-11
Чтобы убедиться, что сервер запустился и никаких проблем нет, проверим его статус:
]# systemctl status postgresql-11
Если вам нужен доступ к PostgreSQL снаружи, вам нужно открыть порт TCP/5432, в стандартном firewall в Centos 7:
# firewall-cmd —zone=public —add-port=5432/tcp —permanent
# firewall-cmd —reload
#iptables-A INPUT -m state —state NEW -m tcp -p tcp —dport 5432 -j ACCEPT
#service iptables restart
Если включен SELinux, выполните:
setsebool -P httpd_can_network_connect_db 1
Подключение к PostgreSQL, создание БД, пользователя
По умолчанию при установке PostgreSQL в системе есть один пользователь —postgres.
Я не рекомендую использовать его для работы с базами данных, лучше создавать пользователей для каждой БД отдельно.
Чтобы подключиться к серверу postgres нужно ввести команду:
[root@server /]# sudo -u postgres psql
Открылась консоль PostgreSQL. Покажем несколько простых примеров управления PostgreSQL из консоли psql.
Т.к. любой пользователь системы может авторизоваться в postrgesql, сначала нужно изменить пароль пользователя postgres.
ALTER ROLE postgres WITH PASSWORD ‘super_str0ng_pa$$word’;
Сразу создадим новую базу данных, пользователя и дадим ему полные права на эту БД:
postgres=# CREATE DATABASE mydbtest;
postgres=# CREATE USER mydbuser WITH password ‘123456789’;
postgres=# GRANT ALL PRIVILEGES ON DATABASE mydbtest TO mydbuser;
Подключиться к БД:
postgres=# \c databasename
Вывести список таблиц:
Вывести список запросов к базе:
postgres=# select * from pg_stat_activity where datname=’dbname’
Сбросить все подключения к базе:
postgres=# select pg_terminate_backend(pid) from pg_stat_activity where datname = ‘dbname’
Информацию о текущей сессии можно получить так:
Для завершения работой с консолью psql, выполните:
Как вы уже заметили, синтаксис не отличается от той же MariaDB или MySQL и поэтому особо останавливаться на однотипных командах мы не будем.
Отметим, что для более удобного управления базами PostgreSQL из веб-интерфейса рекомендуется использовать pgAdmin4 (написан на Python и Javascript/jQuery). Это аналог привычному многим веб разработчикам PhpMyAdmin.
Основные параметры конфигурационных файлов PostgreSQL
Файлы конфигурации postgresql находятся в директории /var/lib/pgsql/11/data:
- postgresql.conf — непосредственно сам файл конфигурации postgresql;
- pg_hba.conf — файл с настройками доступа. В данном файле, можно выставлять различные ограничения для пользователей, устанавливать политику подключения к БД;
- pg_ident.conf — этот файл используется при идентификации клиентов по протоколу ident.
Чтобы запретить локальным пользователям вход в postgres без авторизации, в файле pg_hba.conf укажите:
Рассмотрим наиболее важные параметры в конфигурационном файле postgresql.conf:
- listen_addresses — указывает на каких IP адресах сервер будет принимать клиентские подключения. По умолчанию указано localhost, это означает, что возможно только локальное подключение. Чтобы случашать на всех IPv4 интерфейсах, укажите 0.0.0.0
- max_connections – как и в других СУБД, это максимальное количество одновременных подключения к серверу БД;
- temp_buffers – максимальный размер временных буферов;
- shared_buffers — объем разделяемой памяти используемый сервером баз данных. Обычно выставляется в размере 25% от памяти, установленной на сервере;
- effective_cache_size – параметр, который помогает планировщику postgres определить количество доступной памяти для кеширования на диск. Обычно параметр выставляется размером в 50-75% от всей ОЗУ на сервере;
- work_mem – объем памяти, который будет использоваться внутренними операциями сортировки СУБД — ORDER BY, DISTINCT и слияния;
- maintenance_work_mem – объем памяти, который будет использоваться внутренними операциями — VACUUM, CREATE INDEX и ALTER TABLE ADD FOREIGN KEY;
- fsync – если этот параметр включен, то СУБД будет дожидаться физической записи данных на жесткий диск. При включенном fsynс вам будет проще восстановить БД после системного или аппаратного сбоя. Естественно, что включение данного параметра значительно снижает производительность СУБД, но повышает надежность хранения. При отключении этого параметра стоит отключать и full_page_writes;
- max_stack_depth — максимальный размер стека (2 Мб по умолчанию);
- max_fsm_pages — с помощью данного параметра, можно управлять свободным дисковым пространством на сервере. К примеру, после удаления данных из таблицы, занимаемое ранее место не освобождается на диске, а помечается на карте свободного пространства с меткой «свободно» и далее используется для новых записей в таблице. Если на сервере активно ведется запись/удаление данных в таблицах, увеличение данного параметра, положительно повлияет на производительность;
- wal_buffers – объем из разделяемой памяти (shared_buffers), который используется для хранения данных WAL;
- wal_writer_delay – время между периодами записи WAL на диск;
- commit_delay — задержка между записью транзакции в буфер WAL и сбросом его на диск;
- synchronous_commit — параметр определяет, что результат об успешном завершении транзакции будет отправлен тогда, когда данные WAL физически запишутся на диск.
Резевное копирование и восстановление БД в PostgreSQL
Создать резервную копию в PostgreSQL БД можно несколькими способами. Рассмотрим самый простой вариант.
Для начала проверим, какие БД запущены на сервере:
У нас имеются 4 базы данных, 3 из которых системные (postgres и template).
Ранее мы создавали БД с именем “mydbtest”, на ее примере и выполним резервное копирование.
Один из способов резервного копирования, это выполнение его с помощью утилиты pg_dump:
sudo -u postgres pg_dump mydbtest > /root/dupm.sql — выполняем запрос от пользователя postgres, указываем нужную БД и путь до файла в который нужно сохранить дамп базы. Дамп базы может забрать ваша система резевного копирования, или в случае использования веб сервера, вы можете отправить его в ваше облачное хранилище.
Чтобы восстановить указанный дамп в нужную БД, можно воспользоваться утилитой psql:
sudo -u postgres psql mydbtest
Так же можно создать бэкап в специальном формате дампа и сжатом с применением gzip:
sudo -u postgres pg_dump -Fc mydbtest > /root/dumptest.sql
Восстанавливается такой дамп с помощью утилиты pg_restore:
sudo -u postgres pg_restore -d mydbtest /root/dumptest.sql
Более расширенные настройки можно посмотреть в справке по данным утилитам:
man psql
man pg_dump
man pg_restore
Оптимизация и тюниг PostgreSQL
В предыдущей статье о MariaDB, мы показывали, как можно привести практически к идеалу параметры конфигурационного файла my.cnf с помощью тюнеров. Для PostgreSQL существует, хотя правильнее сказать существовала такая утилита как PgTun, но к сожалению она уже давно не обновляется. В тоже время есть масса онлайн сервисов, с помощью которых вы можете настроить оптимальную конфигурацию для вашего PostgreSQL. Мне нравится сервис pgtune.leopard.in.ua.
Интерфейс очень прост. Вам нужно указать параметры вашего сервера (профиль, процессоры, память, тип дисков) и нажать кнопку “Generate”. В результате вам будет предложен вариант конфигурационного файла postgresql.conf с рекомендуемыми значениями основных параметров СУБД.
Например, для VPS SSD сервера с 2 Гб оперативной памятью, 2 CPU для запуска нескольких сайтов рекомендуются следующие настройки в postgresql.conf:
И это на самом деле не единственный ресурс, на момент написания статьи, были достпны аналогичные сервисы:
- Cybertec PostgreSQL Configurator
- PostgreSQL Configuration Tool
С помощью подобных сервисов, можно быстро настроить начальные параметры СУБД для вашего оборудования и выполняемых задач. В дальнейшем уже нужно опираться не только на ресурсы сервера, но и анализировать в целом работу БД, ее размер, количество коннектов и на основе этого, выполнять дальнейшую тонкую донастройку параметров PostgreSQL.
Источник