Centos postgresql: Установка и настройка PostgreSQL в CentOS

Установка PostgreSQL 13 в CentOS 8 • postgresql, centos • IT Draft

Главная » CentOS » Установка PostgreSQL 13 в CentOS 8







Автор Максим Макаров На чтение 3 мин Просмотров 5к. Опубликовано
Обновлено



PostgreSQL

PostgreSQL — свободная объектно-реляционная система управления базами данных. Обновления для этой ветки будут выходить в течение пяти лет до ноября 2025 года.

Содержание

  1. Установка PostgreSQL 13
  2. Работа с базой / польователями
  3. Настройка PostgreSQL 13
  4. Настройка Firewall

Установка PostgreSQL 13

Добавляем репозиторий PostgreSQL

$ sudo dnf -y install https://download. postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Отключаем модуль PostgreSQL в предустановленно по-умолчанию репозитории AppStream

$ sudo dnf -qy module disable postgresql

Проверяем

$ sudo dnf module list | grep postgresql
postgresql    9.6 [x]     client, server [d]   PostgreSQL server and client module
postgresql    10 [d][x]   client, server [d]   PostgreSQL server and client module
postgresql    12 [x]      client, server [d]   PostgreSQL server and client module

Устанавливаем PostgreSQL 13

$ sudo dnf -y install postgresql13 postgresql13-server

Инициализируем базу

$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
Initializing database … OK

Основной конфиг PostgreSQL расположен тут: /var/lib/pgsql/13/data/postgresql.conf

$ ls  /var/lib/pgsql/13/data/
base    pg_commit_ts  pg_ident.conf  pg_notify    pg_snapshots  pg_subtrans  PG_VERSION  postgresql.auto.conf
global  pg_dynshmem   pg_logical     pg_replslot  pg_stat       pg_tblspc    pg_wal      postgresql. conf
log     pg_hba.conf   pg_multixact   pg_serial    pg_stat_tmp   pg_twophase  pg_xact

Запускаем PostgreSQL и добавляем сервис в автозагрузку

$ sudo systemctl enable --now postgresql-13

Проверяем статус

$ systemctl status postgresql-13

Устанавливаем пароль для пользователя postgres

$ sudo su - postgres 
$ psql -c "alter user postgres with password 'StrongDBPassword'"
ALTER ROLE
$ exit

Работа с базой / польователями

Переключаемся на пользователя postgres

$ sudo su - postgres

Создаем пользователя БД

$ createuser userdb

Переключаемся в PostgreSQL shell

$ psql

Задаем пароль для пользователя БД

=# ALTER USER userdb WITH ENCRYPTED password 'aaayoupasswdaaa';

Создам базу и задаем владельца базы

=# CREATE DATABASE mybase WITH ENCODING='UTF8' OWNER=userdb;
=# \q
$ exit

Настройка PostgreSQL 13

Настраиваем возможность подключения к БД из др. хоста. Для этого редактируем конфигурационный файл /var/lib/pgsql/13/data/postgresql.conf и устанавливаем в качестве параметра Listen address ip-адрес сервера, или «*» — для всех сетевых интерфейсов

$ sudo nano /var/lib/pgsql/13/data/postgresql.conf
[…]
listen_addresses = '192.168.11.200'
[…]

Настраиваем параметры авторизации

$ sudo nano /var/lib/pgsql/13/data/pg_hba.conf
[…]
# Accept from trusted subnet
host all all 192.168.11.0/24 md5
[…]

Перезапускаем PostgreSQL

$ sudo systemctl restart postgresql-13

Тестируем подключение

$ sudo su - postgres
$ psql -U <dbuser> -h <serverip> -p 5432 <dbname>

Настройка Firewall

Открываем порт 5432

$ sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent
$ sudo firewall-cmd --reload


postgresql centos










Оцените автора







Как установить сервер 1С в связке с CentOS 7 и PostgreSQL

1

Устанавливаем CentOS 7 редакции minimal.

Образ можно взять с официального сайта: www.centos.org/download/

Так как 1С работает только с русской локализацией, то необходимо сразу устанавливать систему с учётом этого. В дальнейшем все действия производятся от имени суперпользователя.

Проверка текущей локализации системы:

Для проверки доступности необходимой локали используем команду:

Для смены локали:

2

Далее настраиваем статический IP-адрес, маску подсети, шлюз по умолчанию, DNS.

Предварительно делаем бекап стандартного файла конфигурации сетевого интерфейса:

Далее конфигурируем интерфейс (адреса выставляем свои):

3

В файле /etc/hostname изменим имя хоста на более удобное: 1с-srv.

Сопоставим IP с именем хоста для удобства обращения к серверу. В файле /etc/hosts добавляем запись:

Так же необходимо это соответствие будет прописать на все клиентах, которые будут работать с сервером 1С. В операционной системе Windows это прописывается в файле: C:\Windows\System32\drivers\etc\hosts

172.17.18.236   1c-srv

Также редактируем файл /etc/sysconfig/network, прописываем имя хоста и отключим адресацию IPv6:

Отключаем использование IPv6 на уровне ядра. В файле /etc/sysctl.conf добавляем строчки:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Сохраняем и применяем настройки:

sysctl -p

Отключаем SELinux в файле /etc/sysconfig/selinux

Выполняем команду

setenforce 0

После всех манипуляций обязательно рестарт сети: systemctl restart network и проверяем работу введенной конфигурации.

4

Следующим шагом обновляем систему и устанавливаем пакеты программ и библиотек:

yum -y update
yum -y install epel-release
yum -y install nano mc wget net-tools rpm-build gcc make glibc-devel bison flex python-devel tcl-devel readline-devel zlib-devel openssl-devel krb5-devel e2fsprogs-devel gettext pam-devel openldap-devel icu libicu libicu-devel

5

Скачиваем необходимые нам пакеты с 1с сервером и PostgreSQL и копируем на сервер:

6

Переходим в папку с 1с:

     cd . /tmp/1c

Распаковываем наш архив:

tar -xvf rpm64_8_3_13_1865.tar.gz

Устанавливаем сервер:

yum localinstall ./*.rpm

Прописываем сервер в автозагрузку:

chkconfig srv1cv83 on

Запускаем сервер:

service srv1cv83 start

Проверяем запуск сервера:

Назначим владельцем директории /opt/1C автоматически созданного пользователя usr1cv8 и группу пользователей grp1cv8:

chown -R usr1cv8:grp1cv8 /opt/1C

Задаём пароль для usr1cv8:

passwd usr1cv8

7

Переходим в папку с пакетами PostgreSQL:

cd ./Postgresql

Распаковываем наш архивы:

tar -xvf postgresql_10.5_11.1C_x86_64_rpm.tar.bz2
tar -xvf postgresql_10.5_11.1C_x86_64_addon_rpm.tar.bz2

Устанавливаем Postgresql:

cd ./postgresql-10.5-11.1C_x86_64_rpm/
yum localinstall ./*.rpm

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

cd ./postgresql-10.5-11.1C_x86_64_addon_rpm/
yum localinstall ./*.rpm

8

Переключаемся на пользователя postgres (создаётся автоматически при сборке из исходников):

su - postgres

Далее необходимо проинициализировать служебные базы данных с русской локалью:

/usr/pgsql-10/bin/initdb -D /var/lib/pgsql/10/data --locale=ru_RU.UTF-8

Если все прошло успешно можно запускать сервер базы данных. Если нужно создать новую системную базу, то необходимо удалить папку /var/lib/pgsql/10/data.

Запускаем сервер:

/usr/pgsql-10/bin/pg_ctl -D /var/lib/pgsql/10/data -l logfile start

Заходим в базу и задаём пароль для пользователя postgres:

Проверяем локализацию и работоспособность сервера Postgres:

Обязательно редактируем файл /var/lib/pgsql/10/data/pg_hba.conf задаем в нем доступ к базам по паролю, а также передачу данных аутентификации в формате md5 хеш суммы.

Перезагружаем сервер.

9

После перезагрузки запускаем вручную Postgre и добавляем в автозагрузку:

service postgresql-10 start
chkconfig postgresql-10 on

Проверяем результат:

service postgresql-10 status

netstat -tulpn | grep 5432 (по умолчанию postgres использует порт 5432)

10

Следующим шагом задаем конфигурации сервера Postgres.

Здесь нужно ориентироваться на конфигурацию 1С, количество пользователей 1С, объёмы баз, количество операций с базами. Поэтому конфигурирование большей части параметров производится, на запущенном сервере, путём подбора оптимальных показателей. Настройку выполняем путем редактирования файла /var/lib/pgsql/10/data/postgresql.conf

Частично можно ознакомится с параметрами здесь infostart.ru/public/554213/, а также на сайте postgrespro.ru/docs/.

Предварительно делаем резервную копию postgresql.conf

cp /var/lib/pgsql/10/data/postgresql. conf /var/lib/pgsql/10/data/postgresql.conf.bak

На данной стадии нас интересует параметр listen_addresses, данный параметр позволят задать адрес, список адресов, с которых будет возможно подключение, * — для любого адреса.

11

Теперь необходимо добавить шрифты и кодировки.

yum -y install xorg-x11-fonts-Type1 xorg-x11-fonts-truetype
yum install -y curl cabextract xorg-x11-font-utils fontconfig
rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm

Устанавливаем библиотеки для иконок и картинок:

yum install ImageMagick.i686 ImageMagick libgsf.i686 unixODBC.i686 glib2.i686

При подключении 1с к серверу может выдать ошибку на отсутствие библиотеки libWand.so, поэтому создадим символическую ссылку на файл установленной библиотеки:

12

Настроим firewall на нашем сервере.

systemctl stop firewalld
systemctl disable firewall
yum -y install iptables-services
systemctl enable iptables
systemctl start iptables

Заходим в настройки iptables и приводим файл к следующему виду:

vi /etc/sysconfig/iptables

13

Переходим на машину с Windows. Устанавливаем клиент 1С и утилиты для администрирования. Запускаем администрирование 1С.

Если будет ошибка о невозможности загрузить оснастку, используем bat-файл от имени администратора, Регистрация утилиты администрирования. Найти его можно в Пуск — 1С:Предприятие:

Теперь можно добавить наш сервер.

В появившемся окне прописываем имя нашего сервера.

Если все настроено правильно, то увидим локальный кластер с нашим сервером. Создаём информационную базу.


В случае ошибки, при создании базы, идем на сервер и заходим под пользователем postgres. Далее удаляем базу: dropdb postgres.

14

Следующим шагом переходим в 1С и добавляем нашу базу:



Заходим в конфигуратор и загружаем базу Gilev для теста:

15

Следующим шагом настроим Web-публикацию:

yum -y install httpd

Редактируем /etc/httpd/conf/httpd. conf где задаем значение директиве ServerName:

ServerName=1c-srv

В корневом каталоге сайта создаем директорию test, где test — имя базы к которой мы будем предоставлять доступ.

mkdir /var/www/html/test

Теперь нам необходимо запустить специальный скрипт для публикации базы на веб-сервере:

/opt/1C/v8.3/x86_64/webinst -apache24 -wsdir test -dir '/var/www/html/test' -connStr 'Srvr="1c-srv";Ref="test";' -confPath /etc/httpd/conf/httpd.conf

Выдаем права на директорию:

chown -R apache:apache /var/www/html/test

Запускаем Apache и добавляем в автозагрузку:

systemctl enable httpd
systemctl start httpd

Теперь проверяем по адресу 1c-srv/test

16

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

Первым делом установим архиватор pigz, поскольку он, в отличии от gzip, хорошо загружает все ядра процессора, что в свою очередь повышает производительность и скорость выполнения архивации.

yum -y install pigz

Монтирование диска:

Создадим папку для монтирования диска для бекапов и монтируем его:

mkdir /mnt/buckup 
mount /dev/sdb1 /mnt/buckup/

Для автоматического монтирования прописываем диск в файл fstab:

vi /etc/fstab
/dev/sdb1 /mnt/buckup ext4 defaults 0 0

Создаем директории, в которых будут находиться наши бекапы (Day, Week, Month…) и назначим владельцем postgres:

mkdir /mnt/buckup/Day /mnt/buckup/Week /mnt/buckup/Month
chown -R postgres:postgres /mnt/buckup

Создаем папки для записи лог файлов:

mkdir /var/log/postgresql/ /var/log/postgresql/Day /var/log/postgresql/Week /var/log/postgresql/Month
chown -R postgres:postgres /var/log/postgresql/

Далее создаем скрипт buckup.sh для резервного копирования и обслуживания базы:

#!/bin/sh
#Установим период, по истечению которого удалятся старые бекапы
days=$2
#Установим тип резервного копирования
type=$1
# Устанавливаем дату
DATA=`date +"%Y-%m-%d_%H-%M"`
# Записываем информацию в лог с секундами
echo “----------------------------$DATA---------------------------------------” >> /var/log/postgresql/$type/backup. log
echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup postgres" >> /var/log/postgresql/$type/backup.log
# Бэкапим базу данных postgres и сразу сжимаем
/usr/bin/pg_dump -U postgres postgres | pigz > /mnt/buckup/$type/$DATA-postgres.sql.gz
echo "`date +"%Y-%m-%d_%H-%M-%S"` End backup postgres" >> /var/log/postgresql/$type/backup.log
echo “------------------------------------------------------------------------” >> /var/log/postgresql/$type/backup.log
# Удаляем в папке с бэкапами старые архивы
/usr/bin/find /mnt/buckup/$type -type f -mtime +$days -exec rm -rf {} \;
sleep 2
#Очистка и анализ базы
echo “----------------------------$DATA---------------------------------------” >> /var/log/postgresql/$type/service.log
# Записываем информацию в лог с секундами
echo "`date +"%Y-%m-%d_%H-%M-%S"` Start vacuumdb postgres" >> /var/log/postgresql/$type/service.log
vacuumdb --verbose --analyze --full --quiet --dbname=postgres
echo "`date +"%Y-%m-%d_%H-%M-%S"` End vacuumdb postgres" >> /var/log/postgresql/$type/service. log
echo “------------------------------------------------------------------------” >> /var/log/postgresql/$type/service.log
#Перестроение индекса
sleep 2
echo "`date +"%Y-%m-%d_%H-%M-%S"` Start reindex postgres" >> /var/log/postgresql/$type/service.log
/usr/bin/reindexdb --username postgres --dbname postgres
echo "`date +"%Y-%m-%d_%H-%M-%S"` End reindex postgres" >> /var/log/postgresql/$type/service.log
echo “------------------------------------------------------------------------” >> /var/log/postgresql/$type/service.log

Сохраняем скрипт и кладем его в папку /var/log/postgresql/buckup.sh

Добавляем привилегии на запуск:

chmod +x /var/log/postgresql/buckup.sh

Заходим от имени пользователя postgres и добавляем скрип в /etc/crontab

su – postgres
crontab -e


Документация по временной шкале

| Установите TimescaleDB в Red Hat и CentOS

Версии:

Вы можете самостоятельно разместить TimescaleDB в своей системе Red Hat, CentOS или Fedora.
В этих инструкциях используется менеджер пакетов yum на этих
дистрибутивы:

  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise Linux 8
  • Red Hat Enterprise Linux 9
  • CentOS 7
  • CentOS 8
  • Rocky Linux 8

    90 Rocky0 Linux0009 Fedora 33

  • Fedora 34
  • Fedora 35

предупреждение

Если вы уже установили PostgreSQL с помощью метода, отличного от yum или dnf , вы можете столкнуться с ошибками, следуя этим инструкциям. Прежде чем начать, безопаснее удалить все существующие установки PostgreSQL. Если вы хотите сохранить текущую установку PostgreSQL, не устанавливайте TimescaleDB с помощью этого метода. Вместо этого установите из исходного кода.

Установка самостоятельно размещенной TimescaleDB в системах на основе Red Hat

  1. В командной строке от имени пользователя root добавьте сторонний репозиторий PostgreSQL
    Чтобы получить последние пакеты PostgreSQL:

  2. Создание репозитория TimeScale:

  3. Обновление своего локального списка репозиторий:

     

    YUM Обновление

  4. TimeScaledB:

     

  5. TimeScaledB:

     

    yum

  6. Установка. 14

  7. При установке на CentOS 8 или Red Hat Enterprise Linux 8 необходимо отключить встроенный в систему модуль PostgreSQL с помощью модуль sudo dnf -qy отключить команду postgresql .

  8. Инициализировать базу данных:

     

    /usr/pgsql-14/bin/postgresql-14-setup initdb

После завершения установки вам необходимо настроить базу данных так, чтобы
что вы можете использовать его. Самый простой способ сделать это — запустить timescaledb-tune .
скрипт, входящий в состав пакета timescaledb-tools . Запустите
скрипт timescaledb-tune с использованием
команда sudo timescaledb-tune --pg-config=/usr/pgsql-14/bin/pg_config . Для большего
информацию см. в разделе конфигурации.

Настройка расширения TimescaleDB

Если у вас установлены PostgreSQL и TimescaleDB, вы можете подключиться к ним с помощью
утилита командной строки psql .

Установите psql в CentOS

Вы можете использовать диспетчер пакетов yum в системах CentOS для установки
инструмент psql .

Установка psql с помощью диспетчера пакетов apt

  1. Убедитесь, что ваш репозиторий APT был актуален:
     

    YUM Обновление

  2. Установите Postgresql-Client
     

    Установка DNF PostGRESQL14

  3. 77777778888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888н.

    Включить и запустить службу:

     

    systemctl enable postgresql-14

    systemctl start postgresql-14

  4. Подключиться к экземпляру PostgreSQL как postgres суперпользователь:

     

    -u postgres psql

    Если ваше соединение успешно, вы увидите сообщение, подобное этому, за которым следует
    по подсказке psql :

     

    не удалось изменить каталог на «/ root»: разрешение отклонено

    psql (14. 5)

    Введите «помощь» для получения справки.

    postgres=#

  5. Установите пароль для пользователя postgres , используя:

     

    \password postgres

  6. Выйдите из PostgreSQL с помощью команды \q .

  7. Использовать клиент psql для подключения к PostgreSQL:

     

    psql -U postgres -h localhost

  8. По запросу psql создайте пустую базу данных. Наша база данных
    называется tsdb :

     

    СОЗДАТЬ базу данных tsdb;

  9. Подключитесь к созданной вами базе данных:

     

    \c tsdb

  10. Добавьте расширение TimescaleDB:

     

    СОЗДАЙТЕ РАСШИРЕНИЕ, ЕСЛИ НЕ СУЩЕСТВУЕТ timescaledb;

  11. Убедитесь, что расширение TimescaleDB установлено с помощью \dx
    в командной строке psql . Вывод аналогичен:

     

    tsdb-# \dx

    Список установленных расширений

    Имя | Версия | Схема | Описание

    -------------+---------+------------+----------- -------------------------------------------------- ------

    plpgsql | 1.0 | pg_каталог | Процедурный язык PL/pgSQL

    timescaledb | 2.7.0 | общественный | Включает масштабируемые вставки и сложные запросы для данных временных рядов

    (2 строки)

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

 

psql -U postgres -h localhost -d tsdb

Куда дальше

Теперь, когда ваша первая база данных TimescaleDB запущена и работает, вы можете проверить
раздел TimescaleDB в нашей документации и узнайте, что
вы можете сделать с этим.

Если вы хотите ознакомиться с некоторыми учебными пособиями, которые помогут вам начать работу с
TimescaleDB и данные временных рядов, ознакомьтесь с нашим разделом руководств.

Вы всегда можете связаться с нами, если вам нужна помощь в решении какой-либо проблемы, или
если вы хотите поболтать.

Нашли проблему на этой странице?

Сообщить о проблеме!

Keywords

installself-hostedRed Hat

PreviousDebian/UbuntuNextArch Linux

Related Content

Install self-hosted TimescaleDB

Install a self-hosted, self-managed instance of TimescaleDB

Install TimescaleDB from Docker container

Install самостоятельный TimescaleDB из предварительно созданного контейнера Docker

Установить TimescaleDB на Kubernetes

Установить TimescaleDB на собственном хостинге в Kubernetes

Установить TimescaleDB из облачного образа

Установить TimescaleDB на собственном хостинге из предварительно созданного облачного образа Debian и Ubuntu

Установка собственной базы данных TimescaleDB в системах на основе Debian

Bloonix: OpenSource Monitoring

Сначала установите репозиторий EPEL

 sudo yum install epel-release 

Установить репозиторий Bloonix

 sudo rpm -ivh https://download. bloonix.de/repos/centos/7/noarch/bloonix-release-0.7-1.noarch.rpm 

Установите репозиторий Elasticsearch

 sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
sudo vim /etc/yum.repos.d/elasticsearch.repo 

Вставка:

 [elasticsearch-2.x]
name=Репозиторий Elasticsearch для пакетов 2.x
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
включено=1 

Из соображений безопасности параметр network.bind_host следует изменить в /etc/elasticsearch/elasticsearch.yml , чтобы Elasticsearch не прослушивал все IP-адреса. Пример:

 network.bind_host: 127.0.0.1 

Установка пакета

 sudo yum install \
    нгинкс \
    postgresql-сервер \
    эластичный поиск \
    java-1.7.0-openjdk \
    bloonix-webgui \
    bloonix-сервер \
    bloonix-агент \
    bloonix-плагины-базовые \
    bloonix-плагины-linux 

Кроме того, пожалуйста, установите MTA, например, Postfix, Exim или Sendmail.

Init PostgreSQL

 sudo postgresql-setup initdb 

Настроить PostgreSQL

Отредактировать /var/lib/pgsql/data/postgresql.conf и настроить PostgreSQL для прослушивания на локальном хосте:

/sql/vipm/sudo /data/postgresql.conf

Установите следующий параметр:

 listen_addresses = 'localhost' 

или выполните следующую команду:

9#listen_addresses /listen_addresses/’ /var/lib/pgsql/data/postgresql.conf

Отредактируйте /var/lib/pgsql/data/pg_hba.conf и настройте PostgreSQL для подключения с помощью имени пользователя и пароля:

 sudo vim /var/lib/pgsql/data/pg_hba.conf 

Замените следующие строки:

  host all all 127.0.0.1/32 ident 
  хост все все ::1/128 идентификатор 
хост все все 127.0.0.1/32 md5
хост все все ::1/128 md5
 

или выполните следующие команды:

 sudo sed -i 's/\(host *all *all *127.0.0.1\/32 *\)ident/\1md5/' /var/lib/pgsql/data/pg_hba . conf
sudo sed -i 's/\(host *all *all *::1\/128 *\)ident/\1md5/' /var/lib/pgsql/data/pg_hba.conf 

Перезапустите PostgreSQL

 sudo systemctl перезапустите postgresql.service 

Nginx

Создайте файл конфигурации /etc/nginx/conf.d/001_bloonix.conf со следующим содержимым:

 include /etc/bloonix/webgui/nginx.conf; 

или просто выполните следующую команду:

 sudo bash -c 'echo "include /etc/bloonix/webgui/nginx.conf;" >/etc/nginx/conf.d/001_bloonix.conf' 

Запустить Elasticsearch и Nginx

 sudo systemctl запустить elasticsearch.service
sudo systemctl start nginx.service 

Шаблон Init Bloonix для Elasticsearch

 sudo /srv/bloonix/webgui/schema/init-elasticsearch localhost:9200 

Схема Init Bloonix для PostgreSQL

/schema/webix/bloon/srv база данных инициализации --postgres 

Метаданные плагина

После успешной инициализации и запуска базы данных вы можете установить пакет bloonix__plugin_config , который импортирует метаданные плагина в базу данных:

 sudo yum install bloonix-plugin-config 

Настроить агент

Отредактируйте конфигурацию агента Bloonix и настройте раздел server :

 sudo vim /etc/bloonix/agent/main.