SQL Server Wartung automatisieren mit PowerShell - Ola Hallengren Maintenance Solution installieren und konfigurieren

5 PowerShell-Funktionen fuer die vollstaendige Automatisierung der Ola Hallengren Maintenance Solution: Installation, SQL Agent Jobs fuer Backup und Index-Optimierung erstellen und Installation pruefen - alles mit Enterprise-konformen Konfigurationen.

5 Funktionen Ola Hallengren SQL Agent Jobs Enterprise-konform

Ola Hallengren Maintenance Solution - Funktionen im Ueberblick

Install-sqmOlaMaintenanceSolution - Ola Hallengren SQL Server Maintenance Solution PowerShell installieren und aktualisieren

Was macht die Funktion?

Installiert oder aktualisiert die Ola Hallengren Maintenance Solution auf einer SQL Server Instanz. Laedt das Skript von der konfigurierten Quelle (lokal oder Netzwerkpfad), fuehrt es auf der Zielinstanz aus, erstellt die CommandLog-Tabelle und verifiziert die Installation. Unterstuetzt Installation auf mehreren Instanzen gleichzeitig.

Wann nutzt man sie?

Bei der Ersteinrichtung neuer SQL Server Instanzen als Teil des Standard-Onboarding-Prozesses. Bei Updates der Ola-Solution auf neue Versionen nach Veroeffentlichung. Bei Farm-weiten Rollouts wenn alle Instanzen auf denselben Stand gebracht werden muessen.

Typische Probleme

  • Manuelles Ausfuehren des Ola-Skripts ohne Verifikation - Installation unvollstaendig
  • Unterschiedliche Ola-Versionen auf verschiedenen Instanzen - inkonsistentes Verhalten
  • Installation ohne CommandLog-Pruefung - Aussfuehrungsprotokoll fehlt

Vorteile

  • Vollstaendige Installation mit automatischer Verifikation in einem Befehl
  • Idempotent: erneute Ausfuehrung aktualisiert bestehende Installation ohne Fehler
  • Unterstuetzt Offline-Installation aus lokalem Netzwerkpfad fuer restriktive Umgebungen
# Ola-Solution installieren (Quelle aus Set-sqmConfig)
Install-sqmOlaMaintenanceSolution -SqlInstance "SQL01"

# Mehrere Instanzen gleichzeitig installieren
@("SQL01","SQL02","SQL03") | Install-sqmOlaMaintenanceSolution

New-sqmOlaMaintenanceJobs - SQL Agent Jobs fuer Ola Hallengren erstellen PowerShell: FULL, DIFF, LOG Backup und IndexOptimize

Was macht die Funktion?

Erstellt die SQL Agent Jobs fuer die Ola Hallengren Maintenance Solution: drei Jobs fuer FULL, DIFFERENTIAL und LOG Backup der User-Datenbanken sowie einen Job fuer IndexOptimize. Job-Namen, Zeitplaene und Parameter werden aus der sqmSQLTool-Konfiguration gelesen und entsprechen den Unternehmensstandards.

Wann nutzt man sie?

Nach der Installation der Ola-Solution als naechster Schritt zur Einrichtung der automatischen Wartung. Nach der Migration auf einen neuen Server wenn Jobs neu erstellt werden muessen. Bei der Standardisierung der Job-Konfiguration auf allen Instanzen einer Farm.

Typische Probleme

  • Manuell erstellte Jobs mit inkonsistenten Namen und Zeitplaenen in grossen Umgebungen
  • Fehlende COMPRESS-Option bei Backups - unnoetig grosser Speicherverbrauch
  • LOG-Backup-Job fehlt oder laeuft zu selten - grosse Transaktionslogs und schlechte RPO

Vorteile

  • Standardisierte Job-Namen gemaess Unternehmenskonvention fuer alle Instanzen
  • Vollstaendige Ola-Parameter-Konfiguration direkt in der Job-Definition
  • Zeitplaene aus zentraler Konfiguration - einfache Farm-weite Anpassung
# Alle Ola Wartungs-Jobs erstellen (FULL, DIFF, LOG, IndexOptimize)
New-sqmOlaMaintenanceJobs -SqlInstance "SQL01"

# Jobs mit spezifischem Backup-Pfad und Aufbewahrungsdauer
New-sqmOlaMaintenanceJobs -SqlInstance "SQL01" -BackupPath "\\NAS\Backups\SQL01" -RetentionDays 14

New-sqmOlaSysDbBackupJob - SQL Agent Job fuer System-Datenbank Backup PowerShell erstellen: master, msdb, model

Was macht die Funktion?

Erstellt einen dedizierten SQL Agent Job fuer das Backup der SQL Server Systemdatenbanken (master, msdb, model) mit der Ola Hallengren DatabaseBackup Stored Procedure. Separate Behandlung der Systemdatenbanken mit eigenem Zeitplan, eigenem Backup-Pfad und eigenem Aufbewahrungszeitraum.

Wann nutzt man sie?

Als Pflicht-Schritt bei jeder neuen SQL Server Instanz-Einrichtung. Nach Konfigurationsaenderungen an der Instanz wenn das naechste Systemdatenbank-Backup die Aenderungen sichert. Als Bestandteil eines standardisierten DR-Konzepts das auch Systemdatenbank-Recovery abdeckt.

