PostgreSQL14. CentOS7. Установка

Описание установки PostgreSQL на CentOS 7 с переносом базы в новое место.

2023-05-02

1. Добавление yum-репозитория

  1. Добавляем файл-репо:

    USERNAME=nx-pubrepo-reader
    PASSWORD=xxxxxxxxxxxxxxxxx
    
    cat << EOF > /etc/yum.repos.d/pgdg-14.repo
    [pgdg-common]
    username=$USERNAME
    password=$PASSWORD
    name=PostgreSQL common RPMs for RHEL/CentOS \$releasever - \$basearch
    baseurl=http://nexus.example.org:8081/repository/pub_postgresql_yum/common/redhat/rhel-\$releasever-\$basearch
    enabled=1
    gpgcheck=0
    gpgkey=http://nexus.example.org:8081/repository/pub_postgresql_yum/RPM-GPG-KEY-PGDG-AARCH64
    
    [pgdg14]
    username=$USERNAME
    password=$PASSWORD
    name=PostgreSQL 14 for RHEL/CentOS \$releasever - \$basearch
    baseurl=http://nexus.example.org:8081/repository/pub_postgresql_yum/14/redhat/rhel-\$releasever-\$basearch
    enabled=1
    gpgcheck=0
    gpgkey=http://nexus.example.org:8081/repository/pub_postgresql_yum/RPM-GPG-KEY-PGDG-AARCH64
    EOF
    
  2. Проверяем подключение к репо:

    yum check-update
    

2. Установка PostgreSQL

  1. Устанавливаем PostgreSQL командой:
    yum install -y postgresql14-server
    

3. Инициализация базы данных

  1. Выполняем:

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

    База данных будет создана в /var/lib/pgsql/14/data.

4. Перенос базы данных в /srv

  1. При необходимости, копируем ранее созданную базу данных в другое место /srv, к которому подключен большой диск:
    rsync -av /var/lib/pgsql /srv/
    

5. Запуск postgresql-14

  1. Переопределяем путь к базе данных в systemd-юните ‘postgresql-14.service’:

    UNITNAME='postgresql-14.service'
    DBPATH='/srv/pgsql/14/data/'
    
    mkdir -p /etc/systemd/system/${UNITNAME}.d
    echo -e "[Service]\nEnvironment=PGDATA=${DBPATH}" > \
    /etc/systemd/system/${UNITNAME}.d/override.conf
    
  2. Перечитываем systemd и запускаем PostgreSQL:

    systemctl daemon-reload
    systemctl enable --now $UNITNAME
    

6. Заключительная зачистка

  1. Удаляем оставшуюся копию базы данных:
    rm -rf /var/lib/pgsql