Zum Inhalt

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"
Danach können Sie charly-server über den Aufruf des Installer Scripts installieren
.\charly-server-install.ps1

2.2 Speicheranforderungen und Pfade

Export-Pfad Auswahl

Der Export-Pfad wird in folgender Reihenfolge ermittelt:

  1. Pfad aus der Konfigurationsdatei
  2. 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

  1. Verbinden Sie den Netzwerkspeicher als Administrator
  2. Konfigurieren Sie die persistente Verbindung:
    New-PSDrive -Name "BackupDrive" -PSProvider "FileSystem" -Root "\\server\share" -Persist
    
  3. Überprüfen Sie die Zugriffsrechte für das Systemkonto
  4. 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:

  1. Speicherberechnungen

    {
      "timestamp": "2025-02-18 14:30:23.123",
      "level": "DEBUG",
      "message": "Berechne minimale Exportgroesse... DB: 50.2 GB, Charly: 30.1 GB"
    }
    

  2. Service-Status

    {
      "timestamp": "2025-02-18 14:30:24.234",
      "level": "DEBUG",
      "message": "Service 'CharlyServer' Status: Running, StartType: Automatic"
    }
    

  3. Datenbank-Operationen

    {
      "timestamp": "2025-02-18 14:30:25.345",
      "level": "DEBUG",
      "message": "SQL Query ausgefuehrt: SELECT COUNT(*) FROM information_schema.tables"
    }
    

  4. 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:

  1. Vorprüfungen

    {
      "level": "DEBUG",
      "message": "Pruefe Voraussetzungen... Speicherplatz: 85%, Services: OK, DB: OK"
    }
    

  2. Fehlgeschlagene Operationen

    {
      "level": "ERROR",
      "message": "Operation fehlgeschlagen: Backup-Archiv konnte nicht erstellt werden"
    }
    

  3. 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

  1. Log-Rotation

    • Log-Dateien werden nach Datum im Dateinamen sortiert
    • Keine automatische Löschung alter Logs
    • Manuelle Bereinigung nach erfolgreicher Wiederherstellung empfohlen
  2. Fehlersuche

    • Immer zuerst DEBUG-Einträge prüfen
    • Zeitstempel für Ablaufverfolgung nutzen
    • Nach WARNING-Einträgen vor dem ersten ERROR suchen
  3. Performance-Analyse

    • DEBUG-Einträge enthalten detaillierte Zeitangaben
    • Vergleich mehrerer Exports möglich
    • Engpässe durch Zeitdifferenzen identifizierbar
  4. 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

  1. Kopieren Sie die ISO-Datei auf den neuen Server
  2. 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

  1. PostgreSQL-Backup-Dateien aus dem Backup-Verzeichnis lokalisieren
  2. 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

  1. 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

  1. Services überprüfen und starten:

    charly-server manage start
    

  2. 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

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

  1. Regelmäßige Test-Wiederherstellungen durchführen
  2. Backup-Logs archivieren und analysieren
  3. Dokumentation aktuell halten
  4. Change Management für Backup-Konfiguration einführen
  5. Disaster Recovery Plan regelmäßig testen

Monitoring-Empfehlungen

  1. Backup-Erfolg/Fehler überwachen
  2. Speicherplatz-Trends analysieren
  3. Performance-Metriken erfassen
  4. Service-Status protokollieren
  5. 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

  1. Zustandsverfolgung

    • Persistente Speicherung des Ausführungsstatus
    • Automatische Wiederaufnahme nach Unterbrechungen
    • Detaillierte Protokollierung jedes Schrittes
  2. Schritt-Validierung

    • Individuelle Gültigkeitsdauer für jeden Schritt
    • Automatische Neuausführung nach Ablauf der Gültigkeit
    • Bedingte Ausführung basierend auf Systemzustand
  3. 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:

  1. Vor dem Export

    • Verfügbarer Speicherplatz
    • Systemzustand
    • Service-Status
    • Berechtigungen
  2. Während des Exports

    • Datenbankintegrität
    • Archivierungsqualität
    • Speicherverbrauch
    • Service-Reaktionen
  3. 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:

  1. Sofortige Wiederholuung

    • Bei temporären Fehlern
    • Maximale Anzahl von Versuchen
    • Exponentielles Backoff
  2. Teilweise Wiederaufnahme

    • Fortsetzung ab letztem erfolgreichen Schritt
    • Zustandswiederherstellung
    • Validierung des Systemzustands
  3. Vollständiger Neustart

    • Bei kritischen Fehlern
    • Automatische Bereinigung
    • Neue Validierung aller Voraussetzungen

Logging und Überwachung

Detaillierte Protokollierung auf mehreren Ebenen:

  1. Prozessebene

    • Ausführungsschritte
    • Zeitstempel
    • Dauer
    • Ressourcenverbrauch
  2. Systemebene

    • Service-Status
    • Systemressourcen
    • Netzwerkverbindungen
    • Speichernutzung
  3. Datenbankebene

    • Transaktionen
    • Locks
    • Performance-Metriken
    • Integritätsprüfungen

Leistungsoptimierung

Das System beinhaltet verschiedene Optimierungen:

  1. Ressourcenmanagement

    • Dynamische Speicherzuweisung
    • Prozess-Priorisierung
    • I/O-Optimierung
  2. Parallelisierung

    • Gleichzeitige Verarbeitung wo möglich
    • Lastverteilung
    • Ressourcen-Pooling
  3. 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