Announcement

Collapse
No announcement yet.

SQL Server Agent - Job wird nicht richtig ausgeführt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL Server Agent - Job wird nicht richtig ausgeführt

    Hallo,

    seit einiger Zeit bin ich auf ein Problem gestoßen und weiß leider nicht weiter:

    Ich habe über den SQL Server Agent einen Job mit einem Step, sowie einen schedule aufgesetzt. Dabei benutze ich ein Package. Öffne ich dieses Package mit Visual Studio und führe es mit F5 aus, dann erledigt er alle Schritte (Dateien im Ordner öffnen, in Datenbank importieren und Datei umbenennen).

    Laut Schedule führt er auch das Package aus, aber im Endeffekt passiert nichts, obowhl neue Dateien zum Einlesen bereit liegen. Genauso wenn ich den Job manuell starte, führt es zum Successful, aber es wurde nichts eingelesen. Mache ich das wiederum direkt in Visual Studio, macht er es so wie es sollte.

    Kann mir da bitte jemand weiterhelfen?

    Danke im Voraus!

  • #2
    Hallo Horzt,

    wenn Du das Paket in BIDS ausführst, dann läuft es unter Deinem Account mit Deinen Berechtigungen.
    Wenn es als Job ausgeführt wird, erfolgt das unter dem Account des SQL-Server Agent und der wird nicht die benötigten Rechte haben.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Hallo Olaf,

      vielen Dank für den Ansatz.
      Wie erreiche ich denn dass genügend Rechte vorhanden sind. Ich habe den Job einem SysAdmin zugeschrieben, dachte, dass würde genügen.
      (Das Package wurde von jemand anderen geschrieben und mir wurde die Datenbank "übergeben" - komme auf den Server und bin selbst auch über WinAuthentication Admin und db_owner)
      Hab ehrlich gesagt keine Ahnung wegen den Rechten (der Job hatte zumindest früher ja auch regelmäßig funktioniert...)
      Kannst du mir da weiterhelfen bezüglich den Einstellungen?
      (Verstehe auch nicht, wieso der Job trotzdem successful gelogged wird, obwohl der nichts gemacht hat- gibt es ne Möglichkeit falls es nicht an den Rechten liegen sollte, sich wie beim Debuggen ranzuhängen?)

      Danke!!

      Comment


      • #4
        Hallo,

        ich habe gesehen, dass in der History folgendes steht:

        Ich vermute, seit der Import nicht mehr funktioniert wird der Job als eine bestimmter angelegten user ausgeführt. Vorher war es der ehemalige Besitzer, auch wenn ich mich mit seinen Daten einlogge, sehe ich beim ausführen, dass der Job trotzdem als dieser user ausgeführt wird. Der User is db_owner, muss ich an seinen Rechten schrauben? oder der Besitzer?
        Gruß

        Comment


        • #5
          SysAdmin-Rechte beziehen sich nur auf die Datenbanken & Berechtigungen dort, aber da
          Dateien im Ordner öffnen
          werden für den Account auch Berechtigungen auf dem Filesystem für den Account des SQL Server Agents benötigt.

          Am besten legst Du einen Proxy-Account an, der die benötigten Rechte hat und unter dem der Job-Schritt dann ausgeführt wird, siehe:
          Erstellen von SQL Server-Agent-Proxys
          Olaf Helper

          <Blog> <Xing>
          * cogito ergo sum * errare humanum est * quote erat demonstrandum *
          Wenn ich denke, ist das ein Fehler und das beweise ich täglich

          Comment


          • #6
            Habe nachgeschaut, es existiert bereits ein Proxy-Account, der auch den Job als gefundene Referenz hat. Dieser ist auf SSIS Package Execution eingestellt.

            Der Stepaufruf sieht original so aus:

            /SQL "\Data\Import" /SERVER "serv1\MSSQLSERVER_BI" /USER kpi /PASSWORD /CHECKPOINTING OFF /REPORTING E
            Dabei ist kpi dieser Proxy-Account., aber nicht der Besitzer des Jobs...


            Was ich noch anmerken wollte, wenn ich wie gesagt den Job manuell ausführe, dann ist weder die Datei eingelesen, noch umbenannt worden (das Umbenennen passiert erst nach dem Einlesen).
            Zuletzt editiert von Horzt; 11.08.2010, 13:31. Reason: Nachtrag

            Comment


            • #7
              wenn ich wie gesagt den Job manuell ausführe, dann
              Du führst den Job nicht aus, Du startest ihn nur an und der SQL-Server Agent führt ihn aus.

              Mich wundert, das hier Parameter /USER /PASSWORD angegeben sind, das ist bei meinen Jobs nicht der Fall, dort ist im Job - Schritt der Proxy nur unter "Ausführen als" angegeben.

              Ist der Account den noch aktiv und hat ein leeres Passwort?
              Olaf Helper

              <Blog> <Xing>
              * cogito ergo sum * errare humanum est * quote erat demonstrandum *
              Wenn ich denke, ist das ein Fehler und das beweise ich täglich

              Comment


              • #8
                Originally posted by O. Helper View Post
                Du führst den Job nicht aus, Du startest ihn nur an und der SQL-Server Agent führt ihn aus.
                mmmh...okay, dann hab ich das so noch nicht gesehen...Mich wunderts halt auch, dass dort alles Successful abläuft, aber nichts passiert UND das im Vergleich zum Vormonat in der History der Step als "userX" ausgeführt. Wie kann ich denn ändern, ob ein step als userBlaBla ausgeführt werden soll, in den Jobeigenschaften hat das nichts gebracht (owner)...


                Also der Account kpi hat ein Passwort und aktiv ist der auch, zumindest geb ich den bei den Reports als log-on Daten ein.

                Comment


                • #9
                  Das findest Du nicht in den Job-Eigenschaften, sondern in den Schritt-Eigenschaften => "Ausführen als".
                  Siehe:
                  Auftragsschritt-Eigenschaften / Neuer Auftragsschritt (Seite Allgemein)
                  Olaf Helper

                  <Blog> <Xing>
                  * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                  Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                  Comment


                  • #10
                    Hallo zusammen,

                    ich habe ein ähnliches Problem. Bei mir ist es allerdings so, das ein Visual Basic Script innerhalb des Paketes nicht reagiert.
                    Aber eben auch nur dann, wenn es als Job läuft.
                    Einen Proxy-User mit passenden Rechten sowie habe ich eingerichtet und benutzt weiterhin habe ich statt des Pfades auf einem Netzlaufwerk die URL angegeben.
                    Bei anderen Paketen hat das gereicht aber offensichtlich gibt es in dem Script noch ein anderes Problem, nur komme ich dem nicht auf die Spur.


                    Gruß

                    cheapy

                    Comment


                    • #11
                      Hallo,

                      ich habe jetzt meine Script Task noch einmal umgebaut und auf den Laufwerkszugriff verzichtet. Es wird jetzt lediglich eine Variable ausgelesen, ich SQL Kommando auf eine DB-Tabelle ausgeführt und eine weitere Variable gesetzt.
                      Leider funktioniert das SSIS-Paket noch immer nicht. Kann es sein, dass mein Paket signiert werden muss um als Job zu laufen?

                      Comment

                      Working...
                      X