Найти тему

Ставим PostgreSQL 12 на Ubuntu 20

Оглавление

Установим PostgreSQL 12 на сервер с операционной системой Ubuntu 20.04 LTS. БД установим на отдельный диск объёмом 300 ГБ, примонтированный к /opt.

Требования

  • ОС Ubuntu 20.04 LTS
  • Работаем из-под root.

Подготовка раздела

Итак, цепляем новый диск к виртуальной машине. Чтобы Ubuntu увидела новый диск, перезагружаемся. После перезагрузки у нас появляется в системе новый диск /dev/sdb объёмом 300 Гб.

fdisk -l
***
Disk /dev/sdb: 300 GiB, 322122547200 bytes, 629145600 sectors
Disk model: Virtual disk
***

Создаём основной раздел на диске:

fdisk /dev/sdb

Пример:

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x8c9be56d.

Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-629145599, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-629145599, default 629145599):

Created a new partition 1 of type 'Linux' and of size 300 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Проверяем:

fdisk -l

***
Disk /dev/sdb: 300 GiB, 322122547200 bytes, 629145600 sectors
Disk model: Virtual disk
***
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 629145599 629143552 300G 83 Linux

На диске появился раздел /dev/sdb1.

-2

В разделе /dev/sdb1 нужно создать файловую систему:

mkfs.ext4 -m 0 /dev/sdb1
-3

Примонтируем /dev/sdb1 в /opt. В папке opt будет лежать кластер PostgreSQL. Проверим что /opt существует:

cd /
ll | grep opt/
-4

Узнаем UUID раздела /dev/sdb1.

blkid /dev/sdb1
-5

Добавим строку в /etc/fstab:

UUID=0aa0e6a0-9ff5-4dbe-9a3e-7599b7643b16 /opt ext4 defaults 0 0
-6

Монтируем раздел:

sudo mount -a

Проверяем:

df -h
-7

Видим что /dev/sdb1 примонтирован в /opt и имеет 295G свободного места. Теперь после перезагрузки раздел будет монтироваться автоматически.

Радел для PostgreSQL подготовлен.

Установка PostgreSQL 12

Обновляем репозиторий.

apt-get update

Устанавливаем пакеты postgresql и postgresql-contrib.

apt-get install postgresql postgresql-contrib
-8

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

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

service postgresql status
-9

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

sudo -u postgres psql

psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1))
Type "help" for help.

postgres=
# SHOW data_directory;
data_directory
-----------------------------
/var/lib/postgresql/12/main
(1 row)
-10

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

apt-get install rsync

Останавливаем сервисы

systemctl stop postgresql

Проверка статуса Postgresql.

systemctl status postgresql
-11

Ищем строку "Stopped PostgreSQL RDBMS."  Сервисы остановлены. Переносим файлы базы данных.

rsync -av /var/lib/postgresql /opt

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

mv /var/lib/postgresql/12/main /var/lib/postgresql/12/main.bak

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

vim /etc/postgresql/12/main/postgresql.conf
-12

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

data_directory = '/opt/postgresql/12/main'
-13

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

systemctl start postgresql

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

sudo -u postgres psql

psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1))
Type "help" for help.

postgres=
# SHOW data_directory;
data_directory
-------------------------
/opt/postgresql/12/main (1 row)
-14

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

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

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

Мы установили Postgresql 12 на Ubuntu 20.04 LTS. Файлы данных разместили на отдельном диске.

Источник:
https://internet-lab.ru/postgresql_12_install_ubuntu

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.