Backup multiple baze de date MySQL sau MariaDB

Introducere

În această scriere, vom parcurge cum să faceți backup pentru mai multe baze de date MySQL sau MariaDB, care stau pe aceeași mașină, folosind un script bash personalizat și setând un job cron.

Copie de rezervă a bazei de date

Vom presupune că avem trei baze de date MySQL pe instanța noastră Vultr numită db-vultr-site , db-vultr-blog , db-vultr-app (Nu vă faceți griji despre crearea acestor baze de date, veți putea să le înlocuiți numele pentru dvs., atunci când sunt utilizate în scriptul de la Pasul 2 de mai jos) .

  1. Conectați-vă la baza de date MySQL sau MariaDB și executați mai jos interogarea pentru a crea un utilizator al bazei de date care db_user_backupssă se ocupe de copii de rezervă

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

    De asemenea, executați mai jos pentru a vă asigura că MySQL este configurat pentru a restaura corect procedurile stocate

    SET GLOBAL log_bin_trust_function_creators = 1;
    
  2. Configurați structura și fișierele necesare în mod necesar

    # 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. Deschideți db-backup.sh nano /backups/db-backup.shși lipiți codul de mai jos în el, apoi salvați fișierul (Ctrl + X -> Y -> apăsați 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
    

    Codul de mai sus se realizează în buclă printr-un tablou cu numele (numele) bazei de date pe care doriți să le faceți backup și faceți acest lucru.

Configurare Cronjob

Configurați un cronjob pentru a rula în fiecare miez de noapte care rulează scriptul de rezervă și salvează rezultatul / ieșirea în jurnalul de rezervă.

  1. Deschide crontab

    crontab -e
    
  2. Adăugați mai jos intrarea în crontab

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

    Notă: În timp ce testați, puteți seta cronjob-ul să ruleze la fiecare 1 minut în loc ca mai jos

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

    -OR- la fiecare 5 minute (înlocuiți 5 cu numărul de minute pe care doriți)

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

Ce urmeaza

Probabil că nu doriți backup-ul dvs. copie de rezervă pe același server (e) care rulează baza de date, dar în schimb pe un server într-o locație geografică diferită. Există mai multe modalități de a face acest lucru, de la utilizarea SFTP, la utilizarea instrumentelor personalizate furnizate de o mulțime de furnizori de stocare cloud disponibili acolo. O alternativă bună este Rsync așa cum se explică aici - vultr.com/docs/setup-file-mirroring-using-rsync-in-debian-ubuntu

Scris de Lami Adabonyan

Lasă un comentariu

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe