Sikkerhetskopier flere MySQL- eller MariaDB-databaser automatisk

Introduksjon

I denne artikkelen vil vi gå gjennom hvordan du sikkerhetskopierer flere MySQL- eller MariaDB-databaser som sitter på samme maskin ved å bruke et tilpasset bash-skript og sette opp en cron-jobb.

Databasesikkerhetskopi(er)

Vi antar at vi har tre MySQL-databaser på Vultr-forekomsten vår kalt db-vultr-site , db-vultr-blog , db-vultr-app (Ikke bekymre deg for å lage disse databasene, du vil kunne erstatte navnene deres for din hvor de brukes i skriptet på trinn 2 nedenfor) .

  1. Logg på MySQL- eller MariaDB-databasen din og kjør spørringen nedenfor for å opprette en databasebruker for db_user_backupså håndtere sikkerhetskopier

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

    Kjør også nedenfor for å sikre at MySQL er konfigurert til å gjenopprette lagrede prosedyrer på riktig måte

    SET GLOBAL log_bin_trust_function_creators = 1;
    
  2. Sett opp nødvendig katalogstruktur 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. Åpne db-backup.sh nano /backups/db-backup.shog lim inn koden nedenfor i den, lagre deretter filen (Ctrl+X -> Y -> trykk 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
    

    Koden ovenfor går gjennom en matrise med navnene på databasen(e) du vil sikkerhetskopiere og gjør det.

Cronjob-oppsett

Sett opp en cronjob til å kjøre hver midnatt som kjører sikkerhetskopiskriptet og lagrer resultatet/utdataene i backuploggen.

  1. Åpne crontab

    crontab -e
    
  2. Legg til oppføringen nedenfor i crontab

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

    Merk: Mens du tester kan du stille inn cronjob til å kjøre hvert 1. minutt i stedet som nedenfor

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

    -ELLER- hvert 5. minutt (erstatt 5 med det antall minutter du ønsker)

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

Hva blir det neste

Du vil sannsynligvis ikke ha sikkerhetskopien(e) på samme server(e) som kjører databasen(e), men i stedet på en server på en annen geografisk plassering. Det er flere måter å gjøre dette på, alt fra å bruke SFTP til å bruke tilpassede verktøy levert av myriade av skylagringsleverandører som er tilgjengelige der ute. Et godt alternativ er Rsync som forklart her - vultr.com/docs/setup-file-mirroring-using-rsync-in-debian-ubuntu

Skrevet av Lami Adabonyan

Legg igjen 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 akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer