PostgreSQL две базы данных на одном сервере.
Коллеги всем привет.
В сегодняшней статье я вам покажу как создать две базы данных PostgreSQL на одном сервере. На сервере можно создавать сколько угодно баз данных. Создать две базы данных возможно в случаи когда вы хотите чтобы у вас была одна продуктивная и одна тестовая база данных.
Чтобы вы могли хорошо понять данную статью вам нужно посмотреть статью о том, как я устанавливаю СУБД PostgreSQL их исходных файлов.
Скачать и установить Postgresql 14 на Linux CentOS/RHEL 8/7 TAR
Содержание статьи:
- Создаем файлы переменных окружений.
- Создаем директории под базы данных.
- Инициализация баз данных.
- Правим конфигурационные файлы.
- Запускаем базы данных.
- Проверка.
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
В файл 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
В итоги у вас получится два файла.
Разница в этих файлах в том что у нас базы данных будут лежать в отдельных директориях и работать будут на разных портах.
2. Создаем директории под базы данных.
Теперь настала очередь создать директории под наши базы данных.
$. mkdir -p /app/postgresql/pgdatabase/db_test
$. mkdir -p /app/postgresql/pgdatabase/db_prod
3. Инициализация баз данных.
Теперь нам нужно проинициализировать базы данных. Инициализация производится с помощью утилиты initdb.
Инициализируем db_prod базу данных:
$. /app/postgresql/bin/initdb -D /app/postgresql/pgdatabase/db_prod -U postgres -W
Инициализируем db_test базу данных:
$. /app/postgresql/bin/initdb -D /app/postgresql/pgdatabase/db_test -U postgres -W
4. Правим конфигурационные файлы.
На db_test и db_prod правим конфигурационный файл postgresql.conf.
На db_prod меняем порт с 5432 на 5777
На db_test меняем порт с 5432 на 5888
5. Запускаем базы данных.
После всего что мы сделали теперь мы можем запустить наши базы данных. Применяем под каждую базу данных свое окружения (environment) и запускаем базу данных через утилиту pg_ctl.
. db_prod.env
pg_ctl start
. db_test.env
pg_ctl start
Как видим со скриншотов каждая база данных работает под своим портом.
6. Проверка.
Для проверки можем проверить какие процессы работают, для этого воспользуемся командой:
$. ps aux | grep postgres
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.