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
Читати далі