Behandlung von Problemen mit Paketausführungstools
Integration Services enthält Funktionen und Tools, die Sie zur Behandlung von Problemen beim Ausführen von Paketen nach deren Fertigstellung und Bereitstellung verwenden können.
SQL Server-Datentools (SSDT) stellt zur Entwurfszeit Breakpoints zum Unterbrechen der Paketausführung, das Statusfenster sowie Daten-Viewer zum Überwachen der Daten beim Durchlaufen des Datenflusses zur Verfügung. Bei der Ausführung von bereitgestellten Paketen sind diese Funktionen jedoch nicht verfügbar. Folgende Haupttechniken zum Behandeln von Problemen mit bereitgestellten Paketen sind verfügbar:
Abfangen und Behandeln von Paketfehlern mithilfe von Ereignishandlern
Aufzeichnen von fehlerhaften Daten mithilfe von Fehlerausgaben
Nachverfolgen der Paketausführungsschritte mithilfe der Protokollierung
Sie können außerdem die folgenden Tipps und Techniken verwenden, um Probleme mit ausgeführten Paketen zu vermeiden:
Sicherstellen der Datenintegrität mithilfe von Transaktionen. Weitere Informationen finden Sie unter Integration Services-Transaktionen.
Erneutes Ausführen von Paketen ab dem Punkt, an dem der Fehler aufgetreten ist, mithilfe von Prüfpunkten. Weitere Informationen finden Sie unter Neustarten von Paketen mit Prüfpunkten.
Abfangen und Behandeln von Paketfehlern mithilfe von Ereignishandlern
Sie können auf viele Ereignisse, die vom Paket und den Objekten im Paket ausgelöst wurden, mit Ereignishandlern reagieren.
- Erstellen eines Ereignishandlers für das OnError-Ereignis. Sie können im Ereignishandler den Task Mail senden verwenden, um einen Administrator über den Fehler zu benachrichtigen. Mit einem Skripttask und benutzerdefinierter Logik können Sie Systeminformationen zur Problembehandlung abrufen, oder Sie können einen Cleanup der temporären Ressourcen und unvollständigen Ausgaben durchführen. Weitere Informationen finden Sie unter Integration Services-Ereignishandler (SSIS).
Behebung von Problemen mit fehlerhaften Daten mithilfe von Fehlerausgaben
Sie können die bei vielen Datenflusskomponenten verfügbare Fehlerausgabe verwenden, um Zeilen mit Fehlern an ein anderes Ziel zur späteren Analyse weiterzuleiten.
Aufzeichnen von fehlerhaften Daten mithilfe von Fehlerausgaben Senden Sie Zeilen, die Fehler enthalten, an eine anderes Ziel, z. B. an eine Fehlertabelle oder eine Textdatei. Die Fehlerausgabe fügt automatisch zwei numerische Spalten mit der Nummer des Fehlers, der zum Abweisen der Zeile führte, und der ID der Spalte, in welcher der Fehler auftrat, hinzu. Weitere Informationen finden Sie unter Fehlerbehandlung in Daten.
Hinzufügen von beschreibenden Informationen zu den Fehlerausgaben. Fügen Sie zusätzlich zu den beiden von der Fehlerausgabe bereitgestellten numerischen Bezeichnern beschreibende Informationen hinzu, um die Analyse der Fehlerausgabe zu vereinfachen.
Hinzufügen der Fehlerbeschreibung. Die Fehlerbeschreibungen können sehr leicht mithilfe der Skriptkomponente nachgeschlagen werden. Weitere Informationen finden Sie unter Erweitern einer Fehlerausgabe mit der Skriptkomponente.
Hinzufügen des Namens der Fehlerspalte. Das Abrufen des zur Spalten-ID gehörenden Spaltennamens (die Spalten-ID wird von der Fehlerausgabe gespeichert) mithilfe der Skriptkomponente ist nicht einfach und erfordert zusätzliche Arbeitsschritte. Jede Spalten-ID in einem Datenfluss ist innerhalb dieses Datenflusstasks eindeutig und wird zur Entwurfszeit permanent im Paket gespeichert. Folgende Vorgehensweise wird zum Hinzufügen des Spaltennamens zur Fehlerausgabe empfohlen. Ein Beispiel zur Verwendung dieser Methode finden Sie unter Hinzufügen des Fehlerspaltennamens zu einer Fehlerausgabe auf dougbert.com.
Erstellen einer Nachschlagetabelle für Spaltennamen. Erstellen Sie eine separate Anwendung, die die Integration Services-API zum Ausführen einer Iteration durch alle gespeicherten Pakete, alle Datenflüsse im Paket, alle Objekte im Datenfluss sowie alle Eingaben und Ausgaben im Datenflussobjekt verwendet. Die Anwendung sollte die Spalten-IDs und die Namen aller Spalten in einer Nachschlagetabelle zusammen mit der ID des übergeordneten Datenflusstasks und der ID des Pakets permanent speichern.
Hinzufügen des Spaltennamens zur Ausgabe. Fügen Sie der Fehlerausgabe eine Transformation für Suche hinzu, die den Spaltennamen in der im vorherigen Schritt erstellten Nachschlagetabelle nachschlägt. Zum Nachschlagen können die Spalten-ID in der Fehlerausgabe, die Paket-ID (verfügbar über die Systemvariable System::PackageID) und die ID des Datenflusstasks (verfügbar über die Systemvariable System::TaskID) verwendet werden.
Behandlung von Problemen bei der Paketausführung mithilfe von Vorgangsberichten
In SQL Server Management Studio sind Standardvorgangsberichte verfügbar, um Sie zu unterstützen, Integration Services-Pakete, die im Integration Services-Katalog bereitgestellt werden, zu überwachen. Sie können die Berichte zu Paketen verwenden, um den Status und Verlauf von Paketen anzuzeigen und ggf. die Ursache von Fehlern zu identifizieren.
Weitere Informationen finden Sie unter Behandlung von Problemen in Berichten für die Paketausführung.
Behebung von Problemen bei der Paketausführung mithilfe von SSISDB-Sichten
Sie können eine Reihe von SSISDB-Datenbanksichten abfragen, um die Paketausführung und andere Informationen zu Vorgängen zu überwachen. Weitere Informationen finden Sie unter Überwachen von Paketausführungen und anderen Vorgängen.
Behebung von Problemen bei der Paketausführung mithilfe der Protokollierung
Sie können die meisten Vorgänge beim Ausführen von Paketen durch Aktivieren der Protokollierung nachverfolgen. Bei der Protokollierung werden Informationen zu angegebenen Ereignissen zur späteren Analyse aufgezeichnet und in einer Datenbanktabelle, einer Flatfile, einer XML-Datei oder einem anderen unterstützten Ausgabeformat gespeichert.
Aktivieren der Protokollierung. Sie können die Protokollierungsausgabe optimieren, indem Sie nur die Ereignisse und Informationen auswählen, die Sie aufzeichnen möchten. Weitere Informationen finden Sie unter Integration Services-Protokollierung (SSIS) und Integration Services-Protokollierung (SSIS).
Wählen Sie das Diagnostic-Ereignis des Pakets aus, um Probleme mit dem Anbieter zu behandeln. Es sind Meldungen für die Protokollierung enthalten, mit denen Sie Probleme bei der Interaktion eines Pakets mit externen Datenquellen behandeln können. Weitere Informationen finden Sie unter Tools zur Behandlung von Problemen mit Paketverbindungen.
Verbessern der Standardprotokollierungsausgabe. Bei der Protokollierung werden normalerweise bei jeder Paketausführung Zeilen an ein Protokollierungsziel angefügt. Zwar enthält jede Zeile der Protokollierungsausgabe den Namen und eindeutigen Bezeichner des Pakets sowie die eindeutige ExecutionID der Paketausführung, die umfangreiche Protokollierungsausgabe in einer einzigen Liste kann jedoch die Analyse erschweren.
Die folgende Vorgehensweise stellt eine Möglichkeit zum Verbessern der Standardprotokollierungsausgabe und Vereinfachen der Berichtgenerierung dar.
Erstellen einer übergeordneten Tabelle zum Protokollieren aller Paketausführungen. Diese übergeordnete Tabelle enthält nur eine einzige Zeile pro Paketausführung und verwendet die ExecutionID zur Verlinkung mit den untergeordneten Datensätzen in der Integration Services-Protokollierungstabelle. Zum Erstellen dieser neuen Zeile und Aufzeichnen der Startzeit können Sie am Anfang eines jeden Pakets den Task "SQL ausführen" verwenden. Anschließend können Sie am Ende des Pakets den Task "SQL ausführen" erneut verwenden, um die Beendigungszeit, Dauer und den Status in der Zeile zu aktualisieren.
Hinzufügen von Überwachungsinformationen zum Datenfluss. Sie können mit der Überwachungstransformation Informationen zu Zeilen im Datenfluss hinzufügen, die Daten zur Paketausführung enthalten, durch die die betreffende Zeile erstellt oder geändert wurde. Die Überwachungstransformation stellt neun Arten von Informationen bereit, wie z. B. PackageName und ExecutionInstanceGUID. Weitere Informationen finden Sie unter Überwachungstransformation. Wenn Sie zu Überwachungszwecken jede Zeile mit benutzerdefinierten Informationen versehen möchten, können Sie diese Informationen mithilfe einer Transformation für abgeleitete Spalten den Zeilen im Datenfluss hinzufügen. Weitere Informationen finden Sie unter Transformation für abgeleitete Spalten.
Erwägen der Aufzeichnung von Zeilenanzahldaten. Erwägen Sie, eine separate Tabelle mit Informationen zur Zeilenanzahl zu erstellen, in der jede Paketausführungsinstanz über ihre ExecutionID identifiziert wird. Verwenden Sie die Transformation für Zeilenanzahl, um an wichtigen Stellen im Datenfluss die Zeilenanzahl in einer Reihe von Variablen zu speichern. Verwenden Sie den Task 'SQL ausführen', um nach Beendigung des Datenflusses die Variablenreihe zur späteren Analyse und Berichterstattung in eine Zeile der Tabelle einzufügen.
Weitere Informationen zu dieser Methode finden Sie im Abschnitt "ETL Auditing and Logging" im Microsoft-Whitepaper Project REAL: Business Intelligence ETL Design Practices.
Behandlung von Problemen bei der Paketausführung mithilfe von Debugdumpdateien
In Integration Services können Sie Debugdumpdateien erstellen, die Informationen über die Ausführung eines Pakets enthalten. Weitere Informationen finden Sie unter Generieren von Dumpdateien für die Paketausführung.
Behandlung von Problemen bei der Überprüfung zur Laufzeit
Es kann vorkommen, dass Sie keine Verbindung mit den Datenquellen herstellen können oder Teile des Pakets erst nach der Ausführung von vorausgehenden Tasks im Paket zur Laufzeit überprüft werden können. Integration Services stellt die folgenden Funktionen bereit, mit denen Sie die Überprüfungsfehler, die in solchen Fälle ausgelöst werden, vermeiden können:
Konfigurieren der DelayValidation-Eigenschaft für Paketelemente, die erst zur Laufzeit gültig sind. Zum Verhindern von Überprüfungsfehlern beim Laden des Pakets können Sie für Paketelemente, deren Konfigurationen zur Entwurfszeit ungültig sind, DelayValidation auf True festlegen. Ein Beispiel hierfür wäre ein Datenflusstask, der eine Zieltabelle verwendet, die erst zur Laufzeit durch einen Task 'SQL ausführen' erstellt wird. Die DelayValidation-Eigenschaft kann auf Paketebene oder auf der Ebene der einzelnen, in den Paketen enthaltenen Tasks und Container aktiviert werden.
Die DelayValidation-Eigenschaft kann für einen Datenflusstask, jedoch nicht für einzelne Datenflusskomponenten festgelegt werden. Sie erreichen für einzelne Datenflusskomponenten ein ähnliches Ergebnis, wenn Sie die ValidateExternalMetadata-Eigenschaft der Datenflusskomponenten auf false festlegen. Wenn jedoch der Wert dieser Eigenschaft auf false festgelegt ist, erkennt die Komponente keine Änderungen der Metadaten externer Datenquellen. Wenn der Wert auf true festgelegt ist, können Sie Blockierungsprobleme vermeiden, die durch Verwendung der ValidateExternalMetadata-Eigenschaft durch Sperren in der Datenbank verursacht werden, besonders wenn das Paket Transaktionen verwendet.
Behandlung von Problemen mit Berechtigungen zur Laufzeit
Wenn beim Versuch, bereitgestellte Pakete mithilfe des SQL Server-Agents auszuführen, Fehler auftreten, verfügen die vom Agent verwendeten Konten möglicherweise nicht über die erforderlichen Berechtigungen. Informationen zur Fehlerbehebung bei Paketen, die in SQL Server-Agent-Aufträgen ausgeführt werden, finden Sie unter SSIS-Paket wird nicht ausgeführt, wenn das SSIS-Paket von einem SQL Server Agent-Auftrag abgerufen wird. Weitere Informationen zum Ausführen von Paketen in SQL Server-Agent-Aufträgen finden Sie unter Aufträge des SQL Server-Agents für Pakete.
Für die Verbindung mit Excel- oder Access-Datenquellen erfordert der SQL Server-Agent ein Konto mit entsprechenden Berechtigungen zum Lesen, Schreiben, Erstellen und Löschen temporärer Dateien in dem Ordner, der durch die TEMP- und TMP-Umgebungsvariablen angegeben wird.
Behandlung von 64-Bit-Problemen
- Einige Datenanbieter sind auf der 64-Bit-Plattform nicht verfügbar. Insbesondere ist keine 64-Bit-Version des Microsoft OLE DB-Anbieters für Jet verfügbar, der zum Herstellen von Verbindungen mit Excel- oder Access-Datenquellen benötigt wird.
Behandlung von Fehlern ohne Beschreibung
Wenn ein Integration Services-Fehler ohne zugehörige Beschreibung auftritt, können Sie die Beschreibung zu dem Fehler anhand seiner Fehlernummer in der Liste unter Fehler- und Meldungsreferenz von Integration Services nachschlagen. Die Liste enthält derzeit keine Informationen zur Problembehandlung.
Verwandte Aufgaben
Konfigurieren einer Fehlerausgabe in einer Datenflusskomponente
Verwandte Inhalte
Blogeintrag Hinzufügen des Fehlerspaltennamens zu einer Fehlerausgabe auf dougbert.com.
|