Sikkerhedskopier flere MySQL- eller MariaDB-databaser automatisk

Introduktion

I denne skrivning gennemgår vi, hvordan du sikkerhedskopierer flere MySQL- eller MariaDB-databaser, der sidder på den samme maskine, ved hjælp af et brugerdefineret bash-script og opsætning af et cron-job.

Database backup(r)

Vi antager, at vi har tre MySQL-databaser på vores Vultr-instans ved navn db-vultr-site , db-vultr-blog , db-vultr-app (Bare rolig med at oprette disse databaser, du vil være i stand til at erstatte deres navne til din, hvor de bruges i scriptet på trin 2 nedenfor) .

  1. Log på din MySQL- eller MariaDB-database og kør nedenstående forespørgsel for at oprette en databasebruger db_user_backupstil at håndtere sikkerhedskopier

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

    Kør også nedenfor for at sikre, at MySQL er konfigureret til korrekt at gendanne lagrede procedurer

    SET GLOBAL log_bin_trust_function_creators = 1;
    
  2. Konfigurer den nødvendigvis mappestruktur og nødvendige filer

    # 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. Åbn db-backup.sh nano /backups/db-backup.shog indsæt koden nedenfor i den, gem derefter filen (Ctrl+X -> Y -> tryk på 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
    

    Ovenstående kode går gennem et array med navnene på den eller de databaser, du vil sikkerhedskopiere, og gør det.

Cronjob opsætning

Konfigurer et cronjob til at køre hver midnat, der kører backup-scriptet og gemmer resultatet/outputtet i backup-log.

  1. Åbn crontab

    crontab -e
    
  2. Tilføj nedenstående post til crontab

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

    Bemærk: Mens du tester, kan du indstille cronjob til at køre hvert 1. minut i stedet for som nedenfor

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

    -ELLER- hvert 5. minut (erstat 5 med det antal minutter, du ønsker)

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

Hvad er det næste

Du vil sandsynligvis ikke have din backup(r) på den eller de samme servere, der kører din(e) database(r), men i stedet på en server på en anden geografisk placering. Der er flere måder at gøre dette på, lige fra at bruge SFTP til at bruge brugerdefinerede værktøjer leveret af det utal af cloud storage-udbydere, der er tilgængelige derude. Et godt alternativ er Rsync som forklaret her - vultr.com/docs/setup-file-mirroring-using-rsync-in-debian-ubuntu

Skrevet af Lami Adabonyan

Efterlad en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere