MariaDB 10 - Keine Sicherung mehr mit HyperBackup

Status
Für weitere Antworten geschlossen.

tomthe77st

Benutzer
Mitglied seit
17. Mai 2015
Beiträge
5
Punkte für Reaktionen
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!
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.341
Punkte für Reaktionen
633
Punkte
174

tomthe77st

Benutzer
Mitglied seit
17. Mai 2015
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
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?
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.341
Punkte für Reaktionen
633
Punkte
174
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.
 

Arni

Benutzer
Mitglied seit
05. Okt 2012
Beiträge
405
Punkte für Reaktionen
4
Punkte
24
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.
 

Mexx

Benutzer
Mitglied seit
27. Aug 2007
Beiträge
553
Punkte für Reaktionen
0
Punkte
42
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
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.164
Punkte für Reaktionen
915
Punkte
424
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.
 

frogtwist

Benutzer
Mitglied seit
08. Nov 2014
Beiträge
395
Punkte für Reaktionen
3
Punkte
18
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.
 

whitbread

Benutzer
Mitglied seit
24. Jan 2012
Beiträge
1.294
Punkte für Reaktionen
54
Punkte
68
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.
 

Mexx

Benutzer
Mitglied seit
27. Aug 2007
Beiträge
553
Punkte für Reaktionen
0
Punkte
42
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
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.164
Punkte für Reaktionen
915
Punkte
424
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?
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.341
Punkte für Reaktionen
633
Punkte
174
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.
 

Mexx

Benutzer
Mitglied seit
27. Aug 2007
Beiträge
553
Punkte für Reaktionen
0
Punkte
42
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
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.341
Punkte für Reaktionen
633
Punkte
174
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?
 

Mexx

Benutzer
Mitglied seit
27. Aug 2007
Beiträge
553
Punkte für Reaktionen
0
Punkte
42
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
 

Mexx

Benutzer
Mitglied seit
27. Aug 2007
Beiträge
553
Punkte für Reaktionen
0
Punkte
42
jetzt funkt es mit dem Backup --> danke euch allen für die schnelle Hilfe!
 

AndiHeitzer

Benutzer
Sehr erfahren
Mitglied seit
30. Jun 2015
Beiträge
3.341
Punkte für Reaktionen
633
Punkte
174
Ich seh schon, Linux ist da ned besser als WIN ... :eek:
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