93_DbRep Fehler dumpSQLite in gemounteten Ordner

Begonnen von ASwizz, 09 Januar 2019, 14:13:21

Vorheriges Thema - Nächstes Thema

ASwizz

Hallo Zusammen,
ich habe gestern auf DbLog umgestellt, heute noch DbRep für Backups von der Db.
Ich möchte diese auf dem Pfad /mount/backup speichern, wo das NAS gemountet ist und auch schon die normalen FHEM Backups gespeichtert werden.
Doch es wird nur eine Datei mit 0kb abgelegt und es kommt diese Fehlermeldung:

2019.01.09 13:49:42 3: DbRep DbRep.backup - ################################################################
2019.01.09 13:49:42 3: DbRep DbRep.backup - ###                    New SQLite dump                       ###
2019.01.09 13:49:42 3: DbRep DbRep.backup - ################################################################
2019.01.09 13:49:42 3: DbRep DbRep.backup - execute command before dump: 'set DbLog reopen 3600'
2019.01.09 13:49:42 2: DbLog DbLog: Connection closed until 14:49:42 (3600 seconds).
2019.01.09 13:49:42 3: DbRep DbRep.backup - Starting dump of database 'fhem.db'
2019.01.09 13:49:42 2: DbRep DbRep.backup - DBD::SQLite::db sqlite_backup_to_file failed: sqlite_backup_to_file failed with error not an error at ./FHEM/93_DbRep.pm line 6957.


Wenn ich den Pfad auf zb. /opt/fhem/www/images/ ändere, funktioniert es.
FEHM müsste ja genug Rechte für den Ordner haben, da das andere Backup dorthin gespeichert wird.

mfg ASwizz

DS_Starter

Hallo ASwizz,

auch wenn es momentan nicht so aussieht, würde ich ein Rechteproblem dafür verantwortlich machen.

Das Backupziel kann durchaus ein Mountpoint sein.
Ich selbst habe von meinem Synology-NAS ein Verzeichnis gemountet und sichere meine Test-SQLite auf diesen Mount.

Gebe dir mal meine DbRep-Definition als Beispiel. Die Readings habe ich mit drin gelassen damit du siehst wie es am Ende erscheinen müste.


defmod Rep.SQLite.Backup DbRep LogSQLITE
attr Rep.SQLite.Backup allowDeletion 1
attr Rep.SQLite.Backup devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Rep.SQLite.Backup disable 0
attr Rep.SQLite.Backup dumpCompress 1
attr Rep.SQLite.Backup dumpDirLocal /sds1/backup/dumps_FHEM
attr Rep.SQLite.Backup dumpFilesKeep 1
attr Rep.SQLite.Backup event-on-update-reading state
attr Rep.SQLite.Backup fastStart 1
attr Rep.SQLite.Backup ftpDir /ftp
attr Rep.SQLite.Backup ftpDumpFilesKeep 1
attr Rep.SQLite.Backup ftpPwd <FTP-Password>
attr Rep.SQLite.Backup ftpServer sds1.myds.me
attr Rep.SQLite.Backup ftpUse 0
attr Rep.SQLite.Backup ftpUser<FTP-User>
attr Rep.SQLite.Backup optimizeTablesBeforeDump 0
attr Rep.SQLite.Backup room DbLog
attr Rep.SQLite.Backup showproctime 1
attr Rep.SQLite.Backup verbose 3

setstate Rep.SQLite.Backup Database backup finished
setstate Rep.SQLite.Backup 2019-01-09 17:29:26 DumpFileCreated /sds1/backup/dumps_FHEM/fhem_2019_01_09_17_25.sqlitebkp.gzip
setstate Rep.SQLite.Backup 2019-01-09 17:29:26 DumpFileCreatedSize 873.00 MB
setstate Rep.SQLite.Backup 2019-01-09 17:29:26 DumpFilesDeleted fhem_2019_01_08_17_25.sqlitebkp.gzip
setstate Rep.SQLite.Backup 2019-01-09 17:29:26 DumpRowsCurrent n.a.
setstate Rep.SQLite.Backup 2019-01-09 17:29:26 DumpRowsHistory n.a.
setstate Rep.SQLite.Backup 2019-01-09 17:29:26 background_processing_time 266.6932
setstate Rep.SQLite.Backup 2019-01-09 17:29:26 state Database backup finished


Das Verzeichnis "/sds1/backup/dumps_FHEM" ist der Mount und in /etc/fstab so definiert:


