Docker PostgreSQL Datenbank Umziehen
Eine Docker PostgreSQL Datenbank Umziehen. Auf ein anderes Laufwerk oder ein anderen oder neuen Server – oder PC.
Auch die Migration Volumen / Bind-Mount und umgekehrt kannst Du damit erledigen – So gehts ! 👍
Ein Einfaches Volumen kannst du auch einfach kopieren, wie in diesem Beitrag beschrieben:
Für welchen Zweck oder für welche Anwendung du die Postgres Datenbank erstellt wurde, oder für was sie verwendet wird, ist egal. In diesem Beispiel verwende ich meine „Paperless“ Postgres Datenbank.
Hinweise zu Datensicherung
Bei der Bearbeitung von Speichermedien: Festplatte, Virtuellen Festplatte, USB Stick, Volumen usw. kann es zur Datenverlust kommen, was mehrere Ursachen haben kann. Eine Haftung ist generell ausgeschlossen.
Wenn Du die, die in diesem Beitrag, behandelten Themen und Beispielen folgst und diese Verwendest, empfehle ich dir ausdrücklich, fertige vorher eine Datensicherung an!
Traditionel Methode
Ich arbeite hier mit laufenden Datenbanken. Bei den Datenbanken kann man nicht einfach im Laufenden Betrieb kopieren. Bitte achte darauf, wie die Beispiele hier angewendet werden. Das heist im Laufenden Betrieb des Containers oder bei heruntergefahrenen Datenbank Container!
Backup der Laufenden Datenbank
Nun es gibt die Möglichkeit das ganze per Sicherung / Backup zu erledigen. Der Musterbefel lautet hier wie folgt:
docker exec [Container] pg_dumpall -U [Postgres User] > ./[Ziel]
- „pg_dumpall“ = Alle Datenbanken sichern mit Benutzern und Rechten
- Container = Container ID
- Postgres User = root User / Benutzer der Datenbank
- Ziel = Ziel z.B Mount-Point „./backup“ oder Laufwerk „D:/backup“
Die Container ID kannst Du mit dem folgendem Befehl nachschauen:
docker ps
Nun als Beispiel würde bei mir die Befehlszeile so aussehen:
docker exec 152e9780542e pg_dumpall -U paperroot > "D:\Backup Datenbanken\paperless\all_postgres.sql"
Wenn du wie ich eine Verzeichnisstrucktur verwendet in der „Lehrzeichen oder Umlaute vorkommen“ setze den Pfad wie im Beispiel in „Anführungszeichen“.
Kopieren des laufenden Containers
Die Muster Befehlszeile würde hier wie folgt aussehen:
docker run --rm --volumes-from postgres-container -v $(pwd)/backup:/backup busybox cp -a /var/lib/postgresql/data/. /backup/
- „–rm“ = Der Container wird nach Beendigung wider gelöscht
- „–volume-from“ = Verwende den Container einer Datenbank
- „postgres-conteiner“ = Der Name des Datenbank Containers, normalerweise ist das „DB“. Du kannst das auch wider mit dem Befehl „docker ps“ nachschauen.
- „-v“ = das zu Mountende Volumen
- „busybox“ = Das zu verwendende Image für den Container
- „cp -a /var/lib/postgres/data/. /backup/ = Kopiere alle Daten von / nach
Nun als Beispiel würde bei mir die Befehlszeile so aussehen:
docker run --rm --volumes-from paper-db -v d:/backup:/backup busybox cp -a /var/lib/postgresql/data/. /backup/
- „paper-db“ = Da ich mehrere Daten Banken am laufen habe heißt der Container bei mir nicht DB, sondern „paper-db“
- „d:/backup:/backup“ = ich möchte die Kopie der Datenbank unter „d:/backup haben
- „/var/lib/postgresql/data/.“ = Der Daten Pfad in dem Docker Container wo die Daten liegen. Denn Pfad findest du in deiner Docker Konfiguration unter Mount / Volumens. Z.B. in der docker-compose.yml oder in Portier usw.
Mein Weg zum Migrieren / Umziehen der Datenbank
Detailliert gezeigt kannst du den Vorgang, im Video, mit Erklärungen leichter Nachvollziehen:
Video: Docker PostgreSQL Datenbank Umziehen
Sprache: 🇩🇪
☝️ Benutze YouTube Untertitel für alle Sprachen.
- Die App beenden, also nicht nur den DB Container sondern die auch die Container die die Datenbank benutzen
- Die Konfiguration, je nach wusch anpassen, zum Beispiel in der „docker-compose.yml“ oder im „Portainer“
- Die Datenbank, an das entsprechende Ziel, kopieren. Achte darauf das dein System auch die „Versteckten“ und Systemdateien“ anzeigt und mit kopiert. Wenn die Kopie nicht komplett erfolgt, funktioniert es nicht. Die Datenbank darf auch nicht laufen!
- die App, also wider mit allen Containern starten. Achte hier auf die Reihenfolge der Startreihenfolge der Container (Abhängigkeiten)
- Kontrolliere deine Anwendung „Paperless“ hier z.B. auf vollständige Daten und Fehlerfreiheit!
- Hebe die Original Datenbank (Volumen oder Mount-Point noch einige Zeit auf) fall verspätetet Fehler auftreten.
Link zur Unterstützung / Spende für denn Kanal
PayPal Link
Überweisung, Bitcoin und Lightning
#Docker #DockerVolume #MountPoint #Migration #DockerMountPoint #Volume #DockerDaten #Postgres #PostgreSQL #PostgresMigrieren #PostgreSQLmigrieren #PostgresUmziehen #PostgreSQL #PostgressDB #PostreSQLdb