Настройка параллельного тестового стенда в БД

Настройка нового стенда требуется для «бесперебойного» параллельного тестирования. Процесс разворачивания следующий:

  • в базе данных создаем новую бд, например cic-test-db
новая база данных для тестирования
  • подключаемся по SSH и настраиваем сервер
sudo su - postgres
touch [name].sh # где name - любое имя файла

Ниже текст файла

#!/bin/bash

db_name=dev-db

echo "Архивация БД $db_name"
dir_folder=/var/lib/postgresql/$db_name
mkdir -p $dir_folder
cd $dir_folder

pg_dump test-db > $dir_folder/$db_name-day_$(date +\%Y\%m\%d).bak
psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid() AND datname = 'test-db';"
dropdb test-db
psql -c 'create database "test-db";'
psql -c 'ALTER DATABASE "test-db" OWNER TO mobnius;'
psql -c 'ALTER DATABASE "test-db" SET timezone TO "Europe/Moscow";'
psql -U postgres test-db < $dir_folder/$db_name-day_$(date +\%Y\%m\%d).bak
ls -1tr | head -n -5 | xargs -d '\n' rm -f --
echo "Завершено"

Примечание: наименование тестовой базы данных нужно указывать везде отдельно. По требованию test-db можно переименовать

  • устанавливаем права для запуска скрипта
chmod 777 [name].sh
  • запускаем скрипт
[name].sh

Примечание: можно настроить crontab для автоматического создания backup

0 0 * * * /var/lib/postgresql/[name].sh

Print Friendly, PDF & Email