SQL Server - Zeitpläne automatisiert verwalten
Kennst du das?
- Du installierst einen neuen SQL Server und rollst das Ola Hallengren Maintenance-Skript aus und musst nun im Nachgang noch die ganzen Zeitpläne erstellen?
- Oder, der Storage-Admin beschwert sich, dass das zentrale Backup-Laufwerk jeden Tag um 22:00 Uhr überlastet ist, weil alle SQL Server der Umgebung gleichzeitig mit dem Backup anfangen?
Die Feinjustierung von SQL Server-Zeitplänen über mehrere Server und Jobs hinweg kann sehr mühsam sein. Schnell verliert man den Überblick, welche Einstellungen aktuell auf welchem Server gelten. Die Dokumentation ist natürlich auch nie aktuell, weil die letzte Änderung erst mal nur testweise eingestellt war, dann aber doch produktiv so belassen wurde.
Da ich in mehreren Kundenumgebungen mit jeweils mehreren Servern unterwegs bin, habe ich mir für diese Arbeiten ein kleines Tool auf Basis von Powershell DSC, ein "Infrastructure as Code" / "Configuration as Code"-Tool mit der SqlServerDsc-Erweiterung gebaut, mit dem ich in einer einzigen Datei die Parameter für die Zeitpläne hinterlege und es der Konfigurationsengine überlasse, die Zeitpläne entsprechend auf dem Server zu erstellen zu ändern oder auch zu löschen. Das Schöne daran ist, dass ich die Konfigurationsdatei bei mir im Gitlab einchecken kann und damit auch immer die aktuelle Dokumentation für jeden meiner Kunden parat habe.
Den Quellcode für die Verwaltung der SQL Agent Schedules kannst Du gerne bei uns anfragen.
Das hier vorgestellte Tool ist ein Ausschnitt eines größeren Konfigurations-Skriptes, mit dem ich noch eine Monitoring-Datenbank und zugehörige Operatoren, Agent Jobs sowie Alerts und nicht zuletzt das E-Mail-Profil auf jedem betreuten SQL-Server verwalten kann.
Wenn du Fragen hierzu hast, kannst du mich gern über unser Kontaktformular kontaktieren