В прошлом уроке мы успешно применили скрипт для создания резервной копии базы.
Сегодня мы разберем скрипт, с помощью которого можно быстро восстановить базу из последнего созданного бэкапа.
Скрипт можно скачать здесь >>>
# Настройки базы данных
DB_NAME=bux_3_0
DB_HOST=192.168.1.35
DB_PORT=5432
DB_USER=postgres
DB_PASS=postgres
# Настройки восстановления
RESTORE_DIR=/tmp
LATEST_BACKUP=$(ls -t $RESTORE_DIR/$DB_NAME-*.dump | head -1)
# Проверка наличия бэкапа
if [ -z "$LATEST_BACKUP" ]; then
echo "Нет доступных бэкапов для восстановления."
exit 1
fi
# Восстановление базы данных с перезаписью
pg_restore --dbname=postgresql://$DB_USER:$DB_PASS@$DB_HOST:$DB_PORT/$DB_NAME --clean $LATEST_BACKUP
# Подтверждение восстановления
echo "База данных '$DB_NAME' успешно восстановлена с перезаписью из бэкапа '$LATEST_BACKUP'."
Все что надо сделать, так это запустить скрипт с привилегиями sudo, скопировав его предварительно в каталог, где располагаются бэкапы созданные нами ранее скриптом backup.bash
Копируем скрипт в каталог tmp с windows на linux по scp (чтоб не устанавливать лишний софт):
scp D:\restore.bash bogdankuhar@192.168.1.35:/tmp
Подключаемся по SSH к удаленному серверу и переходим в каталог, куда скопировали скрипт в tmp:
ssh bogdankuhar@192.168.1.35 cd /tmp
Делаем скрипт исполняемым, командой:
sudo chmod +x restore.bash
Запускаем восстановление базы:
sudo ./restore.bash
Настройка скрипта:
Перед началом восстановления базы данных необходимо настроить скрипт для соответствующей конфигурации вашей среды. В открытом исходном коде приведен пример скрипта, который можно использовать для восстановления базы данных PostgreSQL. В этом скрипте присутствуют настройки, такие как имя базы данных, хост, порт, имя пользователя и пароль. Убедитесь, что вы указали правильные значения для этих настроек в соответствии со своей средой.
Проверка наличия бэкапа:
Скрипт начинает с проверки наличия последнего созданного бэкапа базы данных. Он ищет файлы бэкапа в указанной директории и выбирает последний созданный файл. Если бэкап не найден, выводится сообщение о его отсутствии, и скрипт завершается.
Восстановление базы данных:
После проверки наличия бэкапа скрипт выполняет восстановление базы данных PostgreSQL. Он использует команду pg_restore, передавая ей параметры подключения к базе данных и путь к файлу бэкапа. Эта команда перезаписывает существующую базу данных указанными данными из бэкапа.
Подтверждение восстановления:
После успешного восстановления базы данных скрипт выводит сообщение, подтверждающее успешное восстановление. В этом сообщении указываются имя восстановленной базы данных и путь к использованному бэкапу.
