Как автоматизировать резервное копирование контейнера базы данных MYSQL - PullRequest
0 голосов
/ 18 марта 2020

У меня есть контейнер базы данных MYSQL, работающий на сервере Centos. Как автоматизировать резервное копирование базы данных вне контейнера?

1 Ответ

0 голосов
/ 18 марта 2020

, как указано в комментариях, убедитесь, что вы используете тома для папки данных.

для резервного копирования:

  1. создайте скрипт bash на хост-компьютере и сделайте его исполняемый файл:
#!/bin/bash
DATE=$(date '+%Y-%m-%d_%H-%M-%S')
docker exec <container name> /usr/bin/mysqldump -u <putdatabaseusername here> -p<PutyourpasswordHere> --all-databases > /<path to desired backup location>/$DATE.sql
if [[ $? == 0 ]]; then
    find /<path to desired backup location>/ -mtime +10 -exec rm {} \;
fi

изменить следующее:

<container name> на фактическое имя контейнера БД

<putdatabaseusername here> на пользователя БД

<PutyourpasswordHere> к паролю БД

создайте каталог для файлов резервных копий и замените /<path to desired backup location>/ на фактический путь

создайте cronjob на хост-компьютере, который выполняет сценарий в нужное время / период

обратите внимание, что этот сценарий будет сохранять резервные копии в течение 10 дней, измените число в соответствии с вашими потребностями.

Важное примечание: этот скрипт хранит пароль в файле, используйте безопасный способ при производстве

...