Website-Suche

So sichern/wiederherstellen Sie MySQL/MariaDB und PostgreSQL mit den Tools „Automysqlbackup“ und „Autopostgresqlbackup“.


Wenn Sie Datenbankadministrator (DBA) sind oder für die Pflege, Sicherung und Wiederherstellung von Datenbanken verantwortlich sind, wissen Sie, dass Sie es sich nicht leisten können, Daten zu verlieren. Der Grund ist einfach: Der Verlust von Daten bedeutet nicht nur den Verlust wichtiger Informationen, sondern kann Ihrem Unternehmen auch einen finanziellen Schaden zufügen.

Aus diesem Grund müssen Sie immer sicherstellen, dass:

1. Ihre Datenbanken werden regelmäßig gesichert,
2. diese Backups werden an einem sicheren Ort gespeichert und
3. Sie führen regelmäßig Wiederherstellungsübungen durch.

Diese letzte Aktivität sollte nicht übersehen werden, da Sie nicht auf ein größeres Problem stoßen möchten, ohne geübt zu haben, was in einer solchen Situation zu tun ist.

In diesem Tutorial stellen wir Ihnen zwei nützliche Dienstprogramme zum Sichern von MySQL-/ MariaDB- und PostgreSQL-Datenbanken vor: automysqlbackup und autopostgresqlbackup.

Da Letzteres auf Ersterem basiert, konzentrieren wir uns in unserer Erklärung auf automysqlbackup und heben ggf. Unterschiede zu autopgsqlbackup hervor.

Es wird dringend empfohlen, die Backups in einer im Backup-Verzeichnis gemounteten Netzwerkfreigabe zu speichern, damit Sie im Falle eines systemweiten Absturzes weiterhin abgesichert sind.

Lesen Sie die folgenden nützlichen Anleitungen zu MySQL:

Installation von MySQL-/MariaDB-/PostgreSQL-Datenbanken

1. In diesem Handbuch wird davon ausgegangen, dass die Instanz MySQL/MariaDB/PostgreSQL ausgeführt werden muss. Wenn nicht, installieren Sie sie bitte die folgenden Pakete:

Fedora-basierte Distributionen:

yum update && yum install mariadb mariadb-server mariadb-libs postgresql postgresql-server postgresql-libs

Debian und Derivate:

aptitude update && aptitude install mariadb-client mariadb-server mariadb-common postgresql-client postgresql postgresql-common

2. Sie verfügen über eine Testdatenbank MySQL/MariaDB/PostgreSQL, die Sie verwenden können (es wird empfohlen, < strong style="color:red">verwenden Sie automysqlbackup oder autopostgresqlbackup NICHT in einer Produktionsumgebung, bis Sie sich mit diesen Tools vertraut gemacht haben).

Andernfalls erstellen Sie zwei Beispieldatenbanken und füllen Sie diese mit Daten, bevor Sie fortfahren. In diesem Artikel werde ich die folgenden Datenbanken und Tabellen verwenden:

CREATE DATABASE mariadb_db;
CREATE TABLE tecmint_tbl (UserID INT AUTO_INCREMENT PRIMARY KEY, 
UserName VARCHAR(50), 
IsActive BOOL);

CREATE DATABASE postgresql_db;
CREATE TABLE tecmint_tbl (
UserID SERIAL PRIMARY KEY,
UserName VARCHAR(50),
IsActive BOOLEAN);

Installation von automysqlbackup und autopgsqlbackup in CentOS 7 und Debian 8

3. In Debian 8 sind beide Tools in den Repositorys verfügbar, sodass die Installation so einfach ist wie das Ausführen von:

aptitude install automysqlbackup autopostgresqlbackup

In CentOS 7 hingegen müssen Sie die Installationsskripte herunterladen und ausführen. In den folgenden Abschnitten konzentrieren wir uns ausschließlich auf die Installation, Konfiguration und das Testen dieser Tools unter CentOS 7, denn für Debian 8 – wo sie fast sofort funktionieren, werden wir dies tun Machen Sie später in diesem Artikel die notwendigen Klarstellungen.

Installieren und Konfigurieren von Automysqlbackup in CentOS 7

4. Beginnen wir mit der Erstellung eines Arbeitsverzeichnisses in /opt, um das Installationsskript herunterzuladen und auszuführen:

