Problem mit Datensicherung


Startseite Foren Installation Problem mit Datensicherung

Verschlagwortet: , , , ,

8 Beiträge anzeigen - 1 bis 8 (von insgesamt 8)
  • Autor
    Beiträge
  • #862
    kkiryakov
    Teilnehmer

    Hallo,

    mir ist soeben aufgefallen, dass die automatische Datensicherung bei der Speicherung des MySQL-Dumps nicht funktioniert. Im Archiv ist die Datei jlawyerdb-dump.sql insgesamt 0kb groß und enthält keine Daten. Voran könne es liegen?

    • Dieses Thema wurde vor vor 9 Jahren, 7 Monaten von kkiryakov bearbeitet.
    #865
    j-lawyer.org
    Administrator

    Hallo,

    läuft der Server unter Linux oder Windows?

    Was mir spontan einfällt:

    – Datenbanknutzer und – passwort in den Einstellungen korrekt?
    – Gibt es für den Nutzer, unter dem der j-lawyer Server läuft, Schreibrechte für das Backupverzeichnis?
    – Gibt es Fehlerausgaben im server.log des Servers oder in der Konsole/Eingabeaufforderung?

    Man könnte in einem ersten Schritt mal nur einen Datenbank-Dump erstellen lassen:

    mysqldump -u$MYSQLUSER -p$MYSQLPWD jlawyerdb

    Die beiden Platzhalter entsprechend ersetzen. Es kommen keine Leerzeichen dazwischen, bspw. also

    mysqldump -uroot -pStRengGeh31M jlawyerdb

    Ansonsten hätte ich für Linux noch ein Bash-Skript, das ein Backup ad-hoch erstellt:

    #!/bin/bash 
    
    JLAWYERDIR="${HOME}/j-lawyer-server";
    DATADIR=$JLAWYERDIR"/j-lawyer-data";
    CURRENTDATE=$(date -d "today" +"%Y%m%d%H%M")
    BACKUPDIR=$JLAWYERDIR"/manualbackups/"$CURRENTDATE
    ARCHIVE="j-lawyer-backup-"$CURRENTDATE".tar.gz"
    
    MYSQLUSER="root";
    MYSQLPWD=""
    
    echo '********************************************';
    echo 'j-lawyer.org Manual Backup Script 2014-07-10';
    echo '********************************************';
    echo ' ';
    echo 'Creating backup directory '$BACKUPDIR
    mkdir -p $BACKUPDIR
    
    echo 'Dumping database jlawyerdb...'
    mysqldump -u$MYSQLUSER -p$MYSQLPWD jlawyerdb > $BACKUPDIR/jlawyerdb-dump.sql
    
    echo 'Copying files to temporary directory...'
    mkdir $BACKUPDIR/j-lawyer-data
    cp -R $DATADIR $BACKUPDIR
    
    echo 'Creating archive...'
    cd $BACKUPDIR
    tar -czf ../$ARCHIVE .
    
    echo 'Removing temporary files...'
    rm -Rf $BACKUPDIR
    
    echo 'done... backup available as '$ARCHIVE
    

    Das Bash-Script sehe ich als Notlösung, ich würde das Problem (auch zum Nutzen anderer Anwender) natürlich gern verstehen und beseitigen, sofern es am j-lawyer.org-Code liegt.

    Viele Grüße,
    Jens
    (j-lawyer.org)

    #866
    j-lawyer.org
    Administrator

    Kann ich hier noch irgendwie helfen bzw. ist das Problem beseitigt?

    Grüße,
    Jens
    (j-lawyer.org)

    #868
    kkiryakov
    Teilnehmer

    Hallo,

    das Problem konnte ich trotz der ausführlichen Information leider nicht beheben. Vorab – Datensicherung führe ich notweise selber mit dem MySQL Workbench, ist aber zu umständig (außerdem – ich vergesse es ständig, müssen die Mandanten nicht wissen :). Sonst:

    – habe ich die Zugangsdaten überprüft, diese stimmen mit den in jlawyerdb-ds hinterlegten Daten überein, d.h. sonst hätte das Ganze nicht funktioniert, oder?

    – Permissions für den backup-Ordner habe ich zum Testzwecken voll freigegeben und das für alle Nutzer – ohne Erfolg.

    Server-logs habe ich gesehen, leider kann ich (als recht unerfahrener) nichts in Verbindung mit einer Datenbankfehler finden. Auf was soll ich genau suchen?

    Schöne Grüße

    Kiril

    #870
    j-lawyer.org
    Administrator

    Hat denn der Dump per Befehlszeile oben funktioniert?

    Hilft das Bashscript erstmal weiter?

    Das server.log würde ich mir gern mal anschauen. Bitte mal an info – at – j-lawyer.org schicken (gezippt) – danke!

    Grüße,
    Jens
    (j-lawyer.org)

    #872
    j-lawyer.org
    Administrator

    Hier ein Äquivalent das Bash-Scripts für Windowsnutzer als .bat:

    echo off
    
    set JLAWYERDIR=C:\j-lawyer-server
    set DATADIR=%JLAWYERDIR%\j-lawyer-data
    set CURRENTDATE=%date:~-4%%date:~3,2%%date:~0,2%
    set BACKUPDIR=%JLAWYERDIR%\manualbackups\%CURRENTDATE%
    set ARCHIVE=j-lawyer-backup-%CURRENTDATE%.zip
    
    set MYSQLUSER=root
    set MYSQLPWD=root
    
    echo Erstelle Verzeichnis %BACKUPDIR%...
    mkdir %BACKUPDIR%
    
    echo Sichere MySQL-Datenbank...
    mysqldump -u%MYSQLUSER% -p%MYSQLPWD% jlawyerdb > %BACKUPDIR%/jlawyerdb-dump.sql
    
    echo Sichere Datenverzeichnis...
    mkdir %BACKUPDIR%\j-lawyer-data
    xcopy %DATADIR% %BACKUPDIR%\j-lawyer-data /E /H /Y /I /Q
    
    echo Datensicherung fertiggestellt in %BACKUPDIR%.

    Hinweise:
    – es wird in ein nach dem aktuellen Datum benanntes Verzeichnis unterhalb von C:\j-lawyer-server\manualbackups gesichert
    – bitte daran denken die Backups regelmässig auf ein Medium ausserhalb des Gerätes zu kopieren, auf welchem der j-lawyer Server läuft
    – ein Zippen ist unter Windows nicht mit Bordmitteln machbar, daher fehlt dieser Schritt. Wer 7-Zip oder Winzip installiert hat kann das .bat aber leicht erweitern. Alternativ kann man darauf auch verzichten.
    – es wird immer ein Vollbackup durchgeführt
    – das Datenbankpasswort ist entsprechend anzupassen in der Zeile set MYSQLPWD=root

    Es empfiehlt sich, das Skript automatisch ausführen zu lassen, bspw. täglich. Dazu kann unter Windows 7 das Feature „Aufgabenplanung“ verwendet werden.

    Viele Grüße,
    Jens
    (j-lawyer.org)

    • Diese Antwort wurde vor vor 9 Jahren, 6 Monaten von j-lawyer.org bearbeitet.
    #888
    krueschi
    Teilnehmer

    Hallo,

    habe das selbe Problem gehabt (0 kB .sql file) und dadurch gelöst, dass für den mysqldump explizit der Port für die DB Verbindung ergänzt wird. Standardmäßig wird MySQL mit dem Port 3306 installiert, so dass diese dann lauten sollte

    a) für Windows
    mysqldump --port=3306 -u%MYSQLUSER% -p%MYSQLPWD% jlawyerdb > %BACKUPDIR%/jlawyerdb-dump.sql

    b) für Linux
    Linux
    mysqldump --port=3306 -u$MYSQLUSER -p$MYSQLPWD jlawyerdb > $BACKUPDIR/jlawyerdb-dump.sql

    (Wer will, kann natürlich auch am Beginn des Skripts eine Variable setzen. Bei Installation des MySQL Servers unter einer anderen Port-Nummer muss dann diese statt 3306 eintragen.)
    Da ich nicht den Standard-Port für den MySQL Server verwende, war das explizite Setzen des Ports naheliegend.

    Gruß
    Christian

    • Diese Antwort wurde vor vor 9 Jahren, 4 Monaten von krueschi bearbeitet. Grund: Ergänzung und Klarstellung, Reihenfolge Windows vor Linux geändert
    #891
    j-lawyer.org
    Administrator

    Hallo Christian,

    vielen Dank dafür!

    Ich nehme für Version 1.7 einen Parameter für den DB-Port mit in den Einstellungsdialog für die automatische Datensicherung auf.

    Beste Grüße,
    Jens
    (j-lawyer.org)

8 Beiträge anzeigen - 1 bis 8 (von insgesamt 8)
  • Du musst angemeldet sein, um zu diesem Thema eine Antwort verfassen zu können.