Wenn Sie Datenbankadministrator sind (DBA ) oder für die Wartung, 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 finanziell schaden.
Aus diesem Grund müssen Sie immer Folgendes sicherstellen:
1. Ihre Datenbanken werden regelmäßig gesichert,
2. diese Sicherungen an einem sicheren Ort gespeichert werden 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 nette Dienstprogramme zum Sichern von MySQL vor / MariaDB und PostgreSQL Datenbanken:automysqlbackup und autopostgresqlbackup .
Da letzteres auf ersterem basiert, konzentrieren wir uns bei unserer Erläuterung auf automysqlbackup und Unterschiede mit autopgsqlbackup hervorheben , wenn überhaupt.
Es wird dringend empfohlen, die Backups in einer Netzwerkfreigabe zu speichern, die im Backup-Verzeichnis eingebunden ist, damit Sie im Falle eines systemweiten Absturzes immer noch abgesichert sind.
Lesen Sie die folgenden nützlichen Anleitungen zu MySQL:
Grundlegende MySQL-DatenbankverwaltungsbefehleMySQL-Sicherungs- und Wiederherstellungsbefehle für die DatenbankverwaltungphpMyBackupPro – Ein webbasiertes MySQL-SicherungstoolMySQLDumper:Ein PHP- und Perl-basiertes MySQL-Datenbanksicherungstool15 Grundlegende MySQL-Interviewfragen für DatenbankadministratorenInstallieren von MySQL-/MariaDB-/PostgreSQL-Datenbanken
1. Diese Anleitung geht davon aus, dass Sie über MySQL verfügen müssen / MariaDB / PostgreSQL Instanz läuft, wenn nicht, installieren 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 haben ein Test-MySQL / MariaDB / PostgreSQL Datenbank, die Sie verwenden können (es wird empfohlen, NICHT Verwenden Sie entweder automysqlbackup oder autopostgresqlbackup in einer Produktionsumgebung, bis Sie sich mit diesen Tools vertraut gemacht haben).
Erstellen Sie andernfalls zwei Beispieldatenbanken und füllen Sie sie mit Daten, bevor Sie fortfahren. In diesem Artikel verwende ich die folgenden Datenbanken und Tabellen:
MySQL/MariaDBCREATE DATABASE mariadb_db; CREATE TABLE tecmint_tbl (UserID INT AUTO_INCREMENT PRIMARY KEY, UserName VARCHAR(50), IsActive BOOL);PostgreSQL
CREATE DATABASE postgresql_db; CREATE TABLE tecmint_tbl ( UserID SERIAL PRIMARY KEY, UserName VARCHAR(50), IsActive BOOLEAN);
Installieren von automysqlbackup und autopgsqlbackup in CentOS 7 und Debian 8
3. In Debian 8 , beide Tools sind in den Repositories verfügbar, sodass die Installation so einfach ist wie das Ausführen von:
# aptitude install automysqlbackup autopostgresqlbackup
Während in CentOS 7 Sie müssen 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 seit für Debian 8 – wo sie fast sofort einsatzbereit sind, werden wir später in diesem Artikel die notwendigen Klarstellungen vornehmen.
Installation und Konfiguration von automysqlbackup in CentOS 7
4. Beginnen wir damit, ein Arbeitsverzeichnis in /opt
zu erstellen So laden Sie das Installationsskript herunter und führen es aus:
# 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:
myserver.conf – Konfigurieren Sie Automysqlbackup# 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 protected]) 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"
Nachdem Sie automysqlbackup konfiguriert haben Je nach Bedarf empfehlen wir Ihnen dringend, sich die README anzusehen Datei gefunden in /etc/automysqlbackup/README .
MySQL-Datenbanksicherung
6. Wenn Sie fertig sind, fahren Sie fort und führen Sie das Programm aus, wobei Sie die Konfigurationsdatei als Argument übergeben:
# automysqlbackup /etc/automysqlbackup/myserver.conf
Eine kurze Überprüfung des Tages Verzeichnis zeigt, dass automysqlbackup erfolgreich ausgeführt:
# pwd # ls -lR daily
Natürlich können Sie einen crontab-Eintrag hinzufügen, um automysqlbackup auszuführen zu einer Tageszeit, die Ihren Bedürfnissen am besten entspricht (1:30 bin jeden Tag im Beispiel unten):
30 01 * * * /usr/local/bin/automysqlbackup /etc/automysqlbackup/myserver.conf
Eine MySQL-Sicherung wiederherstellen
7. Lassen Sie uns nun die mariadb_db löschen Datenbank absichtlich:
Lassen Sie uns es erneut erstellen und die Sicherung wiederherstellen. Geben Sie in der MariaDB-Eingabeaufforderung Folgendes ein:
CREATE DATABASE mariadb_db; exit
Suchen Sie dann:
# cd /var/backup/db/automysqlbackup/daily/mariadb_db # ls
Und die Sicherung wiederherstellen:
# 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 einwandfrei in CentOS 7 zu arbeiten , 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 starten / aktivieren der Dienst:
# chmod 755 autopostgresqlbackup.sh # systemctl start postgresql # systemctl enable postgresql
Abschließend bearbeiten wir den Wert der Einstellung für das Sicherungsverzeichnis auf:
autopostgresqlbackup.sh – Konfigurieren Sie AutopostgresqlbackupBACKUPDIR="/var/backup/db/autopostgresqlbackup"
Nachdem Sie die Konfigurationsdatei von automysqlbackup durchlaufen haben , die Konfiguration dieses Tools ist sehr einfach (dieser Teil der Aufgabe bleibt Ihnen überlassen).
9. In CentOS 7 , im Gegensatz zu Debian 8 , autopostgresqlbackup wird am besten als postgres ausgeführt 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 der Gruppenbesitz müssen rekursiv auf 0770 gesetzt werden und postgres (Auch dies wird in Debian NICHT notwendig sein ):
# 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 zu Debian 8
Wie bereits erwähnt, nicht nur die Installation dieser Tools in Debian ist einfacher, aber auch ihre jeweiligen Konfigurationen. Sie finden die Konfigurationsdateien in:
- Automysql-Sicherung :/etc/default/automysqlbackup
- Autopostgresql-Sicherung :/etc/default/autopostgresqlbackup
Zusammenfassung
In diesem Artikel haben wir erklärt, wie man automysqlbackup installiert und verwendet und autopostgresqlbackup (Wenn Sie lernen, wie man das erste verwendet, können Sie auch das zweite meistern), zwei großartige Datenbank-Backup-Tools, die Ihre Aufgaben als DBA oder Systemadministrator / Ingenieur viel einfacher machen können.
Bitte beachten Sie, dass Sie dieses Thema erweitern können, indem Sie E-Mail-Benachrichtigungen einrichten oder das Versenden von Sicherungsdateien als Anhang per E-Mail – nicht unbedingt erforderlich, kann aber manchmal nützlich sein.
Denken Sie als letzte Anmerkung daran, dass die Berechtigungen von Konfigurationsdateien auf das Minimum gesetzt werden sollten (0600 in den meisten Fällen). Wir freuen uns darauf, Ihre Meinung zu diesem Artikel zu hören. Zögern Sie nicht, uns über das unten stehende Formular eine Nachricht zu hinterlassen.