PostgreSQL две базы данных на одном сервере.

PostgreSQL две базы данных на одном сервере.

Коллеги всем привет.

В сегодняшней статье я вам покажу как создать две базы данных PostgreSQL на одном сервере. На сервере можно создавать сколько угодно баз данных. Создать две базы данных возможно в случаи когда вы хотите чтобы у вас была одна продуктивная и одна тестовая база данных.

 

Чтобы вы могли хорошо понять данную статью вам нужно посмотреть статью о том, как я устанавливаю СУБД PostgreSQL их исходных файлов.

Скачать и установить Postgresql 14 на Linux CentOS/RHEL 8/7 TAR

 

Содержание статьи:

  1. Создаем файлы переменных окружений.
  2. Создаем директории под базы данных.
  3. Инициализация баз данных.
  4. Правим конфигурационные файлы.
  5. Запускаем базы данных.
  6. Проверка.

 

1. Создаем файлы переменных окружений.

В самом начале давайте создадим под каждую базу данных свой файл окружения (environment). Называться файлы будут db_prod.env и db_test.env

 

$. vim /home/postgres/db_prod.env

$. vim /home/postgres/db_test.env

 

В файл db_prod.env пишем:

export PGPASSWORD='Qwerty1'
export PGHOME=/app/postgresql
export LD_LIBRARY_PATH=/app/postgresql/lib
export PGDATA=/app/postgresql/pgdatabase/db_prod
export PGPORT=5777
export PATH=$PGHOME/bin:$PGDATA:$PATH

postgresql_two_database

 

В файл db_test.env пишем:

export PGPASSWORD='Qwerty1'
export PGHOME=/app/postgresql
export LD_LIBRARY_PATH=/app/postgresql/lib
export PGDATA=/app/postgresql/pgdatabase/db_test
export PGPORT=5888
export PATH=$PGHOME/bin:$PGDATA:$PATH

postgresql_two_database

 

В итоги у вас получится два файла.

postgresql_two_database

 

Разница в этих файлах в том что у нас базы данных будут лежать в отдельных директориях и работать будут на разных портах.


 

2. Создаем директории под базы данных.

Теперь настала очередь создать директории под наши базы данных.

 

$. mkdir -p /app/postgresql/pgdatabase/db_test

$. mkdir -p /app/postgresql/pgdatabase/db_prod

postgresql_two_database


 

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

Теперь нам нужно проинициализировать базы данных. Инициализация производится с помощью утилиты initdb.

 

Инициализируем db_prod базу данных:

$. /app/postgresql/bin/initdb -D /app/postgresql/pgdatabase/db_prod -U postgres -W

postgresql_two_database

 

Инициализируем db_test базу данных:

$. /app/postgresql/bin/initdb -D /app/postgresql/pgdatabase/db_test -U postgres -W

postgresql_two_database


 

4. Правим конфигурационные файлы.

На db_test и db_prod правим конфигурационный файл postgresql.conf.

 

На db_prod меняем порт с 5432 на 5777

postgresql_two_database

 

На db_test меняем порт с 5432 на 5888

postgresql_two_database


 

5. Запускаем базы данных.

После всего что мы сделали теперь мы можем запустить наши базы данных. Применяем под каждую базу данных свое окружения (environment) и запускаем базу данных через утилиту pg_ctl.

 

. db_prod.env
pg_ctl start

postgresql_two_database

 

. db_test.env
pg_ctl start

postgresql_two_database

 

Как видим со скриншотов каждая база данных работает под своим портом.


 

6. Проверка.

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

$. ps aux | grep postgres

postgresql_two_database


 

Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.

ПОХОЖИЕ СТАТЬИ

PostgreSQL - Как определить к каким файлам на диске соответствуют таблицы в базе данных
PostgreSQL - Как определить к каким файлам на диске соответствуют таблицы в базе данных
POSTGRESQL
Читать далее
PostgreSQL - Как узнать размер таблиц в базе данных
PostgreSQL - Как узнать размер таблиц в базе данных
POSTGRESQL
Читать далее
PostgreSQL - Как проверить привилегии пользователя
PostgreSQL - Как проверить привилегии пользователя
POSTGRESQL
Читать далее