mkdir /opt/automysqlbackup
cd /opt/automysqlbackup
wget http://ufpr.dl.sourceforge.net/project/automysqlbackup/AutoMySQLBackup/AutoMySQLBackup%20VER%203.0/automysqlbackup-v3.0_rc6.tar.gz
tar zxf automysqlbackup-v3.0_rc6.tar.gz
./install.sh

5. Die Konfigurationsdatei für automysqlbackup befindet sich in /etc/automysqlbackup unter dem Namen myserver.conf. Werfen wir einen Blick auf die wichtigsten Konfigurationsanweisungen:

Username to access the MySQL server
CONFIG_mysql_dump_username='root'
Password
CONFIG_mysql_dump_password='YourPasswordHere'
Host name (or IP address) of MySQL server
CONFIG_mysql_dump_host='localhost'
Backup directory
CONFIG_backup_dir='/var/backup/db/automysqlbackup'
List of databases for Daily/Weekly Backup e.g. ( 'DB1' 'DB2' 'DB3' ... )
set to (), i.e. empty, if you want to backup all databases
CONFIG_db_names=(AddYourDatabase Names Here)
List of databases for Monthly Backups.
set to (), i.e. empty, if you want to backup all databases
CONFIG_db_month_names=(AddYourDatabase Names Here)
Which day do you want monthly backups? (01 to 31)
If the chosen day is greater than the last day of the month, it will be done
on the last day of the month.
Set to 0 to disable monthly backups.
CONFIG_do_monthly="01"
Which day do you want weekly backups? (1 to 7 where 1 is Monday)
Set to 0 to disable weekly backups.
CONFIG_do_weekly="5"
Set rotation of daily backups. VALUE*24hours
If you want to keep only today's backups, you could choose 1, i.e. everything older than 24hours will be removed.
CONFIG_rotation_daily=6
Set rotation for weekly backups. VALUE*24hours. A value of 35 means 5 weeks.
CONFIG_rotation_weekly=35
Set rotation for monthly backups. VALUE*24hours. A value of 150 means 5 months.
CONFIG_rotation_monthly=150
Include CREATE DATABASE statement in backup?
CONFIG_mysql_dump_create_database='no'
Separate backup directory and file for each DB? (yes or no)
CONFIG_mysql_dump_use_separate_dirs='yes'
Choose Compression type. (gzip or bzip2)
CONFIG_mysql_dump_compression='gzip'
What would you like to be mailed to you?
- log   : send only log file
- files : send log file and sql files as attachments (see docs)
- stdout : will simply output the log to the screen if run manually.
- quiet : Only send logs if an error occurs to the MAILADDR.
CONFIG_mailcontent='quiet'
Email Address to send mail to? ([email )
CONFIG_mail_address='root'
Do you wish to encrypt your backups using openssl?
#CONFIG_encrypt='no'
Choose a password to encrypt the backups.
#CONFIG_encrypt_password='password0123'
Command to run before backups (uncomment to use)
#CONFIG_prebackup="/etc/mysql-backup-pre"
Command run after backups (uncomment to use)
#CONFIG_postbackup="/etc/mysql-backup-post"

Sobald Sie automysqlbackup entsprechend Ihren Anforderungen konfiguriert haben, empfehlen wir Ihnen dringend, die README-Datei unter /etc/automysqlbackup/README zu lesen.

MySQL-Datenbanksicherung

6. Wenn Sie bereit sind, führen Sie das Programm aus und übergeben Sie dabei die Konfigurationsdatei als Argument:

automysqlbackup /etc/automysqlbackup/myserver.conf

Eine kurze Überprüfung des daily-Verzeichnisses zeigt, dass automysqlbackup erfolgreich ausgeführt wurde:

pwd
ls -lR daily

Natürlich können Sie einen Crontab-Eintrag hinzufügen, um automysqlbackup zu einer Tageszeit auszuführen, die Ihren Anforderungen am besten entspricht (1:30 jeden Tag im folgenden Beispiel):

30 01 * * * /usr/local/bin/automysqlbackup /etc/automysqlbackup/myserver.conf

Wiederherstellen eines MySQL-Backups

7. Lassen Sie uns nun absichtlich die Datenbank mariadb_db löschen:

Lassen Sie uns es erneut erstellen und das Backup wiederherstellen. Geben Sie in der MariaDB-Eingabeaufforderung Folgendes ein:

CREATE DATABASE mariadb_db;
exit

Dann suchen Sie:

cd /var/backup/db/automysqlbackup/daily/mariadb_db
ls

Und stellen Sie das Backup wieder her:

mysql -u root -p mariadb_db < daily_mariadb_db_2015-09-01_23h19m_Tuesday.sql
mysql -u root -p
MariaDB [(none)]> USE mariadb_db; 
MariaDB [(none)]> SELECT * FROM tecmint_tb1;

Installieren und Konfigurieren von Autopostgresqlbackup in CentOS 7

8. Damit autopostgresql in CentOS 7 einwandfrei funktioniert, müssen wir zuerst einige Abhängigkeiten installieren:

yum install mutt sendmail

Dann wiederholen wir den Vorgang wie zuvor:

mkdir /opt/autopostgresqlbackup
cd /opt/autopostgresqlbackup
wget http://ufpr.dl.sourceforge.net/project/autopgsqlbackup/AutoPostgreSQLBackup/AutoPostgreSQLBackup-1.0/autopostgresqlbackup.sh.1.0
mv autopostgresqlbackup.sh.1.0 /opt/autopostgresqlbackup/autopostgresqlbackup.sh

Lassen Sie uns das Skript ausführbar machen und den Dienst starten/aktivieren:

chmod 755 autopostgresqlbackup.sh
systemctl start postgresql
systemctl enable postgresql

Abschließend bearbeiten wir den Wert der Sicherungsverzeichniseinstellung wie folgt:

BACKUPDIR="/var/backup/db/autopostgresqlbackup"

Nachdem Sie die Konfigurationsdatei von automysqlbackup durchgesehen haben, ist die Konfiguration dieses Tools sehr einfach (dieser Teil der Aufgabe bleibt Ihnen überlassen).

9. In CentOS 7 wird autopostgresqlbackup im Gegensatz zu Debian 8 am besten als postgres Systembenutzer, also sollten Sie dazu entweder zu diesem Konto wechseln oder einen Cron-Job zu seiner Crontab-Datei hinzufügen:

crontab -u postgres -e
30 01 * * * /opt/autopostgresqlbackup/autopostgresqlbackup.sh

Das Backup-Verzeichnis muss übrigens erstellt werden und seine Berechtigungen und Gruppeneigentümer müssen rekursiv auf 0770 und postgres gesetzt werden (auch dies wird in < NICHT notwendig sein).Debian):

