none
SSIS Jobausführung: Manuell funktioniert, automatisch nicht RRS feed

  • Allgemeine Diskussion

  • Hallo,

    im BIDS wurde ein ETL-Paket erstellt, welches Daten von unterschiedlichen Tabellen eines Quellsystems in eine SQL-Datenbank lädt.

    Wird das ETL-Paket im BIDS ausgeführt, läuft dieses fehlerfrei durch.
    Nach dem Hochladen des Pakets in die Integrations Services wurde das ETL-Paket manuell ausgeführt, welches ebenso fehlerfrei funktionierte.
    Ein Job wurde angelegt, welcher das Paket in der Nacht ausführen soll. Wird der Job manuell gestartet, läuft dieser ohne Probleme.
    Wird der Job jedoch automatisch in der Nacht gestartet, schlägt der Job jedoch fehl, da ein paar Tabellen nicht geladen werden können.
    Manuell können jedoch wieder alle Daten geladen werden.

    Ich habe den Job auch mal tagsüber manuell gestartet, dieser lief durch. Zwei Minuten später den Job automatisch starten lassen, dieser schlug fehl. Anschließend den Job wieder manuell gestartet und er funktioniert.

     

    Für mich ist das Verhalten unlogisch. Hat mir jemand Rat?


    Viele Grüße

    • Typ geändert Alex Pitulice Donnerstag, 17. November 2011 10:30 Warten auf Feedback
    Freitag, 4. November 2011 10:25

