public:technik:howto:sql-ssh-backup

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
public:technik:howto:sql-ssh-backup [2017/02/18 02:23] – Sourcen nach Github migriert mape2kpublic:technik:howto:sql-ssh-backup [2023/06/29 13:56] mape2k
Zeile 1: Zeile 1:
 ====== SQL-SSH-Backup ====== ====== SQL-SSH-Backup ======
-Mit SQL-SSH-Backup lassen sich MySQL- und PostgreSQL-Pull-Sicherungen erstellen. Der Backupserver loggt sich dazu per SSH ein und führt die Befehle zur Sicherung auf dem zu sichernden Server aus. Der Backupserver benötigt dabei keinerlei MySQL- oder PostgreSQL-Module oder -Programme. Jede Datenbank kann einzeln gesichert, was eine Rücksicherung erleichtert.+Mit SQL-SSH-Backup lassen sich MySQL-PostgreSQL- oder MongoDB-Pull-Sicherungen erstellen. Der Backupserver loggt sich dazu per SSH ein und führt die Befehle zur Sicherung auf dem zu sichernden Server aus. Der Backupserver benötigt dabei keinerlei Datenbank-Module oder -Programme. Jede Datenbank kann einzeln gesichert, was eine Rücksicherung erleichtert.
  
 ===== Copyright / Lizenz ===== ===== Copyright / Lizenz =====
Zeile 7: Zeile 7:
 ===== Features (der aktuellen Version) ===== ===== Features (der aktuellen Version) =====
  
-  * Dump für MySQL und PostgreSQL via SSH+  * Dump für MySQLPostgreSQL oder MongoDB via SSH
     * benötigt kein MySQL/PostgreSQL auf dem Backup-Server     * benötigt kein MySQL/PostgreSQL auf dem Backup-Server
     * sichere Übertragung/Nutzung der Datenbank-Zugangsdaten möglich     * sichere Übertragung/Nutzung der Datenbank-Zugangsdaten möglich
     * Einzel- oder Gesamtsicherung aller Datenbanken     * Einzel- oder Gesamtsicherung aller Datenbanken
     * Sicherung einzelner Datenbanken     * Sicherung einzelner Datenbanken
-  * Kompression der Dumps mit bzip2/xz (MySQL) oder PosgreSQL-Dump-Format möglich+  * Kompression der Dumps mit bzip2/xz (alle DBs) oder PosgreSQL-Dump-Format möglich
   * mehrere Backups täglich möglich (Verzeichnisstruktur enthält dann Uhrzeit)   * mehrere Backups täglich möglich (Verzeichnisstruktur enthält dann Uhrzeit)
   * automatische Bereinigung von alten Backups   * automatische Bereinigung von alten Backups
Zeile 34: Zeile 34:
   * 1.8 - Sicherung einer einzelnen Datenbank möglich   * 1.8 - Sicherung einer einzelnen Datenbank möglich
   * 1.9 - Wiederholung von Dumps bei Fehlern ermöglichen (Retry), bereinigte Exit-Codes, kleinere Fehlerkorrekturen   * 1.9 - Wiederholung von Dumps bei Fehlern ermöglichen (Retry), bereinigte Exit-Codes, kleinere Fehlerkorrekturen
 +  * 2.0 - Backup von MongoDB (ohne Datenbankauthentifizierung)
 +  * 2.1 - Max-allowed-packet für MySQL
  
 ==== zu sichernder Server ==== ==== zu sichernder Server ====
  
-Auf dem zu sichernden Server müssen nur SSH (meist vorhanden) und MySQL oder PostgreSQL (sowieso vorhanden) zur Verfügung stehen.+Auf dem zu sichernden Server müssen nur SSH (meist vorhanden) und MySQL PostgreSQL / MongoDB (sowieso vorhanden) zur Verfügung stehen.
  
 ===== Konfiguration ===== ===== Konfiguration =====
Zeile 78: Zeile 80:
 === Datenbank-Benutzer anlegen === === Datenbank-Benutzer anlegen ===
 == MySQL == == MySQL ==
-Der Backup-Benutzer benötigt lediglich folgende Rechte+Der Backup-Benutzer benötigt lediglich folgende Rechte
   * SELECT   * SELECT
   * SHOW DATABASES   * SHOW DATABASES
Zeile 94: Zeile 97:
 </code> </code>
  
 +Beim Einsatz von MySQL ab Version 5.7 und der Sicherung aller Datenbanken inkl. Sys-Schema werden folgende Rechte zusätzlich benötigt:
 +
 +<code|Zugriff auf das Sys-Schema>
 +GRANT EXECUTE ON FUNCTION `sys`.`extract_table_from_file_name` TO 'backup'@'localhost';
 +GRANT EXECUTE ON FUNCTION `sys`.`format_path` TO 'backup'@'localhost';
 +GRANT EXECUTE ON FUNCTION `sys`.`format_statement` TO 'backup'@'localhost';
 +GRANT EXECUTE ON FUNCTION `sys`.`extract_schema_from_file_name` TO 'backup'@'localhost';
 +GRANT EXECUTE ON FUNCTION `sys`.`ps_thread_account` TO 'backup'@'localhost';
 +GRANT EXECUTE ON FUNCTION `sys`.`format_time` TO 'backup'@'localhost';
 +GRANT EXECUTE ON FUNCTION `sys`.`format_bytes` TO 'backup'@'localhost';
 +</code>
 == PostgreSQL == == PostgreSQL ==
 Der Backup-Benutzer benötigt folgende Rechte __nicht__: Der Backup-Benutzer benötigt folgende Rechte __nicht__:
Zeile 138: Zeile 152:
  
   * //**<nowiki>sql-ssh-backup -T pgsql -l backup -s server1.example.org -P 1022 -d /mnt/backup/server1.example.org/backupsql -i /mnt/backup/server1.example.org/identity -e 120 -u backup -p PASSWORT</nowiki>**//   * //**<nowiki>sql-ssh-backup -T pgsql -l backup -s server1.example.org -P 1022 -d /mnt/backup/server1.example.org/backupsql -i /mnt/backup/server1.example.org/identity -e 120 -u backup -p PASSWORT</nowiki>**//
 +
 +== MongoDB ==
 +
 +  * //**<nowiki>sql-ssh-backup -T mongodb -l backup -s server1.example.org -P 1022 -d /mnt/backup/server1.example.org/backupsql -i /mnt/backup/server1.example.org/identity -e 120 </nowiki>**//
  • public/technik/howto/sql-ssh-backup.txt
  • Zuletzt geändert: 2023/09/01 17:09
  • von mape2k