Typische Probleme

  • Nur User-Datenbank-Backup konfiguriert - Systemdatenbanken nicht gesichert
  • Im Disaster-Recovery-Fall muessen alle SQL-Logins, Jobs und Konfiguration manuell neu erstellt werden
  • Systemdatenbank-Backup im gleichen Job wie User-Datenbanken - Fehler beeinflussen sich gegenseitig

Vorteile

  • Dedizierter Job verhindert Gegenseitigkeit zwischen System- und User-DB-Backups
  • Systemdatenbank-Backup sichert Logins, Jobs und alle Konfigurationseinstellungen
  • Konfigurierbarer Zeitplan und Aufbewahrungsdauer unabhaengig von User-DB-Backups
# System-DB Backup Job erstellen (taeglicher FULL um 01:00 Uhr)
New-sqmOlaSysDbBackupJob -SqlInstance "SQL01"

# Mit spezifischem Backup-Pfad und Zeitplan
New-sqmOlaSysDbBackupJob -SqlInstance "SQL01" -BackupPath "\\NAS\Backups\SysDB" -ScheduleTime "010000"

New-sqmOlaUsrDbBackupJob - SQL Agent Job fuer User-Datenbank FULL Backup PowerShell mit konfigurierbarem Zeitplan

Was macht die Funktion?

Erstellt einen SQL Agent Job fuer das woechentliche FULL Backup aller User-Datenbanken per Ola Hallengren DatabaseBackup. Konfigurierbar mit Backup-Pfad, Zeitplan, Kompression, Checksums, Aufbewahrungsdauer und Ausnahmen. Ideal als separater woechentlicher FULL-Job neben taeglich DIFF und stundlichem LOG.

Wann nutzt man sie?

Als Bestandteil einer dreigliedrigen Backup-Strategie: woechentlich FULL, taeglich DIFF, stuendlich LOG. Wenn New-sqmOlaMaintenanceJobs alle drei Jobs erstellt aber ein separater FULL-Job mit anderen Parametern benoetigt wird. Bei der Konfiguration eines extra FULL-Jobs fuer bestimmte Datenbank-Gruppen.

Typische Probleme

  • Woechentlicher FULL-Backup-Job vergessen - Restore-Kette nur mit taeglich wachsenden DIFFs
  • FULL-Backup und DIFF-Backup zur selben Zeit - gegenseitige Behinderung
  • Fehlende COMPRESS-Option verdreifacht Backup-Dauer und Speicherverbrauch

Vorteile

  • Granulare Konfiguration des FULL-Jobs unabhaengig von DIFF und LOG
  • COMPRESS und CHECKSUM standardmaessig aktiviert gemaess Best Practice
  • Zeitplan-Konfiguration verhindert Ueberschneidung mit anderen Backup-Jobs
# FULL Backup Job erstellen (sonntags 22:00, Aufbewahrung 14 Tage)
New-sqmOlaUsrDbBackupJob -SqlInstance "SQL01" -BackupPath "\\NAS\Backups\SQL01" -RetentionDays 14

# FULL Backup mit spezifischem Wochentag und Zeit
New-sqmOlaUsrDbBackupJob -SqlInstance "SQL01" -BackupPath "\\NAS\Backups" -ScheduleDay "Sunday" -ScheduleTime "220000"

Test-sqmOlaInstallation - Ola Hallengren Installation pruefen PowerShell: Stored Procedures, Agent Jobs, CommandLog

Was macht die Funktion?

Prueft ob die Ola Hallengren Maintenance Solution korrekt installiert ist: Vorhandensein und Gueltigkeit der Stored Procedures (DatabaseBackup, DatabaseIntegrityCheck, IndexOptimize), CommandLog-Tabelle, SQL Agent Jobs und deren Zeitplaene. Gibt Fehlerstatus und Korrekturempfehlungen zurueck.

Wann nutzt man sie?

Nach der Installation zur Verifikation dass alle Komponenten korrekt erstellt wurden. Im regelmaessigen Compliance-Check um sicherzustellen dass die Solution nicht versehentlich modifiziert wurde. Vor einem Disaster-Recovery-Test um zu bestaetigen dass Backups konfiguriert und aktiv sind.

Typische Probleme

  • Ola-Solution installiert aber Agent Jobs nicht erstellt - Backups laufen nicht
  • CommandLog-Tabelle fehlt - kein Ausfuehrungsprotokoll vorhanden
  • Agent Jobs deaktiviert nach Instanz-Migration - Backups laufen nicht ohne Hinweis

Vorteile

  • Vollstaendiger Installations-Check in einem Befehl - kein manuelles Durchpruefen
  • Prueft auch ob Agent Jobs aktiviert sind und wann sie zuletzt erfolgreich liefen
  • Pipeline-faehig fuer Farm-weite Compliance-Pruefung aller Instanzen
# Ola-Installation auf SQL01 pruefen
Test-sqmOlaInstallation -SqlInstance "SQL01"

# Farm-weite Pruefung aller Instanzen
Get-Content "instanzen.txt" | Test-sqmOlaInstallation | Where-Object {$_.Status -ne "OK"}
Zurueck zum Index