Anleitung Backup/Restore Paperless ngx?

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154
Wenn du keinen Dump hast, dann könnte es bei sowas böse enden. Aber guck mal hier, ob dir das hier (https://stackoverflow.com/a/73339220) hilft. Kannst natürlich nicht einfach nur Copy&Paste machen, sondern für deinen Fall anpassen. Ohne CLI/Terminal wirst du aber glaube ich nicht weit kommen, außer du kannst nochmal alles wiederherstellen.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Da müsste jemand anderes einspringen. Ich kenne mich mit postgres nicht wirklich aus, da ich die MariaDB nutze. Ich sehe da erstmal keinen Fehler.
Hast du pgadmin oder irgendwas dergleichen installiert, um auf die DB zugreifen zu können?

EDIT: Ups. Die Antwort ist ja schon älter und in der Zwischenzeit hatte @alexhell schon geschrieben. Ich hatte den Thread offen und nicht aktualisiert.
 

fronki

Benutzer
Mitglied seit
16. Dez 2023
Beiträge
13
Punkte für Reaktionen
0
Punkte
1
@alexhell und @ plang.pl vielen Dank für Eure Hinweise. Den pgAdmin habe ich nicht installiert. Mit den zitierten Beiträgen in stackoverflow komm ich noch nicht klar, dazu bin ich nicht tief genug drin in der Marterie.

Ich befinde mich noch in der Testphase, es sind nicht allzu viele Dokumente in paperless drin. Deswegen werde ich das nochmal komplett neu aufsetzen, einen Dump machen, wie es hier im Forum beschrieben ist. Das sollte ich hinkriegen. Dann kann ich nochmal Backup und Restore testen.

Ich frage mich nur, irgendwann könnte ich wieder vor gleichen Problemen mit Postgres stehen. Ich so zwischen den Zeilen heraus gelesen, dass MariaDB etwas "pflegeleichter" ist. Oder habe ich das fehl interpretiert?
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.049
Punkte für Reaktionen
900
Punkte
204
Nein, bei PostgreSQL-Updates kann es immer wieder notwendig sein, einen Dump zu sichern und nach dem Update wieder einzuspielen, zumindest bei Major Updates (14 → 15). Das entfällt bei MariaDB.

Die oben angegebene Fehlermeldung deutet darauf hin, dass die DB nicht startet, weil sie Daten enthält, die nicht kompatibel mit der aktuellen Version sind. War die Version von PostgreSQL vor dem Update auch 15.x?
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154
Die Meldung für inkompatible Daten ist eigentlich eine andere. Da steht dann ja eigentlich sowas hier:
  • database files are incompatible with server
  • The data directory was initialized by PostgreSQL version 15, which is not compatible with this
Da ist eher was beim Schreivorgang oder ähnliches gecrashed bzw. wurde die DB unsanft beendet während noch was lief
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519

fronki

Benutzer
Mitglied seit
16. Dez 2023
Beiträge
13
Punkte für Reaktionen
0
Punkte
1
@Monacum: Du meintest wahrscheinlich, ob die Postgres-Version auch vor dem Backup 15.x war. -> Ja.

Die Meldung für inkompatible Daten ist eigentlich eine andere. Da steht dann ja eigentlich sowas hier:

Da ist eher was beim Schreivorgang oder ähnliches gecrashed bzw. wurde die DB unsanft beendet während noch was lief

Das bedeutet aber nicht, dass ich für jedes Backup den DB-Container stoppen muss, oder? Ich meine, das wäre hier schon mal geschrieben worden, dass man das eigentlich nicht machen müsste.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Bei einem Dump muss man das nicht. Beim Sichern der Verzeichnisse aber schon.
 

fronki

Benutzer
Mitglied seit
16. Dez 2023
Beiträge
13
Punkte für Reaktionen
0
Punkte
1
Ok, dann kann das natürlich die Ursache sein, dass ich vor dem Backup der Verzeichnisse die Container nicht gestoppt habe.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Ein Dump ist aber dennoch die bessere Lösung
 

fronki

Benutzer
Mitglied seit
16. Dez 2023
Beiträge
13
Punkte für Reaktionen
0
Punkte
1
Ok. Ich werde das bei meinen nächsten Test beherzigen. Ich berichte.
 

janwidmer

Benutzer
Mitglied seit
31. Dez 2023
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo @ArcusX,
Konntest du den DB Befehl zum laufen bringen? Ich kriege ebenfalls den Fehler
Code:
/volume1/docker/paperless-ngx/export/db/backup_2023-12-31_Sun_16:41:33_CET.gz: No such file or directory
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Das heißt ja nur, dass die Datei nicht existiert. Da bräuchte man schon ein wenig mehr Hintergrundinfos, wie genau du den Dump erzeugst.
P.S. Willkommen hier im Forum!
 

janwidmer

Benutzer
Mitglied seit
31. Dez 2023
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Danke für das Willkommen.

Mein Stack:
  • Synology mit Container Manager
  • Paperless-ngx mit docker-compose:
    Code:
    version: "3.4"
    services:
      broker:
        image: docker.io/library/redis:7.0
        restart: unless-stopped
        volumes:
          - redisdata:/data
    
      db:
        image: docker.io/library/postgres:15
        restart: unless-stopped
        volumes:
          - pgdata:/var/lib/postgresql/data
        environment:
          POSTGRES_DB: paperless
          POSTGRES_USER: xxx
          POSTGRES_PASSWORD: xxx
    
      webserver:
        image: ghcr.io/paperless-ngx/paperless-ngx:latest
        restart: unless-stopped
        depends_on:
          - db
          - broker
        ports:
          - 8000:8000
        healthcheck:
          test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
          interval: 30s
          timeout: 10s
          retries: 5
        volumes:
          - ../data:/usr/src/paperless/data
          - ../media:/usr/src/paperless/media
          - ../export:/usr/src/paperless/export
          - /volume1/scaninput:/usr/src/paperless/consume
        env_file: docker-compose.env
        environment:
          PAPERLESS_REDIS: redis://broker:6379
          PAPERLESS_DBHOST: db
    
    
    volumes:
      data:
      media:
      pgdata:
      redisdata:
Backup lasse ich dann via Aufgabenplaner laufen, welcher das folgende shell script laufen lässt:
Code:
cd /volume1/docker/paperless-ngx/config/
docker-compose exec webserver document_exporter ../export/
cd ../../../..
docker exec paperless-db-1 bash -c "pg_dumpall -U paperless | gzip > /volume1/docker/paperless-ngx/export/db/backup_$(date +%F_%a_%T_%Z).gz"

Das führt dann zum erwähnten Fehler:
Code:
/volume1/docker/paperless-ngx/export/db/backup_2023-12-31_Sun_16:41:33_CET.gz: No such file or directory

Müsste denn der DB Dump Befehl die Datei nicht erstellen? Der Folder "/volume1/docker/paperless-ngx/export/db/" existiert.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Sicher, dass da die Anführungszeichen so passen? Ich nehme an, dass er den Pfad innerhalb des Containers sucht.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154
docker exec paperless-db-1 bash -c "pg_dumpall -U paperless | gzip > /volume1/docker/paperless-ngx/export/db/backup_$(date +%F_%a_%T_%Z).gz"
Da würde er den Pfad wie @plang.pl geschrieben hat im Container suchen. Mach stattdessen
Code:
docker exec paperless-db-1 pg_dumpall -U paperless | gzip > /volume1/docker/paperless-ngx/export/db/backup_$(date +%F_%a_%T_%Z).gz
.

Edit:
Sowas würde ich eher vermeiden und einen absoluten Pfad angeben. Dann ist immer klar in welchem Ordner man landet.
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
586
Punkte für Reaktionen
68
Punkte
48
Wie würde denn ein Backupscript für MariaDB aussehen ?
 

ub.privat

Benutzer
Mitglied seit
14. Nov 2022
Beiträge
17
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,
ich wünsche euch allen ein gesundes und erfolgreiches 2024!

Nachdem ich mich nun schon seit mehreren Tagen mit dem Backup von P-NGX beschäftige und nach unzähligen Google-Einheiten und SuFu-Listen nicht weiter komme, liegt meine Hoffnung hier im Forum.

Vor ca. 3 Monaten habe ich P-NGX nach einer Anleitung auf YT (https://www.youtube.com/watch?v=ycLwmM0UZ4Q&list=PL3-bM7Aq1pUoyqlHZyfBU9pMeBBUTK8UI&index=3) installiert. Alles funktioniert einwandfrei und das Update auf version 2.2.1 verleif reibungslos.
Nachdem ich schon mehrere Dokumente eingelesen und verschlagwortet habe, ist es nun Zeit ein Backup durchzuführen.

Und da beginnen meine Probleme!
Mittels document-exporter möchte ich die Daten und deren Verknüpfung zur DB in den Ordner Export kopieren. Siehe...

Code:
Uwe@UB-DS720:~$ cd /volume1/docker/portainer/compose/1/
Uwe@UB-DS720:/volume1/docker/portainer/compose/1$ sudo docker-compose exec -T webserver document_exporter ../export
Password:
service "webserver" is not running container #1
Uwe@UB-DS720:/volume1/docker/portainer/compose/1$

Leider wird mir ausgegeben, dass der Webserver nicht läuft, was aber nicht wirklich stimmt!?

In den Stack-Details wird er als ok angezeigt:
1704374370673.png

Ich möchte gern meine Daten sichern, um die Installation nach Anleitung von S.Lachner aufsetzen.
Aktuell befindet sich die "docker-composer.yml" nicht im Ordner "paperless-ngx". Auch eine entsprechende *env Datei ist nicht existent.

Vllt. hilft den Profis unter euch noch ein Blick auf die docker-compose.yml:

Code:
version: "3.4"
services:
  broker:
    image: docker.io/library/redis:7
    restart: unless-stopped
    volumes:
      - /volume1/docker/paperless-ngx/redisdata:/data

  db:
    image: docker.io/library/postgres:13
    restart: unless-stopped
    volumes:
      - /volume1/docker/paperless-ngx/pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - 8010:8000
    healthcheck:
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - /volume1/docker/paperless-ngx/data:/usr/src/paperless/data
      - /volume1/docker/paperless-ngx/media:/usr/src/paperless/media
      - /volume1/docker/paperless-ngx/export:/usr/src/paperless/export
      - /volume1/docker/paperless-ngx/consume:/usr/src/paperless/consume
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db
      PAPERLESS_SECRET_KEY:
      PAPERLESS_ADMIN_USER:
      PAPERLESS_ADMIN_PASSWORD:
      PAPERLESS_OCR_LANGUAGE: deu+eng
      PAPERLESS_CONSUMER_DELETE_DUPLICATES: true
      USERMAP_UID: 0
      USERMAP_GID: 0

volumes:
  data:
  media:
  pgdata:
  redisdata:

Ich hoffe meinen Fehlerfall/Problem ausreichend gut beschrieben zu haben und würde mich auf eurer Input und Hilfe freuen.

VG Uwe
 


 

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