Mehrere MySQL- oder MariaDB-Datenbanken automatisch sichern

Einführung

In diesem Artikel erfahren Sie, wie Sie mehrere MySQL- oder MariaDB-Datenbanken, die sich auf demselben Computer befinden, mithilfe eines benutzerdefinierten Bash-Skripts sichern und einen Cron-Job einrichten.

Datenbanksicherung (en)

Wir nehmen wir auf unsere Vultr Instanz mit dem Namen drei MySQL - Datenbanken haben db-vultr Ort , db-vultr-Blog , db-vultr-App (keine Sorge über das Erstellen dieser Datenbanken, werden Sie in der Lage sein , ihre Namen zu ersetzen Für Sie wurden sie im Skript in Schritt 2 unten verwendet .

  1. Melden Sie sich bei Ihrer MySQL- oder MariaDB-Datenbank an und führen Sie die folgende Abfrage aus, um einen Datenbankbenutzer db_user_backupsfür die Verwaltung von Sicherungen zu erstellen

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

    Führen Sie auch die folgenden Schritte aus, um sicherzustellen, dass MySQL so konfiguriert ist, dass gespeicherte Prozeduren ordnungsgemäß wiederhergestellt werden

    SET GLOBAL log_bin_trust_function_creators = 1;
    
  2. Richten Sie die erforderliche Verzeichnisstruktur und die erforderlichen Dateien ein

    # 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. Öffnen Sie db-backup.sh, nano /backups/db-backup.shfügen Sie den folgenden Code ein und speichern Sie die Datei (Strg + X -> Y -> Drücken Sie die Eingabetaste) .

    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
    

    Der obige Code durchläuft ein Array mit den Namen der Datenbank (en), die Sie sichern möchten, und tut dies.

Cronjob-Setup

Richten Sie einen Cronjob ein, der jede Mitternacht ausgeführt wird und das Sicherungsskript ausführt und das Ergebnis / die Ausgabe im Sicherungsprotokoll speichert.

  1. Crontab öffnen

    crontab -e
    
  2. Fügen Sie den folgenden Eintrag zu crontab hinzu

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

    Hinweis: Während des Testens können Sie Cronjob so einstellen, dass er stattdessen wie unten beschrieben alle 1 Minute ausgeführt wird

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

    -OR- alle 5 Minuten (ersetzen Sie 5 durch die gewünschte Anzahl von Minuten)

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

Was kommt als nächstes

Sie möchten wahrscheinlich nicht, dass sich Ihre Backups auf denselben Servern befinden, auf denen Ihre Datenbank ausgeführt wird, sondern auf einem Server an einem anderen geografischen Standort. Es gibt verschiedene Möglichkeiten, dies zu tun, von der Verwendung von SFTP bis zur Verwendung von benutzerdefinierten Tools, die von den unzähligen verfügbaren Cloud-Speicheranbietern bereitgestellt werden. Eine gute Alternative ist Rsync, wie hier erläutert - vultr.com/docs/setup-file-mirroring-using-rsync-in-debian-ubuntu

Geschrieben von Lami Adabonyan

Einen Kommentar hinterlassen

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.