SQL Server Integration Services (SSIS) ist ein leistungsfähiges Tool für Datenintegration und Workflow-Automatisierung. Ein wichtiger Aspekt beim Arbeiten mit SSIS ist das Monitoring und Logging der Pakete, um sicherzustellen, dass sie korrekt und effizient ausgeführt werden. In diesem Artikel werden wir die verschiedenen Methoden des Monitorings von SSIS-Paketen untersuchen, wobei wir den Unterschied zwischen dem Logging in MSDB und SSISDB hervorheben.

Überblick über SSIS-Paket-Logging

Das Logging von SSIS-Paketen ermöglicht es, detaillierte Informationen über die Ausführung der Pakete zu erfassen. Diese Informationen können genutzt werden, um Fehler zu diagnostizieren, die Leistung zu überwachen und die Einhaltung von Geschäftsanforderungen sicherzustellen. Es gibt mehrere Methoden, um das Logging in SSIS zu implementieren, wobei die beiden Hauptspeicherorte für Logs MSDB und SSISDB sind.

Logging in MSDB

MSDB ist eine Systemdatenbank in SQL Server, die für Aufgaben wie Job-Scheduling und -Überwachung verwendet wird. SSIS-Pakete können so konfiguriert werden, dass ihre Logs in MSDB gespeichert werden. Hier sind einige Merkmale und Vorteile des Loggings in MSDB:

  1. Zentralisierte Verwaltung:
    • MSDB ermöglicht die zentrale Verwaltung von Logs für verschiedene Pakete und Jobs. Dies erleichtert das Monitoring und die Fehlerbehebung in Umgebungen mit mehreren Paketen.
  2. Job- und Task-Orientiertes Logging:
    • Da MSDB häufig für das Job-Scheduling verwendet wird, bietet es eine enge Integration mit SQL Server Agent Jobs. Logs können im Kontext von Job-Ausführungen erfasst werden, was eine detaillierte Nachverfolgung von SSIS-Task-Ausführungen ermöglicht.
  3. Historische Daten:
    • MSDB speichert historische Log-Daten, die für Langzeitanalysen und Audits nützlich sind. Dies hilft dabei, Trends zu erkennen und wiederkehrende Probleme zu identifizieren.
  4. Konfigurierbarkeit:
    • Benutzer können spezifische Events auswählen, die sie loggen möchten, wie Fehler, Warnungen, Informationen und benutzerdefinierte Nachrichten. Dies ermöglicht eine flexible und anpassbare Logging-Strategie.

Beispiel für das Einrichten des Loggings in MSDB

Um das Logging in MSDB zu konfigurieren, können Sie die SSIS Designer-Umgebung verwenden oder T-SQL-Skripte schreiben, um die erforderlichen Log-Einstellungen festzulegen. Hier ist ein Beispiel, wie Sie das Logging in MSDB mithilfe der SSIS Designer-Umgebung einrichten:

  1. Öffnen Sie Ihr SSIS-Paket im SQL Server Data Tools (SSDT).
  2. Gehen Sie zum Reiter “SSIS” und wählen Sie “Logging…”.
  3. Aktivieren Sie das Logging und wählen Sie “SQL Server” als Protokollanbieter.
  4. Wählen Sie die Verbindung zu Ihrer MSDB-Datenbank aus.
  5. Wählen Sie die Ereignisse aus, die Sie loggen möchten, wie OnError, OnWarning, und OnInformation.
  6. Speichern Sie Ihre Einstellungen und führen Sie das Paket aus.

Relevante Tabellen für das Logging von SSIS in der MSDB

Beim Monitoring und Logging von SSIS-Paketen in der MSDB-Datenbank sind mehrere Tabellen von Bedeutung. Diese Tabellen speichern detaillierte Informationen über die Ausführung und den Status von SSIS-Paketen und bieten eine umfassende Grundlage für die Überwachung und Fehlerdiagnose. Hier sind die wichtigsten Tabellen und ihre Inhalte:

sysssislog

Die Tabelle sysssislog ist speziell für das Logging von SSIS-Paketen konzipiert. Sie speichert detaillierte Log-Einträge für verschiedene Ereignisse, die während der Ausführung von SSIS-Paketen auftreten. Dies umfasst Informationen über Fehler, Warnungen, Informationsmeldungen und andere benutzerdefinierte Ereignisse. Die Tabelle ermöglicht eine granulare Nachverfolgung der Paketaktivitäten und ist besonders nützlich für die Fehlerdiagnose und Leistungsüberwachung.

sysjobs

Die sysjobs-Tabelle speichert Informationen über alle SQL Server-Agent-Jobs, einschließlich derjenigen, die SSIS-Pakete ausführen. Diese Tabelle enthält grundlegende Details zu den Jobs wie ihre Namen, Beschreibungen, und den Status (aktiv oder inaktiv). Sie ist wichtig für die Verwaltung und Überwachung von geplanten SSIS-Paketen, die als Teil von SQL Server-Agent-Jobs ausgeführt werden.

sysjobsteps

Die Tabelle sysjobsteps enthält die einzelnen Schritte, die in jedem SQL Server-Agent-Job definiert sind. Für SSIS-Pakete, die als Teil von SQL Server-Agent-Jobs ausgeführt werden, speichert diese Tabelle die spezifischen Schritte, die zur Ausführung des Pakets erforderlich sind. Dies umfasst Details wie den Namen des Schritts, den Subsystemtyp (z.B. SSIS), und den Befehl oder das Skript, das ausgeführt wird. Diese Tabelle ist nützlich, um den genauen Ablauf und die Konfiguration von Jobs nachzuvollziehen.

sysjobhistory

Die sysjobhistory-Tabelle speichert den Verlauf der Ausführungen von SQL Server-Agent-Jobs, einschließlich derjenigen, die SSIS-Pakete ausführen. Diese Tabelle enthält historische Daten über die Ausführungen, wie das Datum und die Uhrzeit der Ausführung, den Status (erfolgreich, fehlgeschlagen, abgebrochen), und detaillierte Nachrichten, die das Ergebnis der Ausführung beschreiben. Sie ist essentiell für die Analyse der Job- und Paket-Performance sowie für die Fehlerdiagnose über einen längeren Zeitraum.

sysssispackages

Die Tabelle sysssispackages speichert Informationen über die SSIS-Pakete, die in der MSDB-Datenbank abgelegt sind. Sie enthält Details zu den Paketen wie ihre Namen, Beschreibungen, Erstellungs- und Änderungsdaten und die binären Paketdaten. Diese Tabelle ist wichtig für die Verwaltung und Organisation der SSIS-Pakete innerhalb der MSDB-Datenbank und ermöglicht das einfache Abrufen und Bereitstellen von Paketen.

sysssispackagefolders

Die sysssispackagefolders-Tabelle organisiert die in der MSDB-Datenbank gespeicherten SSIS-Pakete in einer hierarchischen Ordnerstruktur. Sie speichert Informationen über die Ordner, einschließlich ihrer Namen und übergeordneten Ordner. Diese Tabelle hilft bei der strukturierten Verwaltung und Navigation der SSIS-Pakete, indem sie eine logische Gruppierung und Organisation der Pakete ermöglicht.

Zusammenfassung

Das Monitoring und Logging von SSIS-Paketen in der MSDB-Datenbank wird durch eine Reihe spezifischer Tabellen unterstützt, die detaillierte Informationen über die Ausführung und den Status der Pakete speichern. Diese Tabellen ermöglichen eine granulare Überwachung und Fehlerdiagnose und tragen zur effizienten Verwaltung und Optimierung von SSIS-Paketen bei. Durch das Verständnis und die Nutzung dieser Tabellen können Administratoren und Entwickler die Performance und Zuverlässigkeit ihrer SSIS-Lösungen verbessern.

Logging in SSISDB

