Автоматично архивиране на множество MySQL или MariaDB бази данни

Въведение

В тази статия ще разгледаме как да архивираме множество MySQL или MariaDB бази данни, които се намират на една и съща машина, използвайки персонализиран bash скрипт и настройване на работа на cron.

Архив на база данни

Ще приемем, че имаме три MySQL бази данни в нашия Vultr екземпляр с име db-vultr-site , db-vultr-blog , db-vultr-app (Не се притеснявайте за създаването на тези бази данни, ще можете да замените имената им за вашите, когато се използват в скрипта на стъпка 2 по-долу) .

  1. Влезте във вашата база данни MySQL или MariaDB и изпълнете заявката по-долу, за да създадете потребител на база данни за db_user_backupsобработка на архиви

    GRANT LOCK TABLES, SELECT, SHOW VIEW, REPLICATION CLIENT ON *.* TO 'db_user_backups'@'%' IDENTIFIED BY '{COMPLEX-PASSWORD}';
    

    Също така стартирайте по-долу, за да се уверите, че MySQL е конфигуриран да възстановява правилно съхранените процедури

    SET GLOBAL log_bin_trust_function_creators = 1;
    
  2. Настройте необходимата структура на директорията и необходимите файлове

    # create backup directory with environment and log file
    sudo mkdir /backups && cd /backups
    sudo touch .env db-backup.sh db-backup.log
    sudo chmod -R 775 /backups
    sudo chmod -R g+s /backups
    sudo chmod +x db-backup.sh
    
    # add mysql backup user credentials into environment file
    echo "export MYSQL_USER=db_user_backups" > /backups/.env
    echo "export MYSQL_PASS={COMPLEX-PASSWORD}" >> /backups/.env
    
  3. Отворете db-backup.sh nano /backups/db-backup.shи поставете кода по-долу в него, след което запазете файла (Ctrl+X -> Y -> натиснете Enter) .

    DB_NAMES=( 'db-vultr-site' 'db-vultr-blog' 'db-vultr-app' ) #replace with your own database name(s)
    BKUP_NAMES=()
    BKUP_DIR="/backups"
    
    # get total number of directories
    total_dbs=${#DB_NAMES[@]}
    
    # create backup file names
    for (( i=0; i<${total_dbs}; i++ )); do
        BKUP_NAMES[$i]="`date +%Y%m%d%H%M`-backup-$${DB_NAMES[$i]}.sql.gz"
    done
    
    # get backup users credentials
    source $BKUP_DIR/.env
    
    # create backups
    for (( i=0; i<${total_dbs}; i++ )); do
        # NOTE: --routines flag makes sure stored procedures are also backed up
        mysqldump --routines -u ${MYSQL_USER} -p${MYSQL_PASS} | gzip > ${BKUP_DIR}/${BKUP_NAMES[$i]}
    done
    

    Кодът по-горе минава през масив с имената на базата данни, които искате да архивирате и правите това.

Настройка на Cronjob

Настройте cronjob да се изпълнява всяка полунощ, който изпълнява скрипта за архивиране и записва резултата/изхода в архивния дневник.

  1. Отворете crontab

    crontab -e
    
  2. Добавете по-долу запис към crontab

    0 0 * * * /usr/bin/env bash /backups/db-backup.sh &>> /backups/db-backup.log
    

    Забележка: Докато тествате, можете да настроите cronjob да се изпълнява на всеки 1 минута вместо това, както по-долу

    * * * * * /usr/bin/env bash /backups/db-backup.sh &>> /backups/db-backup.log
    

    -ИЛИ- на всеки 5 минути (заменете 5 с броя минути, който искате)

    */5 * * * * /usr/bin/env bash /backups/db-backup.sh &>> /backups/db-backup.log
    

Какво следва

Вероятно няма да искате вашите резервни копия(и) на същия(и) сървър(и), работещи с вашата база(и), а вместо това на сървър в различно географско местоположение. Има няколко начина да направите това, вариращи от използване на SFTP до използване на персонализирани инструменти, предоставени от безброй доставчици на облачно съхранение, налични там. Една добра алтернатива е Rsync, както е обяснено тук - vultr.com/docs/setup-file-mirroring-using-rsync-in-debian-ubuntu

Написано от Лами Адабонян

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече