Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
public:technik:howto:sql-ssh-backup [2014/01/10 17:34] – Show view um Views zu sichern mape2k | public: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- | + | 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 |
===== 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 MySQL, PostgreSQL |
* benötigt kein MySQL/ | * benötigt kein MySQL/ | ||
* sichere Übertragung/ | * sichere Übertragung/ | ||
* 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:// | ||
+ | * Gentoo-FeM-Overlay (**// | ||
===== 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:// | ||
- | |||
Versionen: | Versionen: | ||
Zeile 32: | 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 |
===== Konfiguration ===== | ===== Konfiguration ===== | ||
Zeile 76: | 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 | ||
< | < | ||
Zeile 88: | Zeile 94: | ||
REVOKE GRANT OPTION ON * . * FROM ' | REVOKE GRANT OPTION ON * . * FROM ' | ||
- | GRANT SELECT, SHOW DATABASES, LOCK TABLES, SHOW VIEW ON * . * TO ' | + | GRANT SELECT, SHOW DATABASES, LOCK TABLES, SHOW VIEW, PROCESS |
</ | </ | ||
+ | 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: | ||
+ | |||
+ | < | ||
+ | GRANT EXECUTE ON FUNCTION `sys`.`extract_table_from_file_name` TO ' | ||
+ | GRANT EXECUTE ON FUNCTION `sys`.`format_path` TO ' | ||
+ | GRANT EXECUTE ON FUNCTION `sys`.`format_statement` TO ' | ||
+ | GRANT EXECUTE ON FUNCTION `sys`.`extract_schema_from_file_name` TO ' | ||
+ | GRANT EXECUTE ON FUNCTION `sys`.`ps_thread_account` TO ' | ||
+ | GRANT EXECUTE ON FUNCTION `sys`.`format_time` TO ' | ||
+ | GRANT EXECUTE ON FUNCTION `sys`.`format_bytes` TO ' | ||
+ | </ | ||
== PostgreSQL == | == PostgreSQL == | ||
Der Backup-Benutzer benötigt folgende Rechte __nicht__: | Der Backup-Benutzer benötigt folgende Rechte __nicht__: | ||
Zeile 135: | Zeile 152: | ||
* // | * // | ||
+ | |||
+ | == MongoDB == | ||
+ | |||
+ | * // |