mkdir /var/backup/db/autopostgresqlbackup
chmod -R 0770 /var/backup/db/autopostgresqlbackup
chgrp -R postgres /var/backup/db/autopostgresqlbackup

Das Ergebnis:

cd /var/backup/db/autopostgresqlbackup
pwd
ls -lR daily

10. Jetzt können Sie die Dateien bei Bedarf wiederherstellen (denken Sie daran, dies als Benutzer postgres zu tun, nachdem Sie die leere Datenbank neu erstellt haben):

gunzip -c postgresql_db_2015-09-02.Wednesday.sql.gz | psql postgresql_db

Überlegungen in Debian 8

Wie bereits erwähnt, ist nicht nur die Installation dieser Tools in Debian einfacher, sondern auch ihre jeweiligen Konfigurationen. Sie finden die Konfigurationsdateien in:

  1. Automysqlbackup: /etc/default/automysqlbackup
  2. Autopostgresqlbackup: /etc/default/autopostgresqlbackup

Zusammenfassung

In diesem Artikel haben wir erklärt, wie Sie automysqlbackup und autopostgresqlbackup installieren und verwenden (wenn Sie lernen, wie man das erste verwendet, können Sie auch das zweite besser beherrschen), zwei großartige Datenbanksicherungen Tools, die Ihre Aufgaben als DBA oder Systemadministrator/Ingenieur erheblich erleichtern können.

Bitte beachten Sie, dass Sie dieses Thema vertiefen können, indem Sie E-Mail-Benachrichtigungen einrichten oder Sicherungsdateien als Anhänge per E-Mail senden – nicht unbedingt erforderlich, kann aber manchmal nützlich sein.

Denken Sie abschließend daran, dass die Berechtigungen der Konfigurationsdateien auf das Minimum eingestellt werden sollten (in den meisten Fällen 0600). Wir freuen uns darauf, Ihre Meinung zu diesem Artikel zu hören. Sie können uns gerne eine Nachricht über das untenstehende Formular hinterlassen.