Datenbank-Migration
Diese Anleitung beschreibt den Prozess der PostgreSQL-Datenbankmigration für das charly-System mit dem Befehl charly-server db-migration
. Sie umfasst die Vorbereitung, Durchführung und Verifizierung der Migration sowie spezielle Hinweise zu Benutzerinteraktionen und Fehlerbehebung.
1. Übersicht
Die db-migration
Funktion führt ein In-Place-Update der PostgreSQL-Datenbank durch. Das bedeutet, die bestehende PostgreSQL-Installation wird gesichert, eine neue Version (aktuell PostgreSQL 16, bzw. 15 auf Windows Server 2016) wird installiert und die Daten werden in die neue Instanz importiert, ohne Änderung des Installationspfad oder des PostgreSQL Port.
Wichtige Hinweise:
- Voraussetzung: Die bestehende PostgreSQL-Installation muss Version 9.4 oder höher sein.
- Empfehlung: Für Systeme, welche geeignet sind (siehe
charly-server check-system
), oder wenn ein Serverumzug geplant ist, wird dringend ein Migration zur charly-VM empfohlen. Die charly-VM bietet eine modernere und isolierte Umgebung für den charly-Server. - Dauer: Der Prozess kann je nach Datenbankgröße und Systemleistung zwischen 10 und 50 Minuten dauern. Planen Sie die Migration außerhalb der Praxiszeiten (da charly während der Migration nicht zur Verfügung steht).
- Interaktivität: Die Migration erfordert eine lokale PowerShell-Sitzung mit Administratorrechten und GUI-Zugriff, da der PostgreSQL-Installer eine grafische Oberfläche benötigt. Remote- oder nicht-interaktive Sitzungen werden nicht unterstützt.
2. Kurzanleitung & Ablauf
Der Migrationsprozess läuft größtenteils automatisch ab, erfordert jedoch an einigen Stellen Benutzerinteraktion. Folgendes Diagramm stellt den Ablauf der Migration dar:
Hinweis: Für eine visuelle Darstellung des Migrationsprozesses, siehe das Flussdiagramm PostgreSQL Migrationsablauf
PostgreSQL Migrationsablauf
Migrationsschritte im Überblick:
Schritt | Beschreibung | Benutzer- interaktion |
---|---|---|
1. Start | charly-server db-migration ausführen |
|
2. Konfiguration bestätigen | Anzeige erkannter Einstellungen | ✓ |
3. Vorherige Ergebnisse | Optional: Nutzung vorheriger Prüfungsergebnisse | ✓ |
4. Prüfungen | Disk, Bloat, TOAST-Prüfungen werden durchgeführt | |
5. Datenexport | Datenbanken werden exportiert | |
6. Backup | Der alte PostgreSQL-Installationsordner wird gesichert | |
7. Installation | Neue PostgreSQL-Version wird installiert | |
8. Datenimport | Exportierte Daten werden in neue Instanz importiert | |
9. Verifizierung | Datenintegrität wird überprüft | |
10. Konfiguration | Übernahme der alten Einstellungen oder alternativer Ansatz | ✓ |
11. pgTune-Wizard | Optional: Leistungsoptimierung mit pgTune | ✓ |
12. pgAdmin | Optional: Installation von pgAdmin 4 | ✓ |
13. Abschluss | Migration abgeschlossen |
Schritte mit Benutzerinteraktion sind mit ✓ gekennzeichnet.
Interaktive Schritte:
- Konfigurationsbestätigung: Zu Beginn werden die erkannten Einstellungen angezeigt.
- Wiederverwendung vorheriger Ergebnisse (Optional): Wenn die Migration bereits zuvor gestartet wurde, fragt das Skript für bestimmte Schritte (z.B. BloatCheck, TOASTErrorCheck), ob die Ergebnisse der letzten Durchläufe (innerhalb eines Zeitfensters) wiederverwendet werden sollen. Dies kann Zeit sparen, wenn ein vorheriger Lauf abgebrochen wurde.
- Übernahme alter Konfiguration / pgTune: Nach dem Datenimport wird gefragt, ob Einstellungen (
max_connections
,shared_buffers
etc.) aus der altenpostgresql.conf
übernommen werden sollen. Alternativ kann der pgTune-Wizard gestartet werden, um Empfehlungen basierend auf der Systemhardware zu erhalten und anzuwenden. - pgAdmin Installation: Am Ende wird optional die Installation von pgAdmin 4 angeboten. Dies erfordert eine Benutzerbestätigung im grafischen Installer.
3. Detaillierte Beschreibung mit Beispielausgabe
Hier ist ein Beispiel für den Ablauf des charly-server db-migration
Befehls mit Erläuterungen:
PS C:\WINDOWS\system32> charly-server db-migration
Charly Server Version: 2.2.7
Charly Server Environment: release # oder 'vorabversion'
Native Installation
Aktuelle Konfiguration:
====================
Befehl: db-migration
Solutio Path: C:\Solutio
Export Path: C:\solutio_export # Temporärer Pfad für den Export
PostgreSQL Konfiguration: # Erkannte aktuelle Konfiguration
Path: C:\Solutio\Server\PostgreSQL
Host: 192.168.2.40
Port: 5432
Username: postgres
Service Name: Solutio_PostgreSQL
Version: 9.4.6 # Beispiel für eine ältere Version
Ist die Konfiguration korrekt? (Ja/Nein) [Ja]: # Erste Benutzerinteraktion
[2025-04-27 09:16:39] [INFO] Starting database migration process...
# --- Phase: Vorprüfungen ---
# Optional: Wiederverwendung des Gesamtstatus (falls Migration schon lief)
Moechten Sie die Ergebnisse der vorherigen Durchlaeufe fuer DatabaseMigration verwenden? (Ja/Nein) [Nein]: n
# Erläuterung: Wenn Sie hier 'Ja' wählen, werden Schritte, die im letzten Lauf (innerhalb 24h) erfolgreich waren, übersprungen.
[2025-04-27 09:17:11] [INFO] Starting MigrationBloatCheck...
# Optional: Wiederverwendung des BloatCheck-Status (falls schon gelaufen)
Moechten Sie die Ergebnisse der vorherigen Durchlaeufe fuer MigrationBloatCheck verwenden? (Ja/Nein) [Nein]: n
# Erläuterung: 'Ja' überspringt Datenbanken, die kürzlich (innerhalb 3 Tagen) geprüft wurden.
[2025-04-27 09:18:03] [INFO] Database cde-import has been processed for MigrationBloatCheck within the last 3 days. Skipping.
# ... weitere Datenbanken ...
[2025-04-27 09:18:03] [INFO] MigrationBloatCheck completed.
[2025-04-27 09:18:03] [INFO] Operation 'BloatAndVacuum' completed in 52.6401734 seconds. Success: True
# Erläuterung: Prüft auf Datenbank-Fragmentierung (Bloat) und führt ggf. VACUUM durch.
[2025-04-27 09:18:03] [INFO] Pruefe auf TOAST & LOB Fehler...
[2025-04-27 09:18:03] [INFO] Starting TOASTErrorCheck...
# Optional: Wiederverwendung des TOASTErrorCheck-Status (falls schon gelaufen)
Moechten Sie die Ergebnisse der vorherigen Durchlaeufe fuer TOASTErrorCheck verwenden? (Ja/Nein) [Nein]: n
# Erläuterung: Prüft auf spezielle Datenkorruption (TOAST). Bei Fehlern wird die Migration normalerweise angehalten.
# --- Phase: Export & Backup ---
[INFO] Starting ExportDatabases... # Exportiert alle Datenbanken
[INFO] Starting ExportDatabaseMetadata... # Exportiert Metadaten (z.B. LOB-Anzahl) für spätere Verifizierung
[INFO] Starting DisableOldDatabaseService... # Stoppt und deaktiviert den alten PostgreSQL-Dienst
[INFO] Starting BackupOldInstallation... # Verschiebt das alte PostgreSQL-Verzeichnis (z.B. nach PostgreSQL_backup_JJJJMMDD_HHMMSS)
# Hinweis: Falls der Dienst nicht gestoppt werden kann oder der Ordner nicht verschoben werden kann,
# folgen Sie den Anweisungen auf dem Bildschirm. Möglicherweise müssen Sie Explorer-Fenster schließen
# oder PostgreSQL manuell mit pg_ctl.exe stoppen.
# --- Phase: Installation & Import ---
[INFO] Starting InstallNewPostgreSQL... # Lädt PostgreSQL 16 herunter und installiert es
# Hier wird der grafische Installer von PostgreSQL erscheinen.
[INFO] Starting RegisterPostgreSQLService... # Richtet den neuen Dienst "Solutio_PostgreSQL" ein
[INFO] Starting EnableMD5Encryption... # Stellt sicher, dass die Passwortverschlüsselung auf MD5 gesetzt ist (Kompatibilität)
[INFO] Starting ImportDatabases... # Importiert die zuvor exportierten Datenbanken in die neue Instanz
# --- Phase: Verifizierung & Konfiguration ---
[INFO] Starting VerifyDatabaseContents... # Vergleicht Metadaten (z.B. LOB-Anzahl) mit dem Stand vor dem Export
[INFO] Starting StartSolutioServices... # Startet Charly-Dienste neu
[INFO] Starting VerifyMigration... # Prüft Datenbankverbindung und Dienststatus
[INFO] Starting VerifyFlgConnection... # Prüft Verbindung mit Parametern aus Solutio.flg (falls abweichend)
[INFO] Starting ImportOldPostgreSQLConfig... # Liest alte postgresql.conf aus dem Backup
PgTune-Einstellungen in der alten Konfiguration gefunden:
----------------------------------------
max_connections = 500
shared_buffers = 4GB
effective_cache_size = 12GB
# ... weitere Einstellungen ...
Moechten Sie diese Einstellungen auf die aktuelle PostgreSQL-Installation anwenden? (Ja/Nein) [Ja]: n # Benutzerinteraktion
Moechten Sie stattdessen Empfehlungen von pgTune erhalten? (Ja/Nein) [Ja]: # Benutzerinteraktion
[2025-04-27 09:22:13] [INFO] Starting PostgreSQL tuning wizard # Startet bei Ja
# ... Systeminformationen ...
Empfehlung:
Bitte besuchen Sie https://pgtune.leopard.in.ua/ und geben Sie folgendes ein:
# ... Parameter für pgTune ...
Moechten Sie die Ausgabe von pgTune einfuegen?
# ... Anleitung zum Einfügen ...
Fuegen Sie die pgTune-Ausgabe ein und druecken Sie Enter zweimal, um abzuschliessen: # Benutzerinteraktion (mehrzeilig)
# Hier können die Einstellungen von der pgTune Webseite eingefügt werden.
# Das Skript wendet die eingefügten Einstellungen an und startet PostgreSQL neu.
[INFO] Starting InstallPgAdmin... # Optionaler Schritt
# Benutzerinteraktion: Hier öffnet sich der pgAdmin-Installer, falls die Installation gewünscht wird.
# Der Benutzer muss die Installation im GUI bestätigen oder kann sie abbrechen.
[INFO] Database migration completed successfully.
4. Troubleshooting
Fehler bei der Migration / Rollback
Sollte die Migration fehlschlagen, versucht das Skript automatisch, die vorherige PostgreSQL-Version wiederherzustellen (Restore-OldInstallation
).
WICHTIGE UNTERSCHEIDUNG: -
rollback-db-migration
: Nur nach einer Datenbank-Migration verwenden! Dieser Befehl stellt eine PostgreSQL-Installation wieder her, die durchdb-migration
gesichert wurde. -manage start
: Verwenden Sie diesen Befehl, wenn Sie nach einer Migration zur charly-VM (siehe Migration zur charly-VM) zum alten System zurückkehren möchten. Dieser Befehl startet die bestehenden Charly-Dienste wieder.
Falls dies nicht automatisch geschieht oder Sie manuell zur alten Version zurückkehren möchten (z.B. weil Tests fehlschlagen), können Sie dies bevor Sie mit dem neuen System arbeiten mit folgendem Befehl tun:
charly-server rollback-db-migration
Start-ManualRestore
aus. Sie versucht:
1. Die gesicherte alte PostgreSQL-Installation (PostgreSQL_backup_*
) an den ursprünglichen Ort zurückzuverschieben.
2. Die neue PostgreSQL-Installation zu löschen.
3. Den ursprünglichen PostgreSQL-Dienst wieder zu registrieren und zu starten.
4. Die Charly-Dienste zu starten.
Voraussetzung für den Rollback: Der Befehl benötigt die Datei pg_backup_info.json
im CharlyServerDataPath
(normalerweise C:\ProgramData\CharlyServer
). Diese Datei wird während des db-migration
-Laufs erstellt, nachdem die alte Installation erfolgreich gesichert wurde. Wenn diese Datei fehlt (z.B. weil db-migration
nie lief oder den Backup-Schritt nicht erreichte), kann der Rollback nicht durchgeführt werden und bricht mit einer Warnung ab:
PS C:\WINDOWS\system32> charly-server rollback-db-migration
Charly Server Version: 2.2.7
Charly Server Environment: release
Native Installation
Aktuelle Konfiguration:
====================
Befehl: rollback-db-migration
Solutio Path: C:\Solutio
Export Path: C:\solutio_export
[2025-04-27 11:07:18] [WARNING] No backup info file found at: C:\ProgramData\CharlyServer\pg_backup_info.json
# Das Skript bricht hier ab, da keine Backup-Informationen gefunden wurden.
WICHTIG: Ein Rollback sollte nur durchgeführt werden, wenn keine neuen Daten in der migrierten Datenbank erstellt oder geändert wurden. Kontaktieren Sie im Zweifelsfall den Support.
Beispiel (Erfolgreicher Rollback)
PS C:\WINDOWS\system32> charly-server rollback-db-migration
Charly Server Version: 2.2.7
Charly Server Environment: release
Native Installation
Aktuelle Konfiguration:
====================
Befehl: rollback-db-migration
Solutio Path: C:\Solutio
Export Path: C:\solutio_export
PostgreSQL Backup: C:\Solutio\Server\PostgreSQL_backup_20250427_093806 # Pfad zum Backup der alten Version
PostgreSQL Konfiguration: # Konfiguration der *aktuell* laufenden (neuen) Version
Path: C:\Solutio\Server\PostgreSQL
Host: 192.168.2.40
Port: 5432
Username: postgres
Service Name: Solutio_PostgreSQL
Version: 16.8.0 # Die neue Version, die zurückgerollt wird
Ist die Konfiguration korrekt? (Ja/Nein) [Ja]: # Benutzerbestätigung
[2025-04-27 10:56:01] [INFO] Starting manual restoration of old PostgreSQL installation... # Start des Rollbacks
[2025-04-27 10:56:01] [INFO] Found backup from: 20250427_093806
[2025-04-27 10:56:01] [INFO] Original path: C:\Solutio\Server\PostgreSQL # Der Zielpfad für die alte Version
[2025-04-27 10:56:01] [INFO] Backup path: C:\Solutio\Server\PostgreSQL_backup_20250427_093806 # Quelle für die alte Version
[2025-04-27 10:56:01] [INFO] Stopped current PostgreSQL service # Stoppt den Dienst der neuen Version
[2025-04-27 10:56:01] [INFO] Attempting to stop PostgreSQL using pg_ctl...
pg_ctl: PID-Datei »C:/Solutio/Server/PostgreSQL/data/postmaster.pid« existiert nicht
Läuft der Server? # Meldung von pg_ctl, da der Dienst bereits gestoppt wurde
# Hier wird die neue Installation gelöscht und das Backup zurückverschoben
[2025-04-27 10:56:08] [INFO] Previous PostgreSQL installation restored successfully # Alte Dateien wiederhergestellt
[2025-04-27 10:56:08] [INFO] Successfully restored old PostgreSQL installation
# Startet den Dienst der alten Version und prüft die Verbindung
[2025-04-27 10:56:08] [INFO] PostgreSQL connection test successful
[2025-04-27 10:56:08] [INFO] Starte Solutio-Dienste und aktiviere Client-Verbindungen... # Startet Charly-Dienste
[2025-04-27 10:56:08] [INFO] Verbinde PostgreSQL Datenbank neu...
[2025-04-27 10:56:10] [INFO] Datenbank-Wiederverbindung abgeschlossen.
....
[2025-04-27 10:56:56] [INFO] Dienst ehkp ist bereits registriert
WARNUNG: Warten auf Start des Diensts "ehkp (ehkp)"...
....
[2025-04-27 10:56:59] [INFO] Wiederherstellung der Solutio-Freigabefaehigkeit...
[2025-04-27 10:56:59] [INFO] Wiederherstellung der Solutio-Freigabefaehigkeit abgeschlossen.
[2025-04-27 10:56:59] [INFO] Alle aktivierten Solutio-Dienste gestartet und Client-Verbindungen erfolgreich aktiviert. # Abschlussmeldung
### Nicht-interaktive Sitzung / Remote Desktop
Wie in der Beispielausgabe und der Übersicht erwähnt, schlägt die Migration fehl, wenn sie nicht in einer lokalen, interaktiven PowerShell-Sitzung mit GUI-Zugriff ausgeführt wird.
```powershell
[2025-04-27 09:20:37] [WARNING] Non-interactive or remote session detected. UI-based installers may not work.
[2025-04-27 09:20:37] [ERROR] WARNUNG: Sie fuehren diese Migration in einer nicht-interaktiven oder Remote-Session aus.
Die PostgreSQL-Installation benoetigt eine grafische Oberflaeche.
Bitte fuehren Sie die Migration in einer lokalen PowerShell-Session mit GUI-Zugriff aus.
Stellen Sie sicher, dass Sie direkt am Server angemeldet sind oder eine Remote-Desktop-Verbindung verwenden, die GUI-Interaktionen zulässt (keine reine PowerShell-Remoting-Sitzung).
Probleme beim Stoppen des PostgreSQL-Prozesses
Während der Migration kann es vorkommen, dass der PostgreSQL-Prozess nicht ordnungsgemäß gestoppt werden kann oder der PostgreSQL-Ordner nicht verschoben werden kann, weil Prozesse noch darauf zugreifen:
Explorer oder Anwendungen blockieren den Ordner
Falls Sie folgende Meldung sehen:
Der PostgreSQL-Ordner kann nicht verschoben werden, da er von folgenden Prozessen verwendet wird:
Process: postgres (PID: 6328)
Befolgen Sie diese Schritte:
- Schließen Sie alle Explorer-Fenster, die den Ordner D:\Solutio\Server\PostgreSQL anzeigen
- Schließen Sie alle Programme, die auf den Ordner zugreifen
- Bestätigen Sie mit "Ja", um es erneut zu versuchen
PostgreSQL-Dienst lässt sich nicht stoppen
Falls der Prozess Stop-DatabaseService
lange läuft (>1 Minute) oder fehlschlägt, können Sie versuchen, PostgreSQL manuell zu stoppen:
- Öffnen Sie eine PowerShell als Administrator
- Navigieren Sie zum PostgreSQL bin-Verzeichnis:
cd D:\Solutio\Server\PostgreSQL\bin
- Versuchen Sie folgende Befehle nacheinander, bis einer funktioniert:
.\pg_ctl.exe stop -D D:\Solutio\Server\PostgreSQL\data\ .\pg_ctl.exe stop -D D:\Solutio\Server\PostgreSQL\data\ -m fast .\pg_ctl.exe stop -D D:\Solutio\Server\PostgreSQL\data\ -m immediate
Hinweis: Der
-m immediate
Modus beendet PostgreSQL sofort und kann zu Datenverlusten führen. Verwenden Sie diesen nur als letzten Ausweg. - Nach erfolgreichem Stoppen, setzen Sie die Migration fort mit:
charly-server db-migration
TOAST-Fehler
Wenn bei der TOAST-Prüfung Fehler gefunden werden, wird empfohlen, die Migration abzubrechen und die Fehler zu beheben. Das Fortsetzen mit TOAST-Fehlern kann zu Datenverlust führen.
5. Offline-Migration durchführen
Für Systeme ohne Internetzugang kann eine Offline-Migration vorbereitet und durchgeführt werden. Dabei werden alle benötigten Dateien auf einem System mit Internetzugang heruntergeladen und als ISO-Datei für den Transport bereitgestellt.
Kurzanleitung (TLDR)
Auf dem Vorbereitungs-Server (mit Internet):
Erstelle zunächst das Offline-Migrationspaket mit Charly Server Installer
charly-server prepare-offline-migration -ISOPath "D:\migration.iso"
Dieses ISO muss manuell auf den Ziel-Server kopiert werden, so dass es dort über den Windows Explorer gemountet werden kann.
Zeitnah zur Installation durchführen
Die Erstellung des ISO muss Zeitnah (idealerweise im selben Termin) vor der Installation durchgeführt werden um die aktuellsten Skripte und PostgreSQL Version zu erhalten.
Auf dem Ziel-Server (offline): In einer Administrator Powershell muss das folgende Kommando ausgeführt werden, nachdem das ISO gemountet wurde.
- ISO mounten (Beispiel: erscheint als Laufwerk V:)
-
Charly Server installieren
cd "V:\charly-server-installer" .\charly-server-install.ps1 -Environment offline
-
Danach muss man die Admin PowerShell neu starten und dann fortfahren
- Initialen Export durchführen
charly-server export databaseonly -ExportPath C:\solutio_export
-
Migration durchführen (mit gemounteter ISO auf V:)
charly-server run-offline-migration -OfflinePath "V:\"
Fehlermeldungen beim Export
Bei der Migration wird ein neuer Export durchgeführt der auf TOAST / LOB Fehler prüft und ggf. bei gefundenen Fehlern zu einem Abbruch führt.
Diese Fehler müssen (durch den solutio Support) behoben werden bevor die Migration durchgeführt werden kann.
Detaillierte Anleitung
Schritt 1: Vorbereitung auf einem System MIT Internetzugang
Erstellen des Offline-Migrationspakets:
Erstelle komplettes Offline-Migrationspaket als ISO
charly-server prepare-offline-migration -ISOPath "D:\migration.iso" -IncludeChecksums
Das Paket enthält automatisch:
- PostgreSQL-Installer (Version 15 für Windows Server 2016, Version 16 für neuere Systeme)
- pgAdmin 4 Installer (neueste Version)
- Microsoft Visual C++ Redistributables 2019-2022 (x64 und x86)
- Charly Server Offline-Installer (ab Version 2.6.0, falls Charly Server installiert ist)
- Metadaten-Datei mit Checksummen und Versionen
Beispielausgabe bei erfolgreicher Erstellung:
[INFO] Offline-Migrationspaket erfolgreich erstellt
[INFO] ISO-Datei erstellt: D:\migration.iso (560 MB)
[INFO] Paket enthaelt:
- PostgreSQL 16.8 Installer
- pgAdmin 4 v8.14 Installer
- VC++ Redistributables 2019-2022
- Charly Server Offline-Installer (2.8 MB)
Schritt 2: Transfer zum Offline-System
Transport-Optionen:
- ISO-Datei auf CD/DVD brennen
- USB-Stick mit dem erstellten ISO
Schritt 3: Charly Server Installation auf dem Offline-System
- ISO mounten oder USB-Stick anschließen
- PowerShell als Administrator öffnen
-
Charly Server installieren:
Beispiel: ISO ist auf Laufwerk V: gemountet
cd "V:\charly-server-installer" .\charly-server-install.ps1 -Environment offline exit
-
Nach erfolgreicher Installation: Neue PowerShell-Sitzung als Administrator starten
-
Installation verifizieren:
Erwartete Ausgabe: Charly Server Version: 2.6.0 (oder höher)charly-server version
Schritt 4: Offline-Migration durchführen
Vorbereitung:
-
Stellen Sie sicher, dass:
- Charly Server installiert und funktionsfähig ist
- ISO gemountet oder Dateien vom USB-Stick verfügbar sind
- Sie Administrator-Rechte haben
- Mindestens 20 GB freier Speicherplatz vorhanden ist
-
Aktuelle PostgreSQL-Version prüfen:
Notieren Sie sich die aktuelle PostgreSQL-Version für den Rollback-Fallcharly-server check-system
-
Migration starten:
Beispiel: Offline-Dateien befinden sich auf V:\
charly-server run-offline-migration -OfflinePath "V:\"
Alternative: Mit ISO-Datei direkt
charly-server run-offline-migration -ISOPath "C:\temp\migration.iso"
Der Offline-Migrationsprozess:
-
Verifizierung der Offline-Dateien
- Prüft Verfügbarkeit aller benötigten Installer
- Validiert Checksummen (falls vorhanden)
-
Normale Migration mit lokalen Dateien
- Führt alle Schritte der Standard-Migration durch
- Verwendet lokale Installer statt Downloads
- Prozess dauert je nach Datenbankgröße 10-50 Minuten
Beispielausgabe:
[INFO] Starte Offline-Migration mit Dateien von D:\
[INFO] Gefundene Offline-Installer:
- PostgreSQL 16.8 (validiert)
- pgAdmin 4 v8.14 (validiert)
- VC++ Redistributables (validiert)
[INFO] Starte Datenbank-Migration...
[INFO] Exportiere Datenbanken...
[INFO] Sichere alte PostgreSQL-Installation...
[INFO] Installiere PostgreSQL 16 (Offline-Modus)...
[INFO] Importiere Datenbanken...
[INFO] Migration erfolgreich abgeschlossen
Schritt 5: Verifizierung
Nach erfolgreicher Migration:
-
PostgreSQL-Version prüfen
charly-server check-system
-
Datenbankverbindung testen
charly-server test-connection
-
Charly-Dienste Status prüfen
charly-server status
-
Optional: pgAdmin starten (falls installiert)
Start-Process "C:\Program Files\pgAdmin 4\v8\runtime\pgAdmin4.exe"
Rollback bei Problemen
Falls die Migration fehlschlägt oder Probleme auftreten:
charly-server rollback-db-migration
Prüfen ob Rollback erfolgreich war
charly-server check-system
charly-server status
Warning
Nur verwenden, BEVOR mit dem neuen System gearbeitet wurde!
Hinweis: Ein Rollback ist nur möglich, wenn:
- Die Datei
pg_backup_info.json
existiert (wird während Migration erstellt) - Keine neuen Daten in der migrierten Datenbank erstellt wurden
- Das Backup-Verzeichnis noch vorhanden ist
6. Sonstiges
PostgreSQL Migrationsablauf
flowchart TD
A[Start: charly-server db-migration] --> B{Konfiguration bestätigen?}
B -->|Ja| C{Vorherige Ergebnisse verwenden?}
C -->|Ja/Nein| D[Prüfungen Disk, Bloat, TOAST]
D --> E[Datenexport]
E --> F[Alte PG-Installation sichern]
F --> G[Neue PG-Version installieren]
G --> H[Datenimport]
H --> I[Verifizierung]
I --> J{Alte PG-Konfiguration übernehmen?}
J -->|Ja| K[Übernahme alter Einstellungen]
J -->|Nein| L{pgTune-Empfehlungen?}
K --> M{pgAdmin installieren?}
L -->|Ja| N[pgTune Wizard]
L -->|Nein| M
N --> M
M -->|Ja| O[pgAdmin Installation]
M -->|Nein| P[Abschluss]
O --> P
classDef interactive fill:#9370db,stroke:#333,stroke-width:2px
class B,C,J,L,M,O interactive
Version: 2.7.2
Datum der letzten Aktualisierung: 17.10.2025