Перейти к основному содержанию

Установка PostgreSQL 17 на Debian 12

Postgresql

Установим PostgreSQL 17 на сервер с операционной системой Debian 12 bookworm. БД установим в директорию /opt.

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

https://www.postgresql.org/download/linux/debian/

Требования

  • ОС Debian 12
  • Работаем из-под root
  • Установим PostgreSQL 17

Обновим пакеты:

apt update
sql

Установка репозитория

Установим и сконфигурируем репозиторий автоматически:

apt install -y postgresql-common
/usr/share/postgresql-common/pgdg/apt.postgresql.org.sh

Если кто-то хочет всё сделать руками, то:

sudo apt install curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc
. /etc/os-release
sudo sh -c "echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $VERSION_CODENAME-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
sudo apt update
sudo apt -y install postgresql
sqlsql

Обновим пакеты:

apt update
sql

Видим что в новом репозитории найдены более новые пакеты. Обновим их тоже.

apt install -y postgresql-common

Репозиторий добавлен, пакеты находятся и устанавливаются.

Установка PostgreSQL 17

apt install postgresql-17
sql

Устанавливается PostgreSQL 17.

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

systemctl status postgresql
sql

Сервис запущен. 

Перенос PostgreSQL в /opt

Сразу же не отходя от кассы перенесём PostgreSQL на выделенный раздел /opt. Проверим где находится текущая БД PostgreSQL.

sudo -u postgres psql
SHOW data_directory;
sql

БД находится в папке /var/lib/postgresql/17/main. Для переноса БД нам понадобится rsync:

app install rsync
sql

Останавливаем базу:

systemctl stop postgresql
systemctl status postgresql
sql

Сервисы остановлены. Переносим файлы базы данных.

rsync -av /var/lib/postgresql /opt
sql

После переноса переименуем старую папку, на всякий случай:

mv /var/lib/postgresql/17/main /var/lib/postgresql/17/main.bak
sql

Настроим конфигурацию Postgresql. Правим файл postgresql.conf:

vim /etc/postgresql/17/main/postgresql.conf
sql

Изменяем значение data_directory:

data_directory = '/opt/postgresql/17/main'
sql

Запуск сервисов.

systemctl start postgresql
systemctl status postgresql
sql

Проверяем где находится текущая БД postgresql.

sudo -u postgres psql
SHOW data_directory;
sql

БД находится в папке /opt/postgresql/17/main.

Удалим ненужные файлы:

rm -Rf /var/lib/postgresql/17/main.bak

Мы установили Postgresql 17 на Debian 12. Файлы данных разместили в директории /opt.

Теги

 

Похожие материалы