Invoke-sqmUserDatabaseBackup – SQL Server Backup PowerShell automatisieren: FULL, DIFF und LOG mit Logging
Was macht die Funktion?
Erstellt Benutzerdatenbank-Backups des Typs FULL, DIFFERENTIAL oder LOG mit vollständigem Logging und strukturierter Fehlerbehandlung. Das Backup-Verzeichnis wird automatisch angelegt, der Dateiname enthält Zeitstempel und Backup-Typ. Alle Backup-Vorgänge werden in eine zentrale Log-Datei geschrieben. Unterstützt COMPRESSION, CHECKSUM und COPY_ONLY.
Wann nutzt man sie?
Als Alternative oder Ergänzung zu Ola Hallengren wenn ein direkter PowerShell-Aufruf ohne SQL Agent Job benötigt wird. In CI/CD-Pipelines vor Applikations-Deployments für ein schnelles COPY_ONLY Backup. Im Notfall für ein manuelles Ad-hoc-Backup mit vollständiger Protokollierung.
Typische Probleme
- Fehlender Speicherplatz wird erst beim Backup-Fehler bemerkt – kein Pre-Check
- Backup-Dateien ohne Zeitstempel im Namen werden bei erneutem Lauf überschrieben
- Keine Unterscheidung zwischen COPY_ONLY und regulärem Backup – bricht die Backup-Kette
Vorteile
- Automatischer Speicherplatz-Pre-Check verhindert fehlgeschlagene Backups
- Zeitgestempelter Dateiname und strukturierte Verzeichnisstruktur (Instanz\Datenbank\Typ)
- CHECKSUM-Option erkennt Backup-Korruption bereits beim Schreiben
# FULL Backup einer Datenbank mit Kompression und Checksum Invoke-sqmUserDatabaseBackup -SqlInstance "SQL01" -Database "Produktion" -BackupType "FULL" -Compress -Checksum # COPY_ONLY Backup vor Deployment (unterbricht nicht die Backup-Kette) Invoke-sqmUserDatabaseBackup -SqlInstance "SQL01" -Database "Produktion" -BackupType "FULL" -CopyOnly