В прошлом уроке мы успешно применили скрипт для создания резервной копии базы.
Сегодня мы разберем скрипт, с помощью которого можно быстро восстановить базу из последнего созданного бэкапа.
Скрипт можно скачать здесь >>>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# Настройки базы данных 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 (чтоб не устанавливать лишний софт):
1 |
scp D:\restore.bash bogdankuhar@192.168.1.35:/tmp |
Подключаемся по SSH к удаленному серверу и переходим в каталог, куда скопировали скрипт в tmp:
1 |
ssh bogdankuhar@192.168.1.35 cd /tmp |
Делаем скрипт исполняемым, командой:
1 |
sudo chmod +x restore.bash |
Запускаем восстановление базы:
1 |
sudo ./restore.bash |
Настройка скрипта:
Перед началом восстановления базы данных необходимо настроить скрипт для соответствующей конфигурации вашей среды. В открытом исходном коде приведен пример скрипта, который можно использовать для восстановления базы данных PostgreSQL. В этом скрипте присутствуют настройки, такие как имя базы данных, хост, порт, имя пользователя и пароль. Убедитесь, что вы указали правильные значения для этих настроек в соответствии со своей средой.
Проверка наличия бэкапа:
Скрипт начинает с проверки наличия последнего созданного бэкапа базы данных. Он ищет файлы бэкапа в указанной директории и выбирает последний созданный файл. Если бэкап не найден, выводится сообщение о его отсутствии, и скрипт завершается.
Восстановление базы данных:
После проверки наличия бэкапа скрипт выполняет восстановление базы данных PostgreSQL. Он использует команду pg_restore, передавая ей параметры подключения к базе данных и путь к файлу бэкапа. Эта команда перезаписывает существующую базу данных указанными данными из бэкапа.
Подтверждение восстановления:
После успешного восстановления базы данных скрипт выводит сообщение, подтверждающее успешное восстановление. В этом сообщении указываются имя восстановленной базы данных и путь к использованному бэкапу.