Sicherung & Wiederherstellung
RAMP enthält ein dediziertes CLI-Tool (RAMP.Cli) für Sicherung und Notfallwiederherstellung. Die CLI unterstützt vollständige und teilweise Sicherungen in mehreren Formaten, Validierung vor der Wiederherstellung und zwei Wiederherstellungsmodi (Überschreiben und Kopieren). Sie arbeitet direkt gegen die RAMP-Datenbank und erstellt eigenständige Sicherungsdateien.
CLI-Übersicht
Abschnitt betitelt „CLI-Übersicht“Das RAMP CLI (ramp-cli) stellt vier Befehle bereit:
| Befehl | Beschreibung |
|---|---|
list | Entitätshierarchie anzeigen (Systeme, Phasen, Vorlagen, Versionen, Instanzen) |
backup | Eine vollständige oder teilweise Sicherung erstellen |
validate | Eine Sicherungsdatei vor der Wiederherstellung validieren |
restore | Daten aus einer Sicherungsdatei wiederherstellen |
Installation und Konfiguration
Abschnitt betitelt „Installation und Konfiguration“Die CLI wird als Teil der RAMP-Lösung (src/RAMP.Cli) erstellt. Sie verbindet sich mit derselben Datenbank wie die RAMP API unter Verwendung der Verbindungszeichenfolge aus appsettings.json.
# CLI erstellencd src/RAMP.Clidotnet build
# CLI ausführendotnet run -- <command> [options]
# Hilfe anzeigendotnet run -- --helpEntitätshierarchie
Abschnitt betitelt „Entitätshierarchie“RAMP-Daten folgen einer hierarchischen Struktur. Das Verständnis dieser Hierarchie ist wichtig für teilweise Sicherungen und Wiederherstellungen.
System └── Phase └── (Instanzen sind mit Phasen verknüpft)
Vorlage └── Vorlagenversion └── Schritte, Variablen └── Instanz └── Instanzschritte, Instanzvariablen, AnhängeBei der Sicherung oder Wiederherstellung einer bestimmten Entität schließt RAMP automatisch alle untergeordneten Entitäten in der Hierarchie ein. Zum Beispiel umfasst die Sicherung eines Systems seine Phasen, und die Sicherung einer Vorlage umfasst alle ihre Versionen.
Hierarchie anzeigen
Abschnitt betitelt „Hierarchie anzeigen“Verwenden Sie den Befehl list, um die Entitätshierarchie zu erkunden, bevor Sie Sicherungen erstellen:
# Gesamte Hierarchie auflistenramp-cli list
# Ab einer bestimmten Entität auflistenramp-cli list --type system --id <system-guid>
# Alle Knoten erweiternramp-cli list --expandDie Ausgabe zeigt eine Baumansicht mit farbkodierten Entitätstypen und untergeordneten Zählungen.
Sicherungsformate
Abschnitt betitelt „Sicherungsformate“RAMP unterstützt drei Sicherungsformate:
| Format | Erweiterung | Beschreibung | Am besten geeignet für |
|---|---|---|---|
| JSON | .json | Von Menschen lesbare JSON-Datei mit allen Daten inline | Kleine Sicherungen, Inspektion, programmatische Verarbeitung |
| ZIP | .zip | Komprimiertes Archiv mit JSON-Daten und separat gespeicherten Anhangdateien | Sicherungen mit großen Anhängen |
| SQLite | .sqlite | Portable SQLite-Datenbankdatei | Große Sicherungen, Offline-Abfragen |
Sicherungen erstellen
Abschnitt betitelt „Sicherungen erstellen“Vollständige Sicherung
Abschnitt betitelt „Vollständige Sicherung“Eine vollständige Sicherung erfasst alle Daten in der RAMP-Datenbank: Systeme, Phasen, Vorlagen, Versionen, Instanzen, Schritte, Variablen, Anhänge und Benutzer-/Gruppen-/Kategorieverweise.
ramp-cli backup full --output <path> [--format <format>]| Option | Alias | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
--output | -o | Ja | — | Ausgabedateipfad |
--format | -f | Nein | Json | Sicherungsformat: Json, Zip oder Sqlite |
Beispiel:
# Vollständige Sicherung im JSON-Formatramp-cli backup full --output /backups/ramp-full-2026-03-09.json
# Vollständige Sicherung im ZIP-Format (empfohlen für große Datenbanken)ramp-cli backup full --output /backups/ramp-full-2026-03-09.zip --format ZipNach Abschluss zeigt die CLI eine Zusammenfassungstabelle mit Entitätszählungen an:
Entity Type Count──────────────────────Systems 3Stages 12Templates 45Versions 89Instances 234User References 156Category Refs 18Teilweise Sicherung (Objekt-Sicherung)
Abschnitt betitelt „Teilweise Sicherung (Objekt-Sicherung)“Eine teilweise Sicherung erfasst eine bestimmte Entität und alle ihre untergeordneten Elemente in der Hierarchie.
ramp-cli backup object --type <entity-type> --id <guid> --output <path> [--format <format>]| Option | Alias | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
--type | -t | Ja | — | Entitätstyp: system, stage, template, version, instance |
--id | -i | Ja | — | Entitäts-GUID |
--output | -o | Ja | — | Ausgabedateipfad |
--format | -f | Nein | Json | Sicherungsformat: Json, Zip oder Sqlite |
Beispiele:
# Eine einzelne Instanz sichernramp-cli backup object --type instance --id a1b2c3d4-... --output instance-backup.json
# Ein System und alle seine Phasen sichernramp-cli backup object --type system --id e5f6a7b8-... --output system-backup.zip --format Zip
# Eine Vorlage mit allen Versionen und Instanzen sichernramp-cli backup object --type template --id c9d0e1f2-... --output template-backup.jsonWas in teilweise Sicherungen eingeschlossen ist
Abschnitt betitelt „Was in teilweise Sicherungen eingeschlossen ist“| Startentität | Enthält |
|---|---|
| System | Das System + alle seine Phasen |
| Phase | Die Phase + Verweis auf ihr übergeordnetes System |
| Vorlage | Die Vorlage + alle Versionen + Schritte + Variablen |
| Version | Die Version + alle Schritte + Variablen + Verweis auf übergeordnete Vorlage |
| Instanz | Die Instanz + alle Instanzschritte + Instanzvariablen + Anhänge + Verweise auf übergeordnete Version und Phase |
Jede Sicherung enthält auch Referenzdaten — minimale Informationen (IDs und Namen) für Benutzer, Gruppen und Kategorien, die von den gesicherten Entitäten referenziert werden. Dies ermöglicht es dem Wiederherstellungsprozess, Platzhaltereinträge zu erstellen, wenn die ursprünglichen Benutzer oder Gruppen im Zielsystem nicht vorhanden sind.
Sicherungsmanifest
Abschnitt betitelt „Sicherungsmanifest“Jede Sicherungsdatei enthält ein Manifest mit Metadaten über die Sicherung:
| Feld | Beschreibung |
|---|---|
| Version | Sicherungsformatversion (derzeit “1.0”) |
| Erstellt am | Zeitstempel der Sicherungserstellung |
| Erstellt von | Benutzer oder System, das die Sicherung initiiert hat |
| Typ | Full oder Partial |
| Format | Json, Zip oder Sqlite |
| Stammobjekttyp | Bei teilweisen Sicherungen: der gesicherte Entitätstyp |
| Stammobjekt-ID | Bei teilweisen Sicherungen: die GUID der gesicherten Entität |
| Inhalt | Zusammenfassung aller in der Sicherung enthaltenen Entitäten |
Sicherungen validieren
Abschnitt betitelt „Sicherungen validieren“Vor der Wiederherstellung können Sie eine Sicherungsdatei validieren, um potenzielle Probleme zu überprüfen.
ramp-cli validate --input <path> [--mode <mode>]| Option | Alias | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
--input | -i | Ja | — | Pfad zur Sicherungsdatei |
--mode | -m | Nein | Copy | Wiederherstellungsmodus zur Validierung: Overwrite oder Copy |
Validierungsprüfungen
Abschnitt betitelt „Validierungsprüfungen“Der Validierungsbefehl führt folgende Prüfungen durch:
- Dateiintegrität: Sicherungsdatei kann korrekt gelesen und analysiert werden
- Schema-Validierung: Alle erforderlichen Felder sind vorhanden und korrekt typisiert
- Referenzintegrität: Referenzierte Entitäten (Benutzer, Systeme, Vorlagen) existieren in der Zieldatenbank (für den Überschreib-Modus)
- ID-Konflikte: Im Überschreib-Modus wird geprüft, ob vorhandene Entitäten überschrieben werden würden
Validierungsausgabe
Abschnitt betitelt „Validierungsausgabe“Backup Information┌──────────────┬─────────────────────────────┐│ Property │ Value │├──────────────┼─────────────────────────────┤│ Backup Type │ Partial ││ Created At │ 2026-03-09 14:30:00 ││ Created By │ admin ││ Format │ Json ││ Root Object │ Template │└──────────────┴─────────────────────────────┘
Validation passed!Wenn die Validierung fehlschlägt, listet die Ausgabe spezifische Fehler und Warnungen auf, mit einem Vorschlag, den alternativen Wiederherstellungsmodus auszuprobieren.
Aus einer Sicherung wiederherstellen
Abschnitt betitelt „Aus einer Sicherung wiederherstellen“Der Wiederherstellungsbefehl importiert Daten aus einer Sicherungsdatei in die RAMP-Datenbank.
ramp-cli restore --input <path> [--mode <mode>] [--dry-run] [--dummy-prefix <prefix>]| Option | Alias | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
--input | -i | Ja | — | Pfad zur Sicherungsdatei |
--mode | -m | Nein | Copy | Wiederherstellungsmodus: Overwrite oder Copy |
--dry-run | — | Nein | false | Nur validieren, keine Änderungen vornehmen |
--dummy-prefix | — | Nein | [RESTORED] | Präfix für Dummy-Eltern-Entitätsnamen |
Wiederherstellungsmodi
Abschnitt betitelt „Wiederherstellungsmodi“RAMP bietet zwei Wiederherstellungsmodi, die bestimmen, wie Entitäts-IDs während des Imports behandelt werden.
Kopiermodus
Abschnitt betitelt „Kopiermodus“Verhalten: Alle Entitäten erhalten neue GUIDs. Ursprüngliche IDs werden verworfen und neu zugeordnet.
Vorteile:
- Funktioniert immer, unabhängig davon, was in der Zieldatenbank vorhanden ist
- Kein Risiko, vorhandene Daten zu überschreiben
- Erstellt Dummy-Eltern-Entitäten, wenn die ursprünglichen Eltern nicht vorhanden sind
Anwendungsfälle:
- Daten in eine andere Umgebung klonen
- Daten neben bestehenden Einträgen wiederherstellen
- Daten zwischen separaten RAMP-Installationen migrieren
Dummy-Eltern: Bei der Wiederherstellung einer teilweisen Sicherung (z. B. einer Instanz) und die übergeordnete Entität (z. B. Vorlagenversion, Phase) existiert nicht in der Zieldatenbank, erstellt RAMP eine Platzhalter-Elternentität mit dem Namenspräfix [RESTORED]. Diese Dummy-Eltern stellen referenzielle Integrität sicher.
ramp-cli restore --input backup.json --mode Copy
# Benutzerdefiniertes Präfix für Dummy-Elternramp-cli restore --input backup.json --mode Copy --dummy-prefix "[IMPORTED]"Überschreibmodus
Abschnitt betitelt „Überschreibmodus“Verhalten: Entitäten werden mit ihren ursprünglichen GUIDs wiederhergestellt. Wenn eine Entität mit derselben ID bereits existiert, wird sie überschrieben.
Vorteile:
- Bewahrt ursprüngliche IDs und Beziehungen
- Echte Notfallwiederherstellung — stellt den genauen vorherigen Zustand wieder her
Anforderungen:
- Alle referenzierten übergeordneten Entitäten müssen in der Zieldatenbank vorhanden sein
- Schlägt fehl, wenn erforderliche Verweise fehlen (Kopiermodus als Fallback verwenden)
Anwendungsfälle:
- Notfallwiederherstellung in derselben Datenbank
- Wiederherstellung nach versehentlichem Löschen
- Zurücksetzen auf einen vorherigen Zustand
ramp-cli restore --input backup.json --mode OverwriteTestlauf
Abschnitt betitelt „Testlauf“Verwenden Sie --dry-run, um die Wiederherstellung zu validieren, ohne Änderungen vorzunehmen:
ramp-cli restore --input backup.json --mode Overwrite --dry-runDer Testlauf führt alle Validierungsprüfungen durch und meldet, was wiederhergestellt werden würde, einschließlich Entitätszählungen und Warnungen, ohne die Datenbank zu ändern.
Wiederherstellungsausgabe
Abschnitt betitelt „Wiederherstellungsausgabe“Nach einer erfolgreichen Wiederherstellung zeigt die CLI Statistiken an:
Restore completed!
Entity Type Count───────────────────────────Systems 1Stages 4Templates 3Versions 6Instances 12Steps 148Variables 36Dummy Parents Created 2
ID mappings created: 210Old IDs -> New IDs have been remappedWarnungen
Abschnitt betitelt „Warnungen“Der Wiederherstellungsprozess kann Warnungen für nicht-kritische Probleme erzeugen:
- Fehlende Benutzerverweise: Benutzer, die in der Sicherung referenziert werden, existieren nicht in der Zieldatenbank
- Fehlende Kategorieverweise: In der Sicherung referenzierte Kategorien existieren nicht
- Dummy-Eltern erstellt: Platzhalter-Entitäten wurden für fehlende übergeordnete Verweise erstellt
Wenn die Wiederherstellung fehlschlägt, zeigt die CLI spezifische Fehlermeldungen an:
- Fehlende erforderliche Verweise: Im Überschreibmodus existiert eine erforderliche übergeordnete Entität nicht
- Schema-Diskrepanz: Die Sicherungsformatversion ist mit der aktuellen RAMP-Version inkompatibel
- Datenbankintegritätsverletzungen: Fremdschlüssel-Einschränkungen würden verletzt werden
Hierarchische Sicherungsstrategie
Abschnitt betitelt „Hierarchische Sicherungsstrategie“Für eine umfassende Notfallwiederherstellung sichern Sie Daten auf System-Ebene. Dadurch wird die gesamte Hierarchie erfasst:
System-Sicherung ├── System-Metadaten ├── Alle Phasen ├── Alle Vorlagen (mit diesem System verknüpft) │ ├── Alle Versionen │ │ ├── Schritte │ │ └── Variablen │ └── Alle Instanzen │ ├── Instanzschritte │ ├── Instanzvariablen │ └── Anhänge └── Benutzer- und KategorieverweiseEmpfohlener Sicherungszeitplan
Abschnitt betitelt „Empfohlener Sicherungszeitplan“| Sicherungstyp | Häufigkeit | Aufbewahrung | Format |
|---|---|---|---|
| Vollständige Sicherung | Wöchentlich | 4 Wochen | ZIP |
| Sicherung auf Systemebene | Täglich | 2 Wochen | ZIP |
| Instanzsicherung (nach Abschluss) | Pro Instanz | Dauerhaft | JSON |
Bewährte Praktiken
Abschnitt betitelt „Bewährte Praktiken“Wiederherstellungen regelmäßig testen
Abschnitt betitelt „Wiederherstellungen regelmäßig testen“Stellen Sie Sicherungen regelmäßig in einer Testumgebung wieder her, um zu überprüfen, ob sie vollständig und funktionsfähig sind. Verwenden Sie zuerst --dry-run und führen Sie dann eine vollständige Wiederherstellung in einer Nicht-Produktionsdatenbank durch.
ZIP für Anhänge verwenden
Abschnitt betitelt „ZIP für Anhänge verwenden“Verwenden Sie beim Sichern von Instanzen mit Nachweisdateien das ZIP-Format. Anhänge werden als separate Dateien im Archiv gespeichert und nicht Base64-kodiert eingebettet, was effizienter ist und direkten Dateizugriff ohne Parsen ermöglicht.
Sicherungsstrategie dokumentieren
Abschnitt betitelt „Sicherungsstrategie dokumentieren“Führen Sie eine Aufzeichnung von:
- Sicherungszeitplan und Aufbewahrungsrichtlinie
- Speicherorte für Sicherungsdateien
- Wiederherstellungsverfahren und Kontaktinformationen
- Datum des letzten erfolgreichen Wiederherstellungstests
Vor der Wiederherstellung validieren
Abschnitt betitelt „Vor der Wiederherstellung validieren“Führen Sie immer validate vor restore in der Produktion aus:
# Schritt 1: Validierenramp-cli validate --input backup.json --mode Copy
# Schritt 2: Testlauframp-cli restore --input backup.json --mode Copy --dry-run
# Schritt 3: Tatsächliche Wiederherstellung (nur nach bestandener Validierung)ramp-cli restore --input backup.json --mode CopySicherungsdateien schützen
Abschnitt betitelt „Sicherungsdateien schützen“Sicherungsdateien enthalten den vollständigen Zustand Ihrer RAMP-Daten, einschließlich Schrittanweisungen, Variablenwerten, Benutzerverweisen und Ausführungsverlauf. Speichern Sie sie an einem sicheren Ort mit angemessenen Zugriffskontrollen und Verschlüsselung.