Freigeben über


Paketausführung (Problembehandlung)

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.

Business Intelligence Development Studio stellt zur Entwurfszeit Haltepunkte 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:

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, einen Skripttask und benutzerdefinierte Logik verwenden, um Systeminformationen zur Problembehandlung abzurufen, oder einen Cleanup der temporären Ressourcen und unvollständigen Ausgaben durchzuführen. Weitere Informationen finden Sie unter Ereignishandler von SQL Server Integration Services und Hinzufügen von Paketereignishandlern.

Behandlung 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 Behandeln von Fehlern im Datenfluss und Vorgehensweise: Konfigurieren einer Fehlerausgabe in einer Datenflusskomponente.

  • 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. Folgenden Vorgehensweise wird zum Hinzufügen des Spaltennamens zur Fehlerausgabe empfohlen:

    1. 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 in den Paketen, alle Objekte in den Datenflüssen sowie alle Eingaben und Ausgaben in den Datenflussobjekten 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.

    2. 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 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 SQL Server Integration Services-Protokollanbieter und Implementieren der Protokollierung in Pakete.

  • 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 im Abschnitt Behandlung von Problemen mit externen Datenanbietern in diesem Thema.

  • 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.

    1. 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.

    2. 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.

    3. 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 Arbeiten mit Debugdumpdateien.

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 durch Verwendung der ValidateExternalMetadata-Eigenschaft durch Sperren in der Datenbank verursachte Blockierungsprobleme vermeiden, insbesondere, 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 Planen der SSIS-Paketausführung im SQL Server-Agent und Vorgehensweise: Ausführen eines Pakets.

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

Wenn auf 64-Bit-Servern Fehler bei Paketen auftreten, die erfolgreich im 32-Bit-Modus bzw. auf 32-Bit-Servern ausgeführt werden konnten, sollten Sie die folgenden Punkte bedenken. Weitere Informationen finden Sie unter Überlegungen zu Integration Services auf 64-Bit-Computern.

  • 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.

  • DTS-Pakete können nicht im 64-Bit-Modus ausgeführt werden. Wenn ein Paket den Task 'DTS 2000-Paket ausführen' zum Ausführen von SQL Server 2000 Data Transformation Services (DTS)-Paketen verwendet, müssen Sie das Paket im 32-Bit-Modus ausführen. Es ist keine 64-Bit-Laufzeitunterstützung für DTS-Pakete vorhanden.

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.

Integration Services (kleines Symbol) Bleiben Sie mit Integration Services auf dem neuesten Stand

Die neuesten Downloads, Artikel, Beispiele und Videos von Microsoft sowie ausgewählte Lösungen aus der Community finden Sie auf der Integration Services-Seite von MSDN oder TechNet:

Abonnieren Sie die auf der Seite verfügbaren RSS-Newsfeeds, um automatische Benachrichtigungen zu diesen Aktualisierungen zu erhalten.