Freigeben über


Datensammlerprotokollierung

Der Datensammler erfasst und protokolliert verschiedene Arten von Informationen für die einzelnen Sammlungssätze und die zugehörigen Sammlungspakete. Diese Informationen, die in msdb-Tabellen geschrieben werden, stellen Informationen über den aktuellen Zustand des Sammlungssatzes und das Ergebnis der Paketausführung bereit. Diese Protokolltabellen bieten außerdem statistische Informationen über jeden Sammlungssatz und die zugehörigen Pakete. Die folgenden Arten von Informationen sind zum Überwachen und Analysieren der Datensammlung verfügbar:

  • Die derzeit ausgeführten Sammlungssätze.

  • Der Verlauf eines ausgeführten Sammlungssatzes.

  • Die Hierarchie von Paketen eines bestimmten Sammlungssatzes, die als Teil dieser Sammlung ausgeführt wurden.

  • Die Start- und Beendigungszeiten, die Dauer, der Abschlussstatus und die Anzahl der verarbeiteten Zeilen für jedes Paket.

  • Das Paket, das den Fehler verursacht hat, wenn ein Fehler beim Ausführen eines Sammlungssatzes aufgetreten ist.

  • Die Komponente in dem Paket, bei dem ein Fehler aufgetreten ist, sowie die Fehlermeldung, wenn ein Fehler beim Ausführen eines Pakets aufgetreten ist.

  • Die Sequenz von Protokollereignissen für jedes Paket, die das jeweilige Paket für jede Ausführung protokolliert hat.

SSIS-Rolle in der Datensammlerprotokollierung

Der Datensammler implementiert die Protokollierung mithilfe von gespeicherten Prozeduren und Funktionen für SQL Server 2008 Integration Services (SSIS)-Taskausführung sowie -Protokollierung. Diese Funktionen erstellen eine Zusammenfassung und ausführliche Protokolleinträge für Protokollanbieter, wenn Ereignisse zur Laufzeit auftreten. Weitere Informationen finden Sie unter Implementieren der Protokollierung in Pakete.

Protokollierte Ereignisse stellen Bezugspunkte für alle Phasen der Programmausführung bereit. Jeder Datensatz eines Ereignisses wird der Ausführungs-ID des Pakets zugeordnet, unter dem ein Task ausgeführt wurde. Der Datensammler ordnet diese IDs den spezifischen Paketen für das Sammeln und Hochladen von Daten zu.

Protokollieren von Sammlungssätzen und Paketen

Die allgemeine Architektur und Datenbehandlung für die Datensammlerprotokollierung ist wie folgt:

  • Sammlungssatzinformationen, die vom Datensammler zur Laufzeit bereitgestellt wurden, werden mithilfe einer gespeicherten Prozedur in einer Datensammlertabelle gespeichert. Jeder Datensatz erhält eine log_id (Protokoll-ID), die zum Verweisen auf Tabelleneinträge und zum Zuordnen eines Pakets zur SSIS-Ausführungs-ID verwendet wird.

  • Paketinformationen werden zu Beginn und Ende der Paketausführung protokolliert. Diese Protokollierung wird durchgeführt, indem ein Transact-SQL-Task zu Beginn und Ende des Kontrollflusses für jedes Paket ausgeführt wird.

    • Während das Paket ausgeführt wird, werden vom Datensammler periodische und statistische Aktualisierungen vorgenommen. Jedes Paket verfügt über einen globalen Fehlerhandlertask (durch SSIS-Paketereignisse implementiert), der Fehlerereignisse protokolliert. Dies wird durch das Platzieren des SSIS-Tasks "SQL ausführen" im Kontrollfluss erzielt, um die erforderliche Ereignisprotokollierung bereitzustellen. Weitere Informationen finden Sie unter SQL ausführen (SSIS-Task) und Ablaufsteuerungselemente.

    • Von SSIS generierte Ereignisse werden in der von SSIS definierten Tabelle dbo.sysssislog mithilfe der gespeicherten Prozedur dbo.sp_dts_addlogentry protokolliert.

  • Bei Beendigung des Pakets wird ein Success- oder Failure-Ereignis protokolliert.

  • Wenn der Sammlungssatz angehalten wird, werden diese Informationen protokolliert. Wie bei einem Paket wird ein Success- oder Failure-Ereignis protokolliert.

Die vom Datensammler generierten Daten werden in der Tabelle dbo.syscollector_execution_log_internal gespeichert, die mit dbo.sysssislog verknüpft ist. Damit wird eine vollständige Übersicht über die Sammlungssatzausführung bereitgestellt. Diese Tabellen werden im folgenden Abschnitt ausführlicher beschrieben.

Protokollieren von Tabellen