SSISDB ist die Katalogdatenbank für SSIS, die mit SQL Server 2012 eingeführt wurde. Sie bietet eine umfassendere und speziellere Lösung für das Logging und Monitoring von SSIS-Paketen. Hier sind einige der Hauptmerkmale und Vorteile des Loggings in SSISDB:

  1. Integrierter SSIS-Katalog:
    • SSISDB bietet einen integrierten Katalog für die Speicherung und Verwaltung von SSIS-Paketen. Dies erleichtert die Organisation und den Zugriff auf Pakete und deren Logs.
  2. Detaillierte und Erweiterte Protokollierung:
    • SSISDB erfasst detaillierte Protokolle auf Paket-, Task- und Ereignisebene. Es bietet eine tiefere Einsicht in die Ausführung der Pakete und ermöglicht eine granulare Analyse von Fehlern und Leistungsproblemen.
  3. Ereignisbasierte Benachrichtigungen:
    • SSISDB ermöglicht die Konfiguration von Benachrichtigungen basierend auf bestimmten Ereignissen. Dies hilft dabei, proaktiv auf Fehler oder Leistungsprobleme zu reagieren.
  4. Eingebaute Berichte und Dashboards:
    • SSISDB bietet integrierte Berichte und Dashboards zur Überwachung der Paket- und Projektleistung. Diese visuellen Tools erleichtern das Verständnis der Paketaktivitäten und -leistung.
  5. Einfache Bereitstellung und Verwaltung:
    • Mit SSISDB können Pakete einfach bereitgestellt und verwaltet werden. Der Deployment-Wizard und die Verwaltungsoberfläche im SQL Server Management Studio (SSMS) erleichtern das Deployment und die Verwaltung von Paketen.

Beispiel für das Einrichten des Loggings in SSISDB

Um das Logging in SSISDB zu konfigurieren, können Sie die folgenden Schritte befolgen:

  1. Stellen Sie sicher, dass SSISDB in Ihrer SQL Server-Instanz installiert und konfiguriert ist.
  2. Öffnen Sie Ihr SSIS-Paket im SQL Server Data Tools (SSDT).
  3. Gehen Sie zum Reiter “SSIS” und wählen Sie “Logging…”.
  4. Aktivieren Sie das Logging und wählen Sie “SSISDB” als Protokollanbieter.
  5. Wählen Sie die Ereignisse aus, die Sie loggen möchten, wie OnError, OnWarning, und OnInformation.
  6. Speichern Sie Ihre Einstellungen und führen Sie das Paket aus.

Relevante Tabellen für das Logging von SSIS in der SSISDB

Die SSISDB-Datenbank, die speziell für SQL Server Integration Services (SSIS) entwickelt wurde, bietet eine umfassende und spezialisierte Lösung für das Logging und Monitoring von SSIS-Paketen. Hier sind die wichtigsten Tabellen der SSISDB und ihre Inhalte, die detaillierte Informationen über die Ausführung und den Status von SSIS-Paketen speichern:

catalog.executions

Die Tabelle catalog.executions speichert Informationen über jede Ausführung von SSIS-Paketen. Sie enthält detaillierte Daten wie den Start- und Endzeitpunkt, den Status der Ausführung (z.B. erfolgreich, fehlgeschlagen), und den Benutzer, der die Ausführung gestartet hat. Diese Tabelle ist essenziell für die Überwachung der Paketaktivitäten und bietet eine umfassende Historie aller Paketläufe.

catalog.operation_messages

Die Tabelle catalog.operation_messages enthält Protokollnachrichten, die während der Ausführung von SSIS-Paketen generiert werden. Sie umfasst detaillierte Nachrichten zu verschiedenen Ereignissen, wie Fehler, Warnungen und Informationsmeldungen. Diese Tabelle ermöglicht eine tiefe Einsicht in die Ereignisse, die während der Paketverarbeitung auftreten, und ist unerlässlich für die Fehlerdiagnose und Leistungsüberwachung.

catalog.event_messages

catalog.event_messages speichert detaillierte Informationen über alle Ereignisse, die während der Ausführung von SSIS-Paketen auftreten. Dies beinhaltet Ereignisse auf Paket- und Task-Ebene, wie Start- und Endzeiten, Ereignisnamen und Nachrichten. Diese Tabelle hilft dabei, die Ausführungsdetails granular zu analysieren und Probleme zu identifizieren.

catalog.validations

Die Tabelle catalog.validations enthält Informationen über die Validierungen, die vor der Ausführung von SSIS-Paketen durchgeführt werden. Sie speichert Details wie den Validierungsstatus, Validierungszeitpunkt und die Ergebnisse der Validierung. Diese Informationen sind wichtig, um sicherzustellen, dass Pakete vor ihrer Ausführung korrekt konfiguriert sind und potenzielle Probleme frühzeitig erkannt werden.

catalog.operation_statistics

catalog.operation_statistics bietet statistische Daten über die Ausführungen von SSIS-Paketen. Diese Tabelle enthält aggregierte Informationen wie die Anzahl der erfolgreichen und fehlgeschlagenen Ausführungen, die durchschnittliche Ausführungszeit und andere Leistungskennzahlen. Sie ist nützlich für die Performance-Analyse und das Monitoring der Paketlaufzeiten.

catalog.operations

Die Tabelle catalog.operations speichert allgemeine Informationen über alle Operationen, die in SSISDB durchgeführt werden, einschließlich Paketbereitstellungen und -ausführungen. Sie enthält Details wie den Operationstyp, Start- und Endzeitpunkt sowie den Status der Operation. Diese Tabelle bietet einen umfassenden Überblick über alle Aktivitäten innerhalb der SSISDB.

catalog.packages

Die Tabelle catalog.packages enthält Informationen über die in SSISDB gespeicherten SSIS-Pakete. Sie speichert Details wie den Paketnamen, die Projektzugehörigkeit, die Erstellungs- und Änderungsdaten und die Version des Pakets. Diese Tabelle ist wichtig für die Verwaltung und Organisation der SSIS-Pakete innerhalb der SSISDB.

catalog.projects

catalog.projects speichert Informationen über die in SSISDB verwalteten Projekte. Diese Tabelle enthält Details zu den Projekt-Namen, Beschreibungen, Erstellungs- und Änderungsdaten und Versionen. Sie hilft bei der Organisation und Verwaltung der Projekte und ihrer zugehörigen Pakete.

catalog.event_handlers

Die Tabelle catalog.event_handlers speichert Informationen über die Ereignishandler, die in den SSIS-Paketen definiert sind. Sie enthält Details wie den Namen des Ereignishandlers, das Ereignis, das er behandelt, und die Konfiguration des Handlers. Diese Tabelle ist nützlich, um zu verstehen, wie Pakete auf bestimmte Ereignisse reagieren und um die Fehlerbehandlung zu analysieren.

Zusammenfassung

Die SSISDB-Datenbank bietet eine spezialisierte und umfassende Lösung für das Logging und Monitoring von SSIS-Paketen. Die oben beschriebenen Tabellen speichern detaillierte Informationen über die Ausführung, Validierung und Verwaltung von SSIS-Paketen und Projekten. Sie ermöglichen eine granulare Überwachung, detaillierte Fehlerdiagnose und Performance-Analyse, was zur Effizienz und Zuverlässigkeit von SSIS-Lösungen beiträgt. Durch das Verständnis und die Nutzung dieser Tabellen können Administratoren und Entwickler ihre SSIS-Umgebungen optimal überwachen und verwalten.

Unterschiede zwischen MSDB & SSISDB

MerkmalMSDBSSISDB
VerwendungszweckAllgemeine SQL Server-JobverwaltungSpezifische Verwaltung und Protokollierung von SSIS-Paketen
IntegrationEnge Integration mit SQL Server Agent JobsIntegration mit SSIS-Katalog und Bereitstellungsmodelle
ProtokollierungstiefeGrundlegende Protokollierung auf Job-EbeneDetaillierte und granulare Protokollierung auf Paket-, Task- und Ereignisebene
BenachrichtigungenManuelle Konfiguration erforderlichEreignisbasierte Benachrichtigungen integriert
Berichte und DashboardsKeine integrierten BerichteIntegrierte Berichte und Dashboards zur Überwachung
VerwaltungManuelle Verwaltung über SQL Server Management StudioEinfache Verwaltung über SSISDB-Benutzeroberfläche und Bereitstellungsassistent

Integration Services Catalog und SQL Server Agent: Unterschiede in der Datenquelle der Berichte

Beim Arbeiten mit SQL Server Integration Services (SSIS) und dem SQL Server Management Studio (SSMS) gibt es zwei Hauptbereiche, in denen man auf Berichte und Log-Daten zugreifen kann: den “Integration Services Catalog” und den “SQL Server Agent”. Diese beiden Bereiche greifen auf unterschiedliche Datenbanken zu, um ihre Berichte und Historieninformationen bereitzustellen.

Integration Services Catalog und SSISDB

Wenn Sie unter “Integration Services Catalog” die Standard-Reports aufrufen, greifen diese Berichte auf die SSISDB-Datenbank zu. Die SSISDB ist eine spezielle Datenbank, die speziell für die Verwaltung und Überwachung von SSIS-Paketen entwickelt wurde. Sie speichert detaillierte Informationen über die Ausführung, Validierung und Konfiguration von SSIS-Paketen und Projekten. Die Standard-Reports im Integration Services Catalog nutzen diese Informationen, um umfassende und detaillierte Berichte zu generieren. Diese Berichte umfassen beispielsweise Ausführungsstatistiken, Fehlermeldungen, Leistungskennzahlen und andere wichtige Daten, die für die Überwachung und Fehlerdiagnose von SSIS-Paketen erforderlich sind. Da die SSISDB speziell für diesen Zweck entwickelt wurde, bietet sie eine besonders granulare und spezialisierte Sicht auf die Aktivitäten der SSIS-Pakete.

SQL Server Agent und MSDB

Im Gegensatz dazu, wenn Sie unter “SQL Server Agent” die Historie von Jobs einsehen, greifen Sie auf die MSDB-Datenbank zu. Die MSDB-Datenbank ist die Standarddatenbank für den SQL Server-Agent und speichert Informationen über alle geplanten Jobs, einschließlich derjenigen, die SSIS-Pakete ausführen. Die Job-Historie in MSDB enthält grundlegende Informationen über die Ausführung von Jobs, wie Start- und Endzeiten, Ausführungsstatus und Fehlermeldungen. Diese Informationen sind nützlich, um die Gesamtaktivität und den Status der geplanten Jobs zu überwachen. Allerdings sind die Informationen in MSDB weniger spezialisiert und weniger detailliert im Vergleich zu den Berichten, die aus der SSISDB generiert werden.

Fazit

Das Monitoring und Logging von SSIS-Paketen ist entscheidend für den reibungslosen Betrieb und die Fehlerbehebung in einer Datenintegrationsumgebung. Während MSDB eine solide Lösung für grundlegendes Logging und Integration mit SQL Server Agent Jobs bietet, stellt SSISDB eine umfassendere und speziellere Lösung dar, die detailliertere Protokollierung, erweiterte Benachrichtigungen und eingebaute Berichte und Dashboards bietet. Die Wahl zwischen MSDB und SSISDB hängt von den spezifischen Anforderungen Ihrer Umgebung und Ihren Präferenzen hinsichtlich Verwaltung und Überwachung ab.

Mit diesem Leitfaden haben Sie nun einen umfassenden Überblick über die Möglichkeiten des Loggings und Monitorings von SSIS-Paketen. Nutzen Sie diese Informationen, um die für Ihre Bedürfnisse optimale Lösung zu implementieren und die Effizienz Ihrer SSIS-Pakete zu maximieren.

Links:

Bücher

Tutorial