Export- und Wiederherstellung für den charly-Server
Diese Dokumentation beschreibt den Prozess des Exports (Sicherung) und der Wiederherstellung für ihre solutio Installation. Sie umfasst verschiedene Export-Typen, automatisierte Backups, Überwachung und Wiederherstellungsprozeduren.
1. Übersicht
1.1 Zweck und Umfang
Das charly-Server Export-System bietet verschiedene Möglichkeiten zur Datensicherung und Migration. Es ermöglicht: - Vollständige System-Backups - Gezielte Datenbank-Sicherungen - Automatisierte regelmäßige Backups - Server-Migration mit minimalem Wartungsfenster - Kontinuierliche Überwachung und Statusberichte
1.2 Vergleich der Export-Typen
Export-Typ | Beschreibung | Anwendungsfall | Services während Export |
---|---|---|---|
Standard | Vollständiges Backup (Datenbank + Dateisystem) | Regelmäßige Komplettsicherung | Gestoppt |
DatabaseOnly | Nur Datenbank-Sicherung | Häufige Datensicherung | Gestoppt |
DatabaseIso | Datenbank als ISO-Datei | Testsysteme, Entwicklung | Aktiv |
Migration | Komplettes System mit Zusatzprüfungen | Serverumzug | Deaktiviert |
1.3 Auswahlhilfe Export-Typ
Wählen Sie den Export-Typ basierend auf Ihren Anforderungen:
- Standard Export: Wenn Sie eine vollständige Sicherung benötigen und eine kurze Systemunterbrechung akzeptabel ist
- DatabaseOnly: Für schnelle, regelmäßige Sicherungen der Datenbank
- DatabaseIso: Wenn Sie die Daten in einer Testumgebung verwenden möchten oder der Praxisbetrieb nicht unterbrochen werden darf
- Migration: Bei Umzug auf einen neuen Server mit zusätzlichen Sicherheitsprüfungen
2. Voraussetzungen
2.1 "charly-server"-Skript installieren
Wenn Sie das charly-server-Skript noch nicht vorliegen haben, laden Sie den Installer mit folgendem Befehl herunter:
Invoke-WebRequest -Uri "https://charly-cdn-solutio.s3.amazonaws.com/release/windows/charly-server-install.ps1" -OutFile ".\charly-server-install.ps1"
.\charly-server-install.ps1
2.2 Speicheranforderungen und Pfade
Export-Pfad Auswahl
Der Export-Pfad wird in folgender Reihenfolge ermittelt:
- Pfad aus der Konfigurationsdatei
- Interaktive Auswahl aus verfügbaren Laufwerken
- Lokale Laufwerke
- Wechseldatenträger
- Netzwerklaufwerke
Automatische Laufwerksprüfung
- Prüfung auf ausreichend Speicherplatz
- Ausschluss des Quelllaufwerks
- Prüfung der Schreibrechte
- Überprüfung von Netzwerklaufwerk-Verbindungen
Speicherplatz-Anforderungen
Export-Typ | Benötigter Speicherplatz | Zusätzliche Anforderungen |
---|---|---|
Standard | (DB-Größe × 1.5) + (charly-Ordner × 1.2) + 5 GB | Platz für 7-Tage-Rotation |
DatabaseOnly | (DB-Größe × 1.5) + 2 GB | Platz für 7-Tage-Rotation |
DatabaseIso | (DB-Größe × 2) + 1 GB | Zusätzlicher Platz für ISO-Datei |
Migration | (DB-Größe × 2) + (charly-Ordner × 1.2) + 10 GB | Platz für ISO-Datei und Prüfungen |
2.3 Netzwerkspeicher (empfohlen)
Wir empfehlen dringend die Verwendung eines Netzwerkspeichers für Ihre Backups, um die Datensicherheit zu erhöhen.
Voraussetzungen für Netzwerkspeicher
- Stabile Netzwerkverbindung mit mindestens 1 Gbit/s
- Persistente Verbindung zum Netzwerkspeicher (automatische Wiederverbindung nach Neustart)
- Administratorberechtigungen für den Export-Pfad
- Der ausführende Benutzer (in der Regel das Systemkonto) benötigt Vollzugriff
- Bei geplanten Backups muss der Zugriff auch ohne aktive Benutzeranmeldung funktionieren
Einrichtung Netzwerkspeicher
- Verbinden Sie den Netzwerkspeicher als Administrator
- Konfigurieren Sie die persistente Verbindung:
New-PSDrive -Name "BackupDrive" -PSProvider "FileSystem" -Root "\\server\share" -Persist
- Überprüfen Sie die Zugriffsrechte für das Systemkonto
- Testen Sie einen manuellen Export, bevor Sie automatisierte Backups einrichten
Wichtige Hinweise
- Verwenden Sie UNC-Pfade (\server\share) statt Laufwerksbuchstaben
- Stellen Sie sicher, dass die Netzwerkverbindung stabil ist
- Monitoring der Backup-Logs ist besonders wichtig bei Netzwerkspeicher
- Bei Verbindungsproblemen wird der Export automatisch abgebrochen
3. Export-Prozesse
3.1 Standardexport
graph TD
A[Start Export] --> B{Prüfe Exportpfad}
B -->|Nicht vorhanden| C[Laufwerksauswahl]
B -->|Vorhanden| D[Validiere Pfad]
C --> D
D --> E[Prüfe Speicherplatz]
E --> F[Beende Clients]
F --> G[Stoppe Services]
G --> H[Setze DB ReadOnly]
H --> I[Exportiere Datenbanken]
I --> J[Setze DB ReadWrite]
J --> K[Starte Services]
K --> L[Erstelle 7zip Archiv]
L --> M{ISO erstellen?}
M -->|Ja| N[Erstelle ISO]
M -->|Nein| O[Ende]
N --> O[Ende]
style A fill:#f9f,stroke:#333,stroke-width:2px
style M fill:#bbf,stroke:#333,stroke-width:2px
style O fill:#bfb,stroke:#333,stroke-width:2px
Besonderheiten
- Vollständige Sicherung von Datenbank und charly-Ordner
- Temporäre Serviceunterbrechung
- 7-Tage-Rotation der Datenbank-Backups
- Optionale ISO-Erstellung
3.2 Nur Datenbank (DatabaseOnly)
graph TD
A[Start Export] --> B[Prüfe Exportpfad]
B --> C[Beende Clients]
C --> D[Stoppe Services]
D --> E[Setze DB ReadOnly]
E --> F[Exportiere Datenbanken]
F --> G[Setze DB ReadWrite]
G --> H[Starte Services]
H --> I{ISO erstellen?}
I -->|Ja| J[Erstelle ISO]
I -->|Nein| K[Ende]
J --> K[Ende]
style A fill:#f9f,stroke:#333,stroke-width:2px
style I fill:#bbf,stroke:#333,stroke-width:2px
style K fill:#bfb,stroke:#333,stroke-width:2px
Besonderheiten
- Nur Datenbank-Sicherung
- Schneller als Vollbackup
- 7-Tage-Rotation
- Temporäre Serviceunterbrechung
3.3 Datenbank als ISO (DatabaseIso)
graph TD
A[Start Export] --> B[Prüfe Exportpfad]
B --> C[Validiere ISO-Pfad]
C --> D[Exportiere Datenbanken]
D --> E[Erstelle ISO]
E --> F[Ende]
style A fill:#f9f,stroke:#333,stroke-width:2px
style F fill:#bfb,stroke:#333,stroke-width:2px
Besonderheiten
- Keine Serviceunterbrechung
- Kein ReadOnly-Modus
- Immer mit ISO-Datei
- Ideal für Testsysteme
3.4 Migration
graph TD
A[Start Export] --> B[Vorprüfungen]
B --> C[TOAST-Fehler Check]
C --> D[Bloat Check]
D --> E[KIM-IP Anpassung]
E --> F[Beende Clients]
F --> G[Stoppe Services]
G --> H[Setze DB ReadOnly]
H --> I[Exportiere System]
I --> J[Erstelle ISO]
J --> K[Deaktiviere Services]
K --> L[Ende]
style A fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#bbf,stroke:#333,stroke-width:2px
style L fill:#bfb,stroke:#333,stroke-width:2px
Besonderheiten
- Umfangreiche Vorprüfungen
- KIM-IP-Anpassung
- ISO-Datei verpflichtend
- Services bleiben deaktiviert
4. Automatisierte Backups
4.1 Einrichtung automatischer Backups
Das charly-Server-System bietet die Möglichkeit, nach einem erfolgreichen manuellen Export automatische Backups einzurichten. Die erste manuelle Durchführung ist aus folgenden Gründen erforderlich:
- Validierung der Export-Konfiguration
- Überprüfung der Pfade und Berechtigungen
- Sicherstellung ausreichender Systemressourcen
- Erkennung möglicher Probleme vor der Automatisierung
Voraussetzungen für automatische Backups
- Mindestens ein erfolgreicher manueller Export
- Validierte Export-Konfiguration
- Stabile Netzwerkverbindung bei Netzwerkspeicher
- Ausreichend freier Speicherplatz für Rotation
4.2 Backup-Zeitplanung
Nach erfolgreichem Export bietet das System zwei Planungsoptionen:
1. Tägliches Backup (Empfohlen)
# Beispiel: Tägliches Backup um 23:00 Uhr
Backup-Zeit: 23:00
Dies ist die empfohlene und am besten getestete Option. Das Backup wird jeden Tag zur angegebenen Uhrzeit ausgeführt.
2. Benutzerdefinierter Zeitplan
# Beispiel: Jeden Montag um 02:30 Uhr
Cron: 30 2 * * 1
Wichtige Einschränkungen des benutzerdefinierten Zeitplans:
- Unterstützt nur grundlegende Cron-Ausdrücke
- Komplexe Zeitpläne (z.B. "jeden zweiten Mittwoch") werden nicht unterstützt
- Keine Unterstützung für spezielle Cron-Syntax wie '@weekly' oder '@monthly'
- Bei ungültigen Ausdrücken wird der Zeitplan nicht erstellt
In beiden Fällen prüft das System automatisch auf Überschneidungen mit Geschäftszeiten (Mo-Fr, 7-19 Uhr) und warnt entsprechend.
Geschäftszeiten-Prüfung
- Automatische Prüfung auf Überschneidung mit Geschäftszeiten
- Warnung bei geplanten Backups während der Geschäftszeiten
- Bestätigungsaufforderung für Backups während der Geschäftszeiten
- Nach erfolgreich eingerichtetem automatischem Backup erscheint keine Backup-Erinnerung mehr im charly-Client
Empfehlung: Verwenden Sie für die meisten Anwendungsfälle die tägliche Backup-Option. Der benutzerdefinierte Zeitplan sollte nur in Spezialfällen und nach ausführlicher Testung verwendet werden.
4.3 Backup-Speicherung und Rotation
Das System verwendet zwei unterschiedliche Ansätze für die Sicherung:
Datenbank-Backups
- 7-Tage-Rotation für Datenbank-Backups
- Tägliche Backups werden in datumsspezifischen Unterordnern gespeichert
- Automatische Löschung von Backups älter als 7 Tage
- Aktuellstes Backup immer im Hauptverzeichnis verfügbar
charly-Ordner Sicherung (charly.7z)
- Inkrementelle Aktualisierung des 7z-Archivs
- Nur geänderte Dateien werden aktualisiert
- Keine Komprimierung für schnellere Verarbeitung
- Ein zentrales Archiv statt täglicher Kopien
graph TD
A[Backup Start] --> B{Backup Typ}
B -->|Datenbank| C[Speichere im Hauptverzeichnis]
B -->|charly.7z| D[Prüfe auf Änderungen]
C --> E[Kopiere in Datumsordner]
E --> F[Prüfe alte DB-Backups]
F --> G{Älter als 7 Tage?}
G -->|Ja| H[Lösche alte DB-Backups]
D --> I{Archiv existiert?}
I -->|Ja| J[Update geänderte Dateien]
I -->|Nein| K[Erstelle neues Archiv]
J --> L[Ende]
K --> L
H --> L
G -->|Nein| L
style A fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#bbf,stroke:#333,stroke-width:2px
style L fill:#bfb,stroke:#333,stroke-width:2px
4.4 Backup-Verwaltung
Geplante Backups können über das Verwaltungsmenü eingesehen und verwaltet werden:
charly-server export manage
Funktionen
- Anzeige aller geplanten Backups
- Löschen von Backup-Aufgaben
- Erstellen neuer Backup-Aufgaben
- Einsehen der Backup-Status
Wichtige Hinweise
- Änderungen an bestehenden Backup-Zeitplänen erfordern das Löschen und Neuerstellen der Backup-Aufgabe
- Backup-Konfigurationen sollten regelmäßig überprüft werden
- Bei Änderungen am Backup-Pfad müssen Aufgaben neu erstellt werden
Backup-Erinnerungen
Nach erfolgreich eingerichtetem täglichen automatischen Backup wird im charly-Client keine Backup-Erinnerung mehr angezeigt. Dies ermöglicht einen störungsfreien Arbeitsablauf, wenn Sie bereits eine zuverlässige Backup-Routine eingerichtet haben.
Backup-Informationen im charly-Client
Im charly-Client werden keine Informationen mehr darüber angezeigt, wann ein Backup durchgeführt wurde. Diese Funktionalität ist nicht mehr in den Stammdaten verfügbar. Es ist jedoch geplant, diese Informationen zukünftig in der Weboberfläche anzuzeigen, um Administratoren einen besseren Überblick über die Backup-Historie zu ermöglichen. Unabhängig von den automatischen Backups über den charly-Server können Sie weiterhin manuell die Datensicherungsfunktion im charly-Client verwenden.
Beispiel: Backup-Status überprüfen
# Überprüfen, ob automatische Backups konfiguriert sind und korrekt funktionieren
charly-server export manage
Beispielausgabe Backup-Verwaltung
PS C:\WINDOWS\system32> charly-server export manage
Charly Server Version: 2.1.5
Charly Environment: release
Aktuelle geplante Backups:
Task Name: CharlyBackup_normal_486722629
Beschreibung: Automatisches Backup von charly
Zeitplan: Täglich um 03:30 Uhr
Status: Running
Backup Typ: runFunction
Task Name: CharlyBackup_databaseiso_993511268
Beschreibung: testing
Zeitplan: Täglich um 23:00 Uhr
Status: Running
Backup Typ: runFunction
Möchten Sie geplante Backups löschen? (Ja/Nein):
4.5 Backup-Benachrichtigungen
Ab Version 2.1.6 von charly-server
wird die Backup-Erinnerung im charly-Client automatisch deaktiviert, wenn ein erfolgreiches tägliches Backup als geplante Aufgabe eingerichtet wurde. Dies ermöglicht einen störungsfreien Arbeitsablauf und vermeidet redundante Erinnerungen, wenn bereits eine zuverlässige Backup-Routine existiert.
Voraussetzungen für das Ausblenden der Erinnerung
- Mindestens ein erfolgreiches automatisches Backup muss bereits durchgeführt worden sein
- Die Backup-Aufgabe muss als tägliches Backup konfiguriert sein
- Der Status der Backup-Aufgabe muss "Running" sein
Überprüfen des Erinnerungsstatus
Sie können den Status der automatischen Backups überprüfen mit:
charly-server export manage
Wenn mindestens ein tägliches Backup mit dem Status "Running" angezeigt wird, werden keine Backup-Erinnerungen mehr im charly-Client erscheinen.
5. Überwachung und Status
5.1 Status-Überwachung
Der Export-Status kann jederzeit überprüft werden:
charly-server export status
Status-Informationen
- Zeitpunkt des letzten Exports
- Export-Typ und -Dauer
- Erfolg oder Fehler
- Betroffene Komponenten
- Speicherplatzbelegung
- ISO-Details (falls vorhanden)
Beispielausgabe Status-Überwachung
PS C:\WINDOWS\system32> charly-server export status
Charly Server Version: 2.1.5
Charly Environment: release
Export Status vom 2025-02-08 08:41:57
Status: SUCCESSFUL (Erfolgreich)
Inhalt: Datenbank & charly Ordner
Dauer: 150 Sekunden
Export Pfad: c:\users\solutioUser\solutio_export
Export Typ: Standard Export
Verbleibender Speicherplatz auf c:: 139.93 GB
ISO Datei:
Pfad: c:\users\solutioUser\db2.iso
Grösse: 10.47 GB
Verbleibender Speicherplatz auf c:: 139.93 GB
Die Statusausgabe bietet einen schnellen Überblick über: - Zeitpunkt und Dauer des letzten Exports - Art und Umfang der gesicherten Daten - Speicherplatzinformationen - Details zur ISO-Datei (falls erstellt)
5.2 Logging und Protokollierung
Log-Dateien
Die wichtigste Log-Datei beim Export ist die Export-Log-Datei im Format:
export_[subcommand]_YYYYMMDD_HHMMSS.log
Beispiel: export_databaseonly_20250218_143022.log
Diese Datei wird im Verzeichnis %ProgramData%\CharlyServer\logs
gespeichert.
Log-Format
Jeder Logeintrag wird im JSON-Format gespeichert und enthält folgende Felder:
{
"timestamp": "2025-02-18 14:30:22.456",
"level": "INFO",
"message": "Export gestartet",
"environment": "release",
"command": "export",
"subCommand": "databaseonly"
}
Log-Level
Die Log-Datei enthält Einträge mit verschiedenen Prioritätsstufen:
Level | Beschreibung | Sichtbarkeit |
---|---|---|
INFO | Standardmäßige Informationen | Konsole & Log |
WARNING | Warnungen, die Aufmerksamkeit erfordern | Konsole & Log |
ERROR | Fehlermeldungen | Konsole & Log |
DEBUG | Detaillierte technische Informationen | Nur Log |
VERBOSE | Zusätzliche Prozessdetails | Nur Log |
OK | Erfolgsmeldungen | Konsole & Log |
Wichtige Debug-Informationen
Die Log-Datei enthält viele wichtige Informationen, die nicht in der Konsole angezeigt werden:
-
Speicherberechnungen
{ "timestamp": "2025-02-18 14:30:23.123", "level": "DEBUG", "message": "Berechne minimale Exportgroesse... DB: 50.2 GB, Charly: 30.1 GB" }
-
Service-Status
{ "timestamp": "2025-02-18 14:30:24.234", "level": "DEBUG", "message": "Service 'CharlyServer' Status: Running, StartType: Automatic" }
-
Datenbank-Operationen
{ "timestamp": "2025-02-18 14:30:25.345", "level": "DEBUG", "message": "SQL Query ausgefuehrt: SELECT COUNT(*) FROM information_schema.tables" }
-
Dateisystem-Operationen
{ "timestamp": "2025-02-18 14:30:26.456", "level": "DEBUG", "message": "7-Zip Kommando: a -mx0 -bb0 -r \"C:\\backup\\charly.7z\" \".\\*\"" }
Fehleranalyse
Bei Problemen sind besonders diese Log-Einträge relevant:
-
Vorprüfungen
{ "level": "DEBUG", "message": "Pruefe Voraussetzungen... Speicherplatz: 85%, Services: OK, DB: OK" }
-
Fehlgeschlagene Operationen
{ "level": "ERROR", "message": "Operation fehlgeschlagen: Backup-Archiv konnte nicht erstellt werden" }
-
Warnungen
{ "level": "WARNING", "message": "Weniger als 20% freier Speicherplatz verfügbar" }
Log-Analyse
Für die Analyse der Log-Dateien können PowerShell-Befehle verwendet werden:
# Alle Fehler anzeigen
Get-Content .\export_*.log | ConvertFrom-Json | Where-Object { /usr/bin/envsubst.level -eq "ERROR" }
# Zeitliche Abfolge bestimmter Operationen
Get-Content .\export_*.log | ConvertFrom-Json |
Where-Object { /usr/bin/envsubst.message -match "Service|Datenbank" } |
Select-Object timestamp, message
# Performance-Analyse
Get-Content .\export_*.log | ConvertFrom-Json |
Where-Object { /usr/bin/envsubst.level -eq "DEBUG" -and /usr/bin/envsubst.message -match "Dauer:" }
Best Practices
-
Log-Rotation
- Log-Dateien werden nach Datum im Dateinamen sortiert
- Keine automatische Löschung alter Logs
- Manuelle Bereinigung nach erfolgreicher Wiederherstellung empfohlen
-
Fehlersuche
- Immer zuerst DEBUG-Einträge prüfen
- Zeitstempel für Ablaufverfolgung nutzen
- Nach WARNING-Einträgen vor dem ersten ERROR suchen
-
Performance-Analyse
- DEBUG-Einträge enthalten detaillierte Zeitangaben
- Vergleich mehrerer Exports möglich
- Engpässe durch Zeitdifferenzen identifizierbar
-
Backup der Logs
- Log-Dateien zusammen mit Export sichern
- Bei Wiederherstellung relevant für Fehleranalyse
- Teil der Dokumentationspflicht
Für eine umfassende Übersicht über häufige Probleme und deren Lösung siehe Kapitel 7 "Häufige Probleme beim Export".
6. Wiederherstellung
6.1 Wiederherstellung auf einem neuen Server
Die Wiederherstellung auf einem neuen Server erfolgt primär über den Container-Update-Prozess. Dies ist der empfohlene und getestete Weg der Wiederherstellung.
ISO-Datei vorbereiten
Wenn Sie einen direkten Export verwendet haben, können Sie eine ISO-Datei erstellen:
.\charly-server manage CreateIso -ExportPath "\Backups\charly_export" -ISOFilePath "\Backups\charly_backup_.iso"
Installation durchführen
- Kopieren Sie die ISO-Datei auf den neuen Server
- Führen Sie das Container Update durch (Container Update)
6.2 Manuelle Wiederherstellung
In Fällen, wo eine Container-Installation nicht möglich ist, kann eine manuelle Wiederherstellung durchgeführt werden. Dies erfordert tiefergehendes Systemverständnis und sollte nur von erfahrenen Administratoren durchgeführt werden.
WICHTIG: Vor der Wiederherstellung müssen Sie den korrekten Installationspfad Ihrer solutio Installation kennen. Dies ist nicht immer C:\Solutio! Der Pfad kann in der Registry unter
HKLM:\SOFTWARE\Solutio\Charly\Charly_Server
überprüft werden.
Datenbank wiederherstellen
- PostgreSQL-Backup-Dateien aus dem Backup-Verzeichnis lokalisieren
- Datenbanken mit pg_restore wiederherstellen:
# Globale Objekte wiederherstellen psql.exe -U postgres -f globals.sql # Einzelne Datenbanken wiederherstellen pg_restore.exe -U postgres -d solutiodb solutiodb.sql pg_restore.exe -U postgres -d "ncjs-ehealth-kim" ncjs-ehealth-kim.sql
Dateisystem wiederherstellen
- charly.7z aus dem Backup-Verzeichnis extrahieren:
# Installationspfad ermitteln = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Solutio\Charly\Charly_Server" -Name "InstallPath").InstallPath = Join-Path "Client\Charly" # 7-Zip Pfad ermitteln $7zPath = Join-Path ${env:ProgramFiles} "7-Zip\7z.exe" # Archiv extrahieren if (Test-Path $7zPath) { & $7zPath x ".\charly.7z" "-o" -y } else { Write-Error "7-Zip nicht gefunden. Bitte installieren Sie 7-Zip zuerst." }
System aktivieren
-
Services überprüfen und starten:
charly-server manage start
-
Falls die Services erfolgreich starten, führen sie ein Update durch mittels charly-Update Installieren
Funktionsprüfung nach manueller Wiederherstellung
Nach einer manuellen Wiederherstellung sollten folgende Tests durchgeführt werden:
- Anmeldung im System
- Patientendaten abrufen und bearbeiten
- Terminbuchungen vornehmen
- Abrechnungen erstellen
- Datenbankabfragen durchführen
- Probebackup erstellen und wiederherstellen
Wichtige Hinweise zur manuellen Wiederherstellung
- Alle Pfade müssen an Ihre lokale Installation angepasst werden
- Die Reihenfolge der Wiederherstellung ist kritisch: erst Datenbank, dann Dateisystem
- Stellen Sie sicher, dass keine Benutzer während der Wiederherstellung aktiv sind
- Dokumentieren Sie jeden Schritt der manuellen Wiederherstellung
- Erstellen Sie nach erfolgreicher Wiederherstellung ein Probebackup zur Validierung
- Bei der ersten Anmeldung nach Wiederherstellung kann das System länger laden
6.3 Wichtige Hinweise
- Bewahren Sie das ISO bzw. das Backup auch nach erfolgreicher Wiederherstellung auf
- Dokumentieren Sie alle manuellen Schritte bei einer manuellen Wiederherstellung
- Bei der manuellen Wiederherstellung ist besondere Sorgfalt bei der Reihenfolge der Datenbankwiederherstellung erforderlich
- Der charly Updater sollte erst nach erfolgreicher Serviceaktivierung ausgeführt werden
- Eine manuelle Wiederherstellung sollte nur durchgeführt werden, wenn die Container-Installation nicht möglich ist
7. Häufige Probleme beim Export
7.1 Netzwerk-Probleme
Netzwerklaufwerk wird nach Neustart nicht wiederverbunden
Symptom: Der Export schlägt fehl, weil das Netzwerklaufwerk nicht verfügbar ist.
Ursache: Windows stellt die Netzwerkverbindung nicht automatisch wieder her.
Lösung:
- Verbindung als Systemkonto einrichten:
New-PSDrive -Name "BackupDrive" -PSProvider "FileSystem" -Root "\\server\share" -Persist -Scope Machine
- Backup-Skript mit Wiederverbindungslogik ausstatten
- GPO für automatische Netzwerklaufwerk-Wiederherstellung konfigurieren
Zeitüberschreitung bei großen Exporten
Symptom: Export bricht bei großen Datenmengen mit Timeout ab.
Ursache: Standard-Timeouts sind für große Datenmengen zu kurz.
Lösung:
- SMB Timeout erhöhen:
net config server /autodisconnect:-1
- TCP Keep-Alive optimieren:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveTime = 300000 KeepAliveInterval = 1000
7.2 Filesystem-Probleme
Antivirus-Blockierung
Symptom: Export extrem langsam oder bricht ab
Ursache: Echtzeitscanner blockiert Dateizugriffe
Lösung:
- Export-Pfad von Echtzeit-Scan ausnehmen
- Antivirus-Ausnahmen für Datenbank-Dateien einrichten
- VSS-Writer-Konflikte vermeiden
Beschädigte Symlinks
Symptom: Export schlägt bei bestimmten Ordnern fehl
Ursache: Ungültige oder gebrochene symbolische Links
Lösung:
- Symlinks vor Export validieren:
Get-ChildItem -Path -Recurse | Where-Object { /usr/bin/envsubst.LinkType -eq "SymbolicLink" } | ForEach-Object { if (-not (Test-Path /usr/bin/envsubst.Target)) { Write-Warning "Broken symlink: $(/usr/bin/envsubst.FullName) -> $(/usr/bin/envsubst.Target)" } }
- Reparatur oder Entfernung ungültiger Links
- Export-Exclusions für problematische Links einrichten
7.3 Service-Probleme
Dienste lassen sich nicht beenden
Symptom: Export kann Services nicht stoppen
Ursache: Hängende Sitzungen oder Abhängigkeiten
Lösung:
- Stoppen mittels charly-server
charly-server manage stop
- Falls nicht erfolgreich aktive Sitzungen identifizieren:
Get-Process | Where-Object {/usr/bin/envsubst.MainWindowTitle -match "charly"}
- Zwangsbeendigung nach Timeout
- Service-Abhängigkeiten überprüfen
Automatischer Neustart
Symptom: Services starten während Export automatisch neu
Ursache: Windows Service Recovery oder externe Überwachung
Lösung:
- Stoppen mittels charly-server
charly-server manage stop
- Recovery-Einstellungen temporär deaktivieren
- Monitoring-Software während Export pausieren
- Service-Abhängigkeiten dokumentieren
Verbesserte ncjs-Service-Verwaltung
Symptom: Dienste müssen einzeln gesteuert werden
Ursache: Komplexe Abhängigkeiten zwischen Services
Lösung:
- Verwenden Sie den neuen Service-Befehl für gezielte Verwaltung: ```powershell # Spezifischen Dienst neu starten charly-server service restart medication
# Status aller Dienste anzeigen charly-server service status
# Spezifischen Dienst stoppen charly-server service stop auth
7.4 Performance-Probleme
Langsame Netzwerk-Performance
Symptom: Export läuft deutlich langsamer als erwartet
Ursache: Netzwerk-Engpässe oder falsche Konfiguration
Lösung:
- Jumbo Frames aktivieren
- SMB Multichannel konfigurieren
- TCP Window Size optimieren
Ressourcen-Konflikte
Symptom: System wird während Export sehr langsam
Ursache: Ressourcen-Engpässe durch parallele Prozesse
Lösung:
- Prozess-Prioritäten anpassen
- I/O-Prioritäten optimieren
- Backup-Fenster außerhalb der Hauptlast planen
8. Best Practices
Vorbeugende Maßnahmen
- Regelmäßige Test-Wiederherstellungen durchführen
- Backup-Logs archivieren und analysieren
- Dokumentation aktuell halten
- Change Management für Backup-Konfiguration einführen
- Disaster Recovery Plan regelmäßig testen
Monitoring-Empfehlungen
- Backup-Erfolg/Fehler überwachen
- Speicherplatz-Trends analysieren
- Performance-Metriken erfassen
- Service-Status protokollieren
- Sicherheitsrelevante Ereignisse überwachen
Addendum - Erweiterte Technische Details - Export Prozess
Ausführungssystem
Der Export-Prozess verwendet ein fortgeschrittenes Ausführungssystem, das weit über die grundlegende Funktionalität hinausgeht. Diese technischen Details sind primär für Systemadministratoren und zur Fehleranalyse relevant.
Kernfunktionen
-
Zustandsverfolgung
- Persistente Speicherung des Ausführungsstatus
- Automatische Wiederaufnahme nach Unterbrechungen
- Detaillierte Protokollierung jedes Schrittes
-
Schritt-Validierung
- Individuelle Gültigkeitsdauer für jeden Schritt
- Automatische Neuausführung nach Ablauf der Gültigkeit
- Bedingte Ausführung basierend auf Systemzustand
-
Fehlerbehandlung
- Automatische Fehlererfassung und -protokollierung
- Optionale Fortführung trotz Fehler (abhängig von der Konfiguration)
- Rollback-Mechanismen bei kritischen Fehlern
Detaillierter Prozessablauf
graph TD
Start[Start Export] --> ValidateEnv[Umgebungsprüfung]
ValidateEnv --> PreChecks{Pre-Checks nötig?}
PreChecks -->|Ja| RunPreChecks[Führe Pre-Checks aus]
RunPreChecks --> CheckResults{Pre-Checks OK?}
CheckResults -->|Nein| FixIssues[Behebe Probleme]
FixIssues --> RunPreChecks
CheckResults -->|Ja| SpaceCheck
PreChecks -->|Nein| SpaceCheck[Prüfe Speicherplatz]
SpaceCheck --> ValidateConfig[Validiere Konfiguration]
ValidateConfig --> PrepareExport[Bereite Export vor]
PrepareExport --> ExportType{Export Typ?}
ExportType -->|Standard| StandardFlow[Standard Export Flow]
ExportType -->|DatabaseOnly| DBFlow[Database Export Flow]
ExportType -->|DatabaseIso| ISOFlow[ISO Export Flow]
ExportType -->|Migration| MigrationFlow[Migration Flow]
StandardFlow --> StopServices[Stoppe Services]
DBFlow --> StopServices
ISOFlow --> PrepareDB[Bereite Datenbank vor]
MigrationFlow --> MigrationPrep[Migration Vorbereitung]
StopServices --> ExportDB[Exportiere Datenbank]
PrepareDB --> ExportDB
MigrationPrep --> StopServices
ExportDB --> CreateArchive{Archiv erstellen?}
CreateArchive -->|Ja| Archive[Erstelle 7z Archiv]
CreateArchive -->|Nein| Verify
Archive --> Verify[Verifiziere Export]
Verify --> CreateISO{ISO erstellen?}
CreateISO -->|Ja| ISO[Erstelle ISO]
CreateISO -->|Nein| Cleanup
ISO --> VerifyISO[Verifiziere ISO]
VerifyISO --> Cleanup
Cleanup[Cleanup & Logs] --> RestartServices{Services neustarten?}
RestartServices -->|Ja| Restart[Starte Services]
RestartServices -->|Nein| End
Restart --> End[Ende]
style Start fill:#f9f,stroke:#333,stroke-width:2px
style End fill:#bfb,stroke:#333,stroke-width:2px
style PreChecks fill:#bbf,stroke:#333,stroke-width:2px
style ExportType fill:#bbf,stroke:#333,stroke-width:2px
Validierungssystem
Das System führt verschiedene Validierungen durch:
-
Vor dem Export
- Verfügbarer Speicherplatz
- Systemzustand
- Service-Status
- Berechtigungen
-
Während des Exports
- Datenbankintegrität
- Archivierungsqualität
- Speicherverbrauch
- Service-Reaktionen
-
Nach dem Export
- Datenvalidierung
- ISO-Integrität (falls erstellt)
- Backup-Rotation
- Log-Analyse
Schrittvalidierung
Jeder Ausführungsschritt besitzt spezifische Eigenschaften:
{
"Name": "StepName",
"ValidityDuration": "24h",
"Condition": "Bedingung für Ausführung",
"RequiredSteps": ["VoraussetzungsSchritt1", "VoraussetzungsSchritt2"],
"Status": {
"LastExecution": "Zeitstempel",
"Result": "Erfolg/Fehler",
"ErrorDetails": "Fehlerinformationen"
}
}
Fehlerbehandlung und Wiederaufnahme
Das System implementiert eine mehrstufige Fehlerbehandlung:
-
Sofortige Wiederholuung
- Bei temporären Fehlern
- Maximale Anzahl von Versuchen
- Exponentielles Backoff
-
Teilweise Wiederaufnahme
- Fortsetzung ab letztem erfolgreichen Schritt
- Zustandswiederherstellung
- Validierung des Systemzustands
-
Vollständiger Neustart
- Bei kritischen Fehlern
- Automatische Bereinigung
- Neue Validierung aller Voraussetzungen
Logging und Überwachung
Detaillierte Protokollierung auf mehreren Ebenen:
-
Prozessebene
- Ausführungsschritte
- Zeitstempel
- Dauer
- Ressourcenverbrauch
-
Systemebene
- Service-Status
- Systemressourcen
- Netzwerkverbindungen
- Speichernutzung
-
Datenbankebene
- Transaktionen
- Locks
- Performance-Metriken
- Integritätsprüfungen
Leistungsoptimierung
Das System beinhaltet verschiedene Optimierungen:
-
Ressourcenmanagement
- Dynamische Speicherzuweisung
- Prozess-Priorisierung
- I/O-Optimierung
-
Parallelisierung
- Gleichzeitige Verarbeitung wo möglich
- Lastverteilung
- Ressourcen-Pooling
-
Caching
- Zwischenspeicherung von Konfigurationen
- Statusverfolgung
- Temporäre Dateien
Diese erweiterten technischen Details bieten einen tieferen Einblick in die komplexe Funktionsweise des Export-Systems, sind aber für den normalen Betrieb nicht relevant. Sie dienen hauptsächlich der Fehlersuche und Systemoptimierung durch erfahrene Administratoren.
Version: 2.1.7 Datum der letzten Aktualisierung: 27.02.2025