MariaDB 10 - Keine Sicherung mehr mit HyperBackup

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

tomthe77st

Benutzer
Registriert
17. Mai 2015
Beiträge
5
Reaktionspunkte
0
Punkte
0
Hallo Community,

ich habe seit 2 Wochen das Problem, dass HyperBackup meine MariaDB 10 Datenbank nicht mehr sichert.
Das Backup endet vorzeitig mit der Meldung, dass einige Ordner/Anwendungen beim letzten Ausführen übersprungen wurden.

Ich benutze die MariaDB um meine Kodi-Datenbank zu speichern. Nachdem ich von einem Endgerät aus Versehen alle Einträge gelöscht hatte, habe ich eine Wiederherstellung mit HyperBackup gemacht.
Das hat super funktioniert, nur leider macht er seitdem kein Backup mehr.

Hat jemand eine Idee oder das Problem auch schon einmal gehabt?
Gibt es eine Alternative um ein regelmäßiges automatisches Backup der Datenbank zu machen?

Vielen Dank schon einmal für die Hilfe!
 
An "mysqldump" hatte ich nach einer Recherche auch schon gedacht und muss leider sagen, dass ich dabei an meine Grenzen gestoßen bin.

Mir ist nicht mehr klar wie ich das genau mache und vor allem wie ich den Befehl so ausführen lasse, dass ein tägliches Backup von der MariaDB 10 Datenbank gemacht wird.

Hat jemand dafür eine verständliche Anleitung?
 
Ich kann Dir ne Befehlszeile hier reinkopieren ...

/bin/mysqldump -hMEINEIP -PMEINPORT --user=USER --password='MEIN_PASSWORT' --all-databases > /MEIN/PFAD/ZUM/MYSQLBACKUP/${DUMPTIME}/MeinBackup.sql

Wobei die Variable für obige Zeile vorbelege mit ...
export DUMPTIME=$(date +%Y%m%d-%H%M%S)

Ansonsten gucke Dir die MySQL-Hilfe zu MYSQLDUMP an:
https://dev.mysql.com/doc/refman/5.7/en/mysqldump-sql-format.html

Speicher Dir das als Script ab und baue dies dann in den Scheduler im DSM ein.
 
Einfaches Backup der MariaDB10:
Rich (BBCode):
#!/bin/bash
#
# dieses Skript kann man beliebig oft ausfuehren
# !! Pfadangaben bitte den eigenen Gegebenheiten anspassen !!
# Anzahl der Sicherungen die aufgehoben werden sollen
KEEP=10
BACKUPS=`find /volume1/homes/xxx/dbbackup_ds -name "mysqldump-*.gz" | wc -l | sed 's/\ //g'`
while [ $BACKUPS -ge $KEEP ]
do
ls -tr1 /volume1/homes/xxx/dbbackup_ds/mysqldump-*.gz | head -n 1 | xargs rm -f 
BACKUPS=`expr $BACKUPS - 1` 
done
DATE=`date +%Y%m%d%H%M%S`
rm -f /volume1/homes/xxx/dbbackup_ds/.mysqldump-${DATE}.gz_INPROGRESS 
/volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/mysqldump --opt -uroot -ppassword --socket=/run/mysqld/mysqld10.sock --all-databases | gzip -c -9 > /volume1/homes/xxx/dbbackup_ds/.mysqldump-${DATE}.gz_INPROGRESS
mv -f /volume1/homes/xxx/dbbackup_ds/.mysqldump-${DATE}.gz_INPROGRESS /volume1/homes/xxx/dbbackup_ds/mysqldump-${DATE}.gz
exit 0
den Ausdruck -ppassword durch das eigene DB-Passwort ersetzten, -p und dann ohne Leerzeichen das Passwort dahinter[/QUOTE]
Diesen Code in eine leere Datei z.B. db_backup.sh reinkopieren und per Aufgabenplaner regelmäßig ausführen lassen. Schon ist ein Datenbankbackup immer zur Verfügung, läuft bei mir schon seid ewigen Zeiten.
 
Hi Ihrs,

bekomme kein Backup der MariaDB 10 zustande

mein sh Script:

Rich (BBCode):
#!/bin/bash
#
# dieses Skript kann man beliebig oft ausfuehren
# !! Pfadangaben bitte den eigenen Gegebenheiten anspassen !!
# Anzahl der Sicherungen die aufgehoben werden sollen
KEEP=10
BACKUPS=`find /volume1/docker/BackupArchiv/MySql -name "mysqldump-*.gz" | wc -l | sed 's/\ //g'`
while [ $BACKUPS -ge $KEEP ]
do
ls -tr1 /volume1/docker/BackupArchiv/MySql/mysqldump-*.gz | head -n 1 | xargs rm -f 
BACKUPS=`expr $BACKUPS - 1` 
done
DATE=`date +%Y%m%d%H%M%S`
rm -f /volume1/docker/BackupArchiv/MySql/.mysqldump-${DATE}.gz_INPROGRESS 
/volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/mysqldump --opt -uroot -p******** --socket=/run/mysqld/mysqld10.sock --all-databases | gzip -c -9 > /volume1/docker/BackupArchiv/MySql/.mysqldump-${DATE}.gz_INPROGRESS
mv -f /volume1/docker/BackupArchiv/MySql/.mysqldump-${DATE}.gz_INPROGRESS /volume1/docker/BackupArchiv/MySql/mysqldump-${DATE}.gz
exit 0

der Pfad zu DB müsste dieser sein:
iobroker2.PNG

iobroker3.jpg

im log steht dann immer:
Rich (BBCode):
sh: /volume1/docker/BackupArchiv/shell_scripte/mysql.sh: /bin/bash^M: bad interpreter: No such file or directory
 
Die erste Zeile mal mit
Code:
#!/bin/sh
ersetzen. Wenn das nicht geht könnte das "^M" auch auf einen fehlerhaften Zeilenumbruch (win/linux) hindeuten.
 
Meine Herangehensweise ist das ich die Maria Datenbank als eigenständige Backup Aufgabe hinterlegt habe. Hatte diesbezüglich auch schon mal ein Problem mit der automatischen Sicherung. habe dann die Maria Backup Aufgabe gelöscht und neu angelegt. Hatte geholfen und seitdem funktioniert es auch wieder.
 
Testet mal, ob es hier auch einen Online-Zugriff zu Synology braucht, um Hyperbackup erfolgreich durchführen zu können. Nur so eine Idee, weil es beim Mailserver+ auch so ist.
 
Die erste Zeile mal mit
Code:
#!/bin/sh
ersetzen. Wenn das nicht geht könnte das "^M" auch auf einen fehlerhaften Zeilenumbruch (win/linux) hindeuten.

kommt wieder die selbe Meldung im log :

sh: /volume1/docker/BackupArchiv/shell_scripte/mysql.sh: /bin/sh^M: bad interpreter: No such file or directory
 
Dann prüfe das genutzte Zeichen für den Zeilenumbruch. Ich vermute es wird ein Windows Zeilentrenner (CR/LF) anstatt einem Linux Zeilentrenner (LF) verwendet.

herausfinden kannst du das mit
Code:
file /volume1/docker/BackupArchiv/shell_scripte/mysql.sh
Ergebnis sollte "ASCII Test" haben für Linux-Zeilentrenner und "ASCII text, with CRLF line terminators" für Windows-Zeilentrenner

Falls es das auch nicht ist fallen mir nur noch Berechtigungen ein. Mit welchem Benutzer startest du das Script? Hat dieser Zugriff auf den gesamten Pfad? (Test mit ls -la /pfad) Ausreichend Rechte an der Datei selbst?
Wie und von wo rufst du das Script genau auf?
 
Und wenn Du Dich auf die Suche begibst, was die fünf letzten Worte vorschlagen?

Da dürfte ein DIR fehlen oder die Rechte dazu fehlen.
 
wenn ich "file /volume1/docker/BackupArchiv/shell_scripte/mysql.sh" eingebe kommt

file.PNG

Die Berechtigungen sollten passen! ich starte das Script über den Aufgaben Planer

rechte.PNG
 
Im Script werden Verzeichnisse/Dateien angesprochen. Richtig?
Nun gibt es aber die Fehlermeldung 'No such file or directory' die sehr eindeutig ist.
Hast Du schon geprüft, ob die im Script adressierten Verzeichnisse und/oder Files existieren?
 
Dann prüfe das genutzte Zeichen für den Zeilenumbruch. Ich vermute es wird ein Windows Zeilentrenner (CR/LF) anstatt einem Linux Zeilentrenner (LF) verwendet.

herausfinden kannst du das mit
Code:
file /volume1/docker/BackupArchiv/shell_scripte/mysql.sh
Ergebnis sollte "ASCII Test" haben für Linux-Zeilentrenner und "ASCII text, with CRLF line terminators" für Windows-Zeilentrenner

Falls es das auch nicht ist fallen mir nur noch Berechtigungen ein. Mit welchem Benutzer startest du das Script? Hat dieser Zugriff auf den gesamten Pfad? (Test mit ls -la /pfad) Ausreichend Rechte an der Datei selbst?
Wie und von wo rufst du das Script genau auf?

DANKE, das war der richtig Hinweis , habe die Ursache gefunden, musste im Notepad++ umstellen auf:
zeilenende.PNG
 
jetzt funkt es mit dem Backup --> danke euch allen für die schnelle Hilfe!
 
Ich seh schon, Linux ist da ned besser als WIN ... :o
Wegen eines 'Schmierzeichens' dann fehlendes Verzeichnis oder fehlende Datei anmeckern. :rolleyes:
Hätte gedacht, das wäre ein Vorrecht von WIN :cool:
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat