webentwicklung-frage-antwort-db.com.de

SSIS: Ich habe gerade angefangen, einen "Schlüssel für den angegebenen Status nicht gültig" zu erhalten. Fehler in meinem geplanten SSIS-Paket

Ich habe zwei geplante Jobs auf meinem SQL Server 2005-Computer, die jeden Morgen (ca. 2 Uhr morgens) ausgeführt werden sollen. Diese Jobs haben (meistens) jahrelang gut funktioniert, und obwohl ich einige Schluckaufe hatte, die ich durch dieses Problem lösen musste, ist ich völlig verblüfft.

Vor zwei Morgen hat eines meiner Pakete den folgenden Fehler gemeldet:

Executed as user: [Service Acount]. ...n 9.00.4035.00 for 32-bit
Copyright (C) Microsoft Corp 1984-2005. All rights reserved.
     Started:  1:15:01 AM  Error: 2012-10-17 01:15:03.98
     Code: 0xC0016016
     Source:
       Description: Failed to decrypt protected XML node "DTS:Password" 
       with error 0x8009000B "Key not valid for use in specified state.". 
       You may not be authorized to access this information. This error 
       occurs when there is a cryptographic error. Verify that the 
       correct key is available.  End Error  Error: 2012-10-17 01:15:03.99
     Code: 0xC0016016
     Source:
       Description: Failed to decrypt protected XML node "DTS:Password" 
       with error 0x8009000B "Key not valid for use in specified state.". 
       You may not be authorized to access this information. This error 
       occurs when there is a cryptographic error. Verify that the 
       correct key is available.  End Error  Error: 2012-10-17 01:15:04.01
     Code: 0xC0016016     
Source:       
Description: Failed to ...  The package execution fa...  The step failed.

Dies scheint ein häufiges Problem zu sein, jedoch trifft keine der von mir gefundenen Empfehlungen auf mein Szenario zu, oder meine Instanz scheint den meisten anderen Fällen zu entsprechen, in denen dies auftritt. Hier sind die wichtigen Details zu meiner Implementierung.

  • Dieses Paket exportiert Daten von einem iSeries-System in SQL Server 2005-Datentabellen. 
  • Dieser Vorgang funktioniert erfolgreich, stürzt jedoch Bei einem bestimmten Tabellenexport ab. Tatsächlich läuft es über 2 Stunden ohne Probleme , Bevor es stirbt. Nachdem ich alle mit diesem Schritt Verknüpften Eigenschaften untersucht habe, kann ich feststellen, dass sich an diesem Schritt Nichts anderes unterscheidet als bei den anderen Tabellenexportschritten außer dem Tabellen-/Spaltenexport . Zuordnungen.
  • Das Paket ProtectionLevel ist auf DontSaveSensitive gesetzt, und die iSeries-Berechtigungsnachweise Werden in einer Konfigurationsdatei gespeichert, auf die SQL Server zugreift. 
  • Ich kann den fehlerhaften Schritt auf meinem Computer in BIDS ausführen. Unabhängig davon funktioniert Auf dem Server nicht, obwohl der Server genau dieselben Anmeldeinformationen verwendet.
  • Wie gesagt, ich habe zwei Pakete. Sie sind praktisch dasselbe, außer Einer exportiert die Daten aus einer iSeries-Datenbank und der andere exportiert Daten, die fast dieselbe Struktur aus einer anderen iSeries-Datenbank haben. Das erste - Paket hat keine Probleme, obwohl es die gleichen iSeries-Berechtigungsnachweise verwendet.
  • Um klar zu sein, hat sich seit Monaten nichts auf meinem Server geändert (das ist mir bekannt.) Diese Ist gerade erst gestern Morgen passiert.

Alle Tipps oder Gedanken wären enorm hilfreich. Dieser Export ist äußerst wichtig und viele Benutzer/Mitarbeiter verlassen sich auf diese Daten für ihre tägliche Arbeit.

9
RLH

Nun, ich hasse es, eine solche Antwort posten zu müssen, aber ich habe das Problem gelöst.

Der kurze Grund, warum ich dieses Problem hatte, liegt darin, dass eines der Felder in einer Datentabelle nicht richtig definiert wurde. In diesem Fall wurde es als decimal (11, 3) deklariert und sollte eine decimal (13, 3) sein. Ich habe dieses Problem nicht erfahren, bis ein Wert in die Tabelle geschrieben wurde, der nicht in den Bereich (11, 3) passt.

Diese Ausgabe zeigt eine meiner größten Beschwerden bei SSIS. Gelegentlich bekomme ich Fehler, die im Internet oft gut dokumentiert sind. Ich durchsuche alle meine Protokolle und versuche, verschiedene Testszenarien unter der Annahme aufzubauen, dass die Fehlermeldung ehrlich ist. Wenn ich das Problem jedoch endgültig löse, hat es keinerlei Zusammenhang mit der Fehlermeldung, die in die Protokolldatei geschrieben wird.

In diesem Fall hatte der oben erwähnte Fehler absolut nichts mit dem Problem zu tun ?! Ich hatte wirklich Glück, das Problem überhaupt zu sehen. Ich wusste, dass das Update für meine Tabelle möglicherweise eine Korrektur war, weil ich habe gesehen, dass SSIS auf diese Weise falsch kommuniziert hat .

Ich würde gerne Neutrinos aus dem Weltraum beschuldigen, die meinen Server bombardieren, aber der beste Weg aus dieser Erfahrung besteht darin, Ihre SSIS-Probleme auf der Grundlage der Ratschläge anderer zu lösen, jedoch , wenn deren Ratschläge nicht zutreffen. Wenn Sie wissen, dass das Problem möglicherweise nicht mit der SSIS-Fehlernachricht zusammenhängt, und überprüfen Sie alles, was mit dem Fehlerpunkt zusammenhängt.

12
RLH

Ich konnte das Bild nicht in den Kommentaren posten, also als Antwort posten. 

Wenn Sie versuchen, das Paket in SQL Server zu importieren, erhalten Sie das folgende Fenster, sobald Sie mit der rechten Maustaste klicken und "Paket importieren" ausführen.

enter image description here

Klicken Sie auf das Rechteckfeld rechts neben dem Fenster. Sie haben die Möglichkeit, die Schutzstufe des Pakets zu ändern. Ändern Sie es in "Nicht speichern" und versuchen Sie, das Paket auszuführen. Ein Wort der Vorsicht, dies erfordert, dass Sie das vorhandene Paket entfernen und erneut importieren. Vielleicht möchten Sie es auf einem anderen Computer ausprobieren, bevor Sie die vorhandene Konfiguration berühren. 

5
rvphx

Für mich war es nur das Passwort für einen Verbindungsmanager in SSIS, der nicht gespeichert wurde. Geben Sie das Passwort ein -> OK-> Schließen Sie die DTSX-Datei und öffnen Sie sie erneut. Fehler gegangen.

4
Vijay

Die gleiche Fehlermeldung wurde in SQL Server 2012 angezeigt. Durch das Neustarten von SQL Server Management Studio wurde das Problem behoben. Das Problem wurde wahrscheinlich dadurch verursacht, dass sich mein Domänenkennwort vor einigen Tagen geändert hat, während SSMS geöffnet war. Wenn Sie auf ein ähnliches Problem stoßen und es nicht zu einem einfachen Neustart kommt, vergewissern Sie sich, dass Sie Control Panel\User Accounts\Credential Manager auf zwischengespeicherte Kontoinformationen überprüfen und/oder versuchen Sie einen Neustart.

3
GrayDwarf

Öffnen Sie das Paket dtsx, und gehen Sie zu den Eigenschaften von ProtectionLevel EncryptSensitiveWithPassword, und geben Sie das Kennwort ein. Verbinden Sie den Paketformular-SQL-Server-Auftrag mit demselben Kennwort.

Siehe http://support.Microsoft.com/kb/918760 und http://www.mssqltips.com/sqlservertip/2091/securing-your-ssis-packages-using-package-protection-level/

0
Shahdat

Dies ist eine Problemumgehung, um das Problem zu vermeiden, sensible Kennwörter im Paket zu speichern. 

Ich entfernte die FTP-Task und verwendete stattdessen eine Dateisystem-Task, um die Datei über eine Netzwerkfreigabe auf dem FTP-Server an denselben Speicherort zu kopieren, und verzichtete auf die Verwendung des FTP-Protokolls. 

Ich konnte das Paket auch im Dateisystem anstelle des SQL Server-Speichers speichern, und es lief einwandfrei.

Hoffentlich hilft es dir!

0
Hiram