Die Protokolltabellen und die zugehörigen Spalten sind in der folgenden Tabelle aufgelistet. Im Abschnitt "Zugreifen auf und Anzeigen von Protokolldaten" weiter unten in diesem Thema werden die Funktionen und Sichten erläutert, die Sie zum Abrufen von ausführlichen Informationen über die Datentypen und Inhalte einer Tabelle benötigen.

Tabellenname

Beschreibung

syscollector_execution_log_internal

Eine Datensammlertabelle zum Speichern von Ausführungsinformationen. Sie weist die folgenden Spalten auf:

  • log_id

  • parent_log_id

  • collection_set_id

  • collection_item_id

  • start_time

  • last_iteration_time

  • finish_time

  • runtime_execution_mode

  • status

  • operator

  • package_id

  • package_execution_id

  • failure_message

syscollector_execution_stats_internal

Eine Datensammlertabelle zum Speichern von statistischen Informationen. Sie weist die folgenden Spalten auf:

  • log_id

  • task_name

  • execution_row_count_in

  • execution_row_count_out

  • execution_row_count_errors

  • execution_time_ms

  • log_time

sysssislog

Eine von SSIS definierte Tabelle für Ereignisinformationen, wie beispielsweise den Beginn eines Sammlungssatzes oder eines Pakets sowie Warnungen und Fehler. Weitere Informationen finden Sie unter sysssislog (Transact-SQL).

Wichtiger HinweisWichtig

Ändern Sie Daten in den Protokolltabellen nicht. Die in diesen Tabellen enthaltenen Daten müssen auf besondere Art und Weise eingefügt, aktualisiert und gelöscht werden, die von gespeicherten Prozeduren erzwungen wird. Die Tabellennamen und -definitionen können sich zur Laufzeit ändern. Sie ändern sich mit Sicherheit, wenn Sie die Daten aktualisieren. Darüber hinaus kann es auch in künftigen Versionen zu geänderten Tabellennamen und -definitionen kommen. Statt direkt auf die Tabellen zuzugreifen, sollten Sie zum Zugriff auf die Instanz- und Anwendungsdaten die dokumentierten gespeicherten Prozeduren und Sichten verwenden, die vom Datensammler bereitgestellt werden.

Protokollbeibehaltung

Ein Sammlungssatzprotokoll wird für dieselbe Dauer wie die Daten im Verwaltungs-Data Warehouse für den Sammlungssatz beibehalten. Dies wird von der Beibehaltungsdauer definiert, die Sie für jeden Sammlungssatz konfigurieren können. Wenn die Beibehaltungsdauer abläuft, löscht ein SQL Server-Agentauftrag die Daten aus dem Protokoll.

Protokolliergrade

Es werden drei Grade der Protokollierung bereitgestellt, mit denen die verschiedenen Sammlungsszenarien behandelt werden. Dadurch wird sichergestellt, dass Sie bei Bedarf über die erforderlichen Daten zur Durchführung einer Problembehandlung für einen Sammlungssatz oder ein Paket verfügen. Sie können für jeden Sammlungssatz verschiedene Protokolliergrade entsprechend Ihren Protokollierungsanforderungen festlegen.

In der folgenden Tabelle sind die verfügbaren Protokollierungsoptionen beschrieben.

Grad

Beschreibung

0

Der Standardprotokolliergrad. Protokolliert Ausführungsinformationen sowie die folgenden SSIS-Ereignisse:

  • Starten oder Beenden eines Sammlungssatzes

  • Starten oder Beenden eines Pakets

  • Fehlerinformationen

1

Kombiniert die Protokollierung des Grads 0 und die folgenden Ereignisse:

  • Ausführungsstatistiken

  • Kontinuierliche Ausführung der Sammlung

  • Warnungsereignisse von SSIS

2

Kombiniert die Protokollierung des Grads 1 und ausführliche SSIS-Ereignisse.

In der Standardeinstellung ist der Protokolliergrad 0. Grad 0 wird verwendet, um übermäßig viele Protokollmeldungen zu vermeiden, wie z. B. die Warnungsereignisse, die durch die Protokollierung vom Grad 1 generiert werden. Diese Warnungsereignisse enthalten möglicherweise Leistungsvorschläge von SSIS, die nicht vom Benutzer korrigiert werden können.

Grad 2 bietet zusätzliche Ereignisinformationen, die zur erweiterten Problembehandlung verwendet werden können.

SSIS-Ereignisse

Die Datensammlerpakete verwenden den SQL Server-Ereignisanbieter. Die in der folgenden Tabelle beschriebenen Ereignisse werden protokolliert und sind für die Anzeige verfügbar.

Ereignisname

Protokolliergrad

Beschreibung

PackageBegin

0