sds1.myds.me:/volume1/ApplicationBackup /sds1/backup nfs auto,defaults,tcp,intr 0 0


Grüße,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ASwizz

Danke für deine Antwort

klar das funktioniert, für mein Backup von global nutze ich bereits diesen Mount und dieser funktioniert auch ohne Probleme.
nur sobald ich von DbRep aus darauf schreiben will funktioniert es nicht.

bzw. wenn ich keine Rechte hätte, dürfte es ja eigentlich überhaut keine Daten dort schreiben, aber es werden ja leere Dateien mit 0kb geschrieben.

mfg ASwizz

DS_Starter

Nun ja, DbRep verwendet die Backup-API von SQLite. Der Fehler wird vom Datenbank-Treiber gemeldet: "DBD::SQLite::db ..."
Wie hast du denn auf der NAS (Syno?) die NFS-Berechtigung des freigebenen Ordners definiert ?
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ASwizz

hab momentan noch eine WB MyCloud und einen eigenen Nutzer angelegt mit Schreib-Rechte für den Backupordner, mehr kann man da nicht einstellen.

in der /etc/fstab dann bereits Benutzername und Passwort mit eingetragen.

DS_Starter

Wie sehen denn die Rechte des gemounteten Ordners aus, also von /mount/backup ?
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ASwizz

anbei ein Screenshot.

Hier noch meine Definition, falls es hilft. Habe es nach der Anleitung aus dem Wiki gemacht.
https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Backup.2FRestore_einer_SQLite_Datenbank_im_laufenden_Betrieb
defmod DbRep.backup DbRep DbLog
attr DbRep.backup dumpDirLocal /mount/backup
attr DbRep.backup dumpFilesKeep 3
attr DbRep.backup executeAfterProc set DbLog reopen
attr DbRep.backup executeBeforeProc set DbLog reopen 3600
attr DbRep.backup group DB
attr DbRep.backup room System
attr DbRep.backup showproctime 1
attr DbRep.backup verbose 3

setstate DbRep.backup error
setstate DbRep.backup 2019-01-09 22:24:37 errortext DBD::SQLite::db sqlite_backup_to_file failed: sqlite_backup_to_file failed with error not an error at ./FHEM/93_DbRep.pm line 6957.\

DS_Starter

#7
Danke. Die Definition ist absolut richtig und das Problem auch nicht beim DbRep Device zu suchen.
Auf dem Screenshot ist auch ein sqlitebkp zu sehen was Daten enthält (13:52). Wie wurde das erstellt ?
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ASwizz

Hmm..
Das ist die, die ich unter dem Pfad /opt/fhem/www/images/ laufen ließ und habe diese dann verschoben.

würde es vllt was bringen wenn ich nochmal den selben Ordner unter /opt/fhem mounte, um evtl das Problem umgehen?

DS_Starter

Klar, kannst du gerne probieren. Du siehst ja, mein Backup Ordner liegt auch außerhalb des FHEM Zweiges ohne Probs. Aber Versuch macht klug in dem Fall  :)
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ASwizz

hat leider nicht geklappt.

habe auf /opt/fhem/backup gemountet und es kommt der Fehler.
danach noch einmal den Pfad nur auf /opt/fhem und das backup wird geschrieben.


DS_Starter

War zu erwarten. Liegt irgendwie an dem Mount, aber ich habe keine konkrete Lösungsidee.Vllt. mit einem Workaround arbeiten. Lokales Backup mit Versionierung innerhalb des DbRep und danach kopieren auf den Mount. Evtl. kannst du auch mit FTP arbeiten wenn dein NAS sowas kann. Dann gibt DbRep ebenfalls eine interne Versionierung her.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ASwizz

werde ich mir mal anschauen und ausprobieren.

danke dir schonmal ;)

Wernieman

Es könnte ein andere Rechte-Fehler" sein ... hast Du beim NFS ajuf Serverseite etwas bezüglich locking eingestellt? Kann sein, das SQLight die Datei exclusiv öffnen will, was er nicht kann ....

Das Backup selber braucht dieses nicht.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

ASwizz

über FTP hats jetzt funktioniert :D
Danke!!

@Wernieman
ich wüsste nicht, dass ich so etwas eingestellt habe oder überhaupt einstellen kann.
Habe FHEM erst im Dezember platt gemacht und neu aufgesetzt, also auch keine Altlasten oder so.