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
public:technik:howto:sql-ssh-backup [2012/10/24 16:46] mape2kpublic:technik:howto:sql-ssh-backup [2023/09/01 17:09] (aktuell) 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
 +
 +===== Sourcecode / Tarballs =====
 +
 +  * [[https://github.com/fem/sql-ssh-backup]]
 +  * Gentoo-FeM-Overlay (**//app-backup/sql-ssh-backup//**)
  
 ===== Installation ===== ===== Installation =====
Zeile 20: Zeile 25:
 ==== Backupserver ==== ==== Backupserver ====
 Auf dem Backupserver wird neben SQL-SSH-Backup nur SSH (meist vorhanden) und ggf. bzip2/xz (für komprimierte MySQL-Backups) benötigt. Auf dem Backupserver wird neben SQL-SSH-Backup nur SSH (meist vorhanden) und ggf. bzip2/xz (für komprimierte MySQL-Backups) benötigt.
- 
-Das Skript steht unter [[http://subversion.fem.tu-ilmenau.de/repository/fem-overlay/trunk/app-backup/sql-ssh-backup/files/]] oder im Gentoo-FeM-Overlay (**//app-backup/sql-ssh-backup//**) zur Verfügung. 
- 
  
 Versionen: Versionen:
Zeile 31: Zeile 33:
   * 1.7 - Gesamtdump aller Datenbanken statt Einzeldump ermöglichen   * 1.7 - Gesamtdump aller Datenbanken statt Einzeldump ermöglichen
   * 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 
 +  * 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 77: 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
   * LOCK TABLES   * LOCK TABLES
 +  * SHOW VIEW
  
 <code|Benutzer anlegen - passendes PASSWORT wählen> <code|Benutzer anlegen - passendes PASSWORT wählen>
Zeile 89: Zeile 94:
 REVOKE GRANT OPTION ON * . * FROM 'backup'@'localhost'; REVOKE GRANT OPTION ON * . * FROM 'backup'@'localhost';
  
-GRANT SELECT, SHOW DATABASES, LOCK TABLES ON * . * TO 'backup'@'localhost' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;+GRANT SELECT, SHOW DATABASES, LOCK TABLES, SHOW VIEW, PROCESS ON * . * TO 'backup'@'localhost' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
 </code> </code>
  
 +Beim Einsatz von MySQL 5.7 / MariaDB 10.6 (oder neuer) 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 136: 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.1351089983.txt.gz
  • Zuletzt geändert: 2012/10/24 16:46
  • von mape2k