Ein Standardereignis, das immer generiert wird. Dieses Ereignis kann nicht deaktiviert werden.

PackageEnd

0

Ein Standardereignis, das immer generiert wird. Dieses Ereignis kann nicht deaktiviert werden.

OnError

0

Ein Fehlerereignis.

OnWarning

1

Ein Warnungsereignis.

PipelineBufferLeak

2

Enthält Informationen zu einer beliebigen Komponente, in der Puffer beibehalten wurden, nachdem der Puffer-Manager angehalten wurde. Ein aufrecht erhaltener Puffer blockiert die Freigabe von Pufferressourcen und kann Speicherverluste verursachen. Dieser Protokolleintrag stellt den Namen der Komponente und die ID des Puffers bereit.

PipelineExecutionPlan

2

Berichtet den Ausführungsplan des Datenflusses. Der Ausführungsplan stellt Informationen dazu bereit, wie Puffer an Komponenten gesendet werden. Diese Informationen beschreiben gemeinsam mit dem PipelineExecutionTrees-Protokolleintrag, was innerhalb eines Datenflusstasks geschieht.

PipelineExecutionTrees

2

Berichtet die Ausführungsstrukturen des Layouts im Datenfluss. Das Zeitplanungsmodul des Datenflusses verwendet die Strukturen zum Erstellen des Ausführungsplans für den Datenfluss.

PipelineInitialization

2

Enthält Initialisierungsinformationen über den Task. Zu diesen Informationen gehören die Verzeichnisse für die temporäre Speicherung von BLOB (Binary Large Object)-Daten, die Standardpuffergröße und die Anzahl der Zeilen in einem Puffer. Je nach Konfiguration des Datenflusstasks können mehrere Protokolleinträge geschrieben werden.

ExecuteSQLExecutingQuery

2

Enthält Informationen zu den Ausführungsphasen der SQL-Anweisung. Protokolleinträge werden geschrieben, wenn der Task eine Verbindung mit der Datenbank herstellt, wenn der Task beginnt, die SQL-Anweisung vorzubereiten, und nachdem die Ausführung der SQL-Anweisung abgeschlossen wurde. Der Protokolleintrag für die Vorbereitungsphase schließt die vom Task verwendete SQL-Anweisung ein.

FileSystemOperation

2

Berichtet den vom Task durchgeführten Vorgang. Der Protokolleintrag wird geschrieben, wenn der Dateisystemvorgang begonnen wird, und enthält Informationen über die Quelle und das Ziel.

ExecuteProcessExecutingProcess

2

Enthält Informationen zu dem Prozess, für dessen Ausführung der Task konfiguriert ist.

Es werden zwei Protokolleinträge geschrieben. Der eine Protokolleintrag enthält Informationen über den Namen und Speicherort der vom Task ausgeführten ausführbaren Datei, im anderen Eintrag wird das Beenden der ausführbaren Datei erfasst.

Zugreifen auf und Anzeigen von Protokolldaten

Sie können programmgesteuert auf Daten zugreifen und sie programmgesteuert anzeigen, indem Sie die bereitgestellten Funktionen und Sichten verwenden. Sie können auch den Protokolldatei-Viewer im Management Studio-Objekt-Explorer verwenden, um die Protokolle anzuzeigen. Weitere Informationen finden Sie unter Vorgehensweise: Anzeigen von Auflistsatzprotokollen.

In der folgenden Tabelle werden die Funktionen und die Sichten beschrieben, die zum Zugreifen auf Protokolldaten verwendet werden können.

Name

Beschreibung

fn_syscollector_get_execution_details (Transact-SQL)

Gibt ausführliche Informationen über Protokolle von Sammlungssätzen und Paketen für die angeforderte "log_id" (Protokoll-ID) sowie die zugehörigen abhängigen Protokolleinträge zurück.

fn_syscollector_get_execution_stats (Transact-SQL)

Gibt einen Statistiksatz für die angeforderte "log_id" (Protokoll-ID) zurück. Die Statistik wird auf Grundlage von Einträgen in der syscollector_execution_stats-Sicht berechnet.

syscollector_execution_log (Transact-SQL)

Stellt eine Sicht der syscollector_execution_log_internal-Tabelle bereit.

syscollector_execution_log_full (Transact-SQL)

Stellt eine ausführliche Sicht der syscollector_execution_log_internal-Tabelle bereit und zeigt die Protokolleinträge in einer Hierarchie an, wobei mit dem Sammlungsprotokolleintrag höchster Ebene begonnen wird und dann alle Pakete durchlaufen werden, die als Teil einer Sammlungssatzausführung ausgeführt wurden.

syscollector_execution_stats (Transact-SQL)

Stellt eine 1:1-Sicht der syscollector_execution_stats_internal-Tabelle bereit.