Alle Antworten

  • Für mich ist das Verhalten unlogisch. Hat mir jemand Rat?


    Hallo,

    das Verhalten ist völlig logisch und auch konsequent.

    Wenn Du es im BIDS oder den Job manuell anstartest, dann wird es in Deinem Sicherheitskontext (unter Deinem Windows Account) ausgeführt und Du wirst wohl alle benötigten Rechte haben, das auszuführen; angefangen bei dem Berechtigungen im SQL Server als auch auf den Filesystemen um z.B. ein Flatfile von einem Netzlaufwerk zu lesen.

    Wird der Job automatisch ausgeführt, dann läuft es im Sicherheitskontext des SQL Server-Agent Dienstes und im Standard ist das "LocalSystem"; ein Account mit eingeschränkten Rechten und der darf vermutlich ein paar der Aktionen aus dem SSIS Paket nicht ausführen; wie ein Filezugriff im Netz.

    Du könntest das Dienst Konto ändern, das würde ich aber nicht empfehlen. Lege lieber einen SQL Server-Agent Proxy Account an, der über genügend Rechte verfügt und lasse dann den Job mit dem Proxy Account ausführen.

     


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Freitag, 4. November 2011 15:23
  • Hallo Mining,

     

    wie ist der Status - bist du hier zu einer Lösung gekommen?

     

    Viele Grüße,

    Alex

    Mittwoch, 9. November 2011 11:42
  • Hallo,

    sorry, ich bin noch nicht zum Testen gekommen. Nächste / Übernächste Woche kann ich eine Rückmeldung geben.

    Viele Grüße

    Donnerstag, 17. November 2011 09:53
  • Hallo zusammen,

    gibt es hierzu bereits neue Infos?

    Ich habe das selbe Problem.

    SSIS-Paket direkt aus den IntegrationServices aus gestartet funktionieren problemlos, aber wenn ich einen Agent-Job anlege bekomme ich immer einen Fehler:

    --------------------------------------------------------------------------------------------------------------------------

    Gestartet: 17:39:13
    Fehler: 2013-02-12 17:39:13.70
       Code: 0xC0016016
       Quelle: 
       Beschreibung: Fehler beim Entschlsseln des geschtzten XML-Knotens 'DTS:Password' (Fehlercode: 0x8009000B 'Schlssel ist im angegebenen Status nicht gltig.'). M”glicherweise verfgen Sie nicht ber die Zugriffsrechte fr diese Informationen. Dieser Fehler tritt bei einem kryptografischen Fehler auf. šberprfen Sie, ob der richtige Schlssel verfgbar ist.
    Fehlerende
    Fehler: 2013-02-12 17:39:16.70
       Code: 0xC0202009
       Quelle: import_visualisierung Verbindungs-Manager 'SourceConnectionOLEDB'
       Beschreibung: SSIS-Fehlercode 'DTS_E_OLEDBERROR'. OLE DB-Fehler. Fehlercode: 0x80040E4D.
    Ein OLE DB-Datensatz ist verfgbar. Quelle: 'Microsoft OLE DB Provider for Oracle' HRESULT: 0x80040E4D Beschreibung: 'ORA-01017: Benutzername/Kennwort ungltig; Anmeldung abgelehnt
    '.
    Fehlerende
    Fehler: 2013-02-12 17:39:16.70
       Code: 0xC020801C
       Quelle: Datenflusstask Quelle - Abfrage [1]
       Beschreibung: SSIS-Fehlercode 'DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER'. Fehler beim Aufrufen der AcquireConnection-Methode ber den Verbindungs-Manager 'SourceConnectionOLEDB' (Fehlercode: 0xC0202009). M”glicherweise wurden bereits Fehlermeldungen ver”ffentlicht, die weitere Informationen zum Fehler beim Aufrufen der AcquireConnection-Methode beinhalten.
    Fehlerende
    Fehler: 2013-02-12 17:39:16.70
       Code: 0xC0047017
       Quelle: Datenflusstask DTS.Pipeline
       Beschreibung: Fehler beim šberprfen von 'Komponente 'Quelle - Abfrage' (1)'. Fehlercode: 0xC020801C.
    Fehlerende
    Fehler: 2013-02-12 17:39:16.70
       Code: 0xC004700C
       Quelle: Datenflusstask DTS.Pipeline
       Beschreibung: Fehler beim šberprfen von mindestens einer Komponente.
    Fehlerende
    Fehler: 2013-02-12 17:39:16.70
       Code: 0xC0024107
       Quelle: Datenflusstask
       Beschreibung: Fehler bei der Taskberprfung.
    Fehlerende
    DTExec: Die Paketausfhrung wurde beendet. DTSER_FAILURE (1).
    Gestartet: 17:39:13
    Beendet: 17:39:16
    Verstrichen:  3.156 Sekunden

    --------------------------------------------------------------------------------------------------------------------------

    Das Paket soll Daten aus einer Oracle-DB in SQL importieren.

    Habe bereits versucht beide Dienste unter einem lokalen Admin starten zu lassen und einen Poxy zu verwenden. Hatt alles nichts geholfen.

    Hat jemand ne Idee?

    Danke und Gruß



    • Bearbeitet TimoB_ Dienstag, 12. Februar 2013 16:45
    Dienstag, 12. Februar 2013 16:44
  •  Beschreibung: Fehler beim Entschlsseln des geschtzten XML-Knotens 'DTS:Password' (Fehlercode: 0x8009000B 'Schlssel ist im angegebenen Status nicht gltig.'). M”glicherweise verfgen Sie nicht ber die Zugriffsrechte fr diese Informationen. Dieser Fehler tritt bei einem kryptografischen Fehler auf. šberprfen Sie, ob der richtige Schlssel verfgbar ist.

    Hallo Timo,

    In Deinem Fall hat es vermutlich eine andere Ursache. Wenn man ein Package anlegt / in SSIS importiert, das sensitive Daten wie Passwörter enthält, muss man diese verschlüsseln lassen. Das geht entweder über den UserKey oder über ein Passwort. Wenn Du dann ein SQL Server Agent Job mit dem SSIS Package anlegst, musst Du nach der Auswahl des Packages auf einen der weiteren Tabs klicken; erst dann kommt die Passwort-Abfrage für das Package, damit die sensitiven Daten entschlüsselt werden können.


    Olaf Helper

    Blog Xing

    Dienstag, 12. Februar 2013 17:27
  • @mining:

    Der Christoph Muthmann hat vor einigen Jahren mal einen Blog Post verfasst: SSIS für nicht sysadmin

    Hier wird nicht nur beschrieben, wie ein Proxy Account anzulegen ist, sondern wie ich auch weitere Benutzer die Möglichkeit gebe Pakete einzustellen und auszuführen.

    Schau Dir das mal an, ich finde es sehr hilfreich.

    Gruß

    Dirk


    May you never suffer the sentiment of spending a day without any purpose

    Mittwoch, 13. Februar 2013 11:13
  • @Olaf:

    Danke für deine hilfreichen Infos.

    Konnte nun das Problem lösen, indem ich das SSIS-Packet mit einem Passwort verschlüsselt habe.

    Somit war die Ausführung als SQL-Agent-Job kein Problem mehr.

    Gruß

    Timo


    • Bearbeitet TimoB_ Mittwoch, 13. Februar 2013 13:35
    Mittwoch, 13. Februar 2013 13:23