SQL Server 2008/2012/2014 „Es kann nicht festgestellt werden, ob der Besitzer () von Auftrag für Serverzugriff hat.

Problem

Ein oder mehrere Wartungspläne schlagen fehl und erzeugen unangenehme Fehler im Ablaufplanb, die diesen oder einen ähnlichen Wortlauf haben. Die Sicherungen werden aber korrekt erstellt.

Ereignistyp:       Warnung
 Ereignisquelle:    SQLSERVERAGENT
 Ereigniskategorie: Job Engine
 Ereigniskennung:   208
 Benutzer:          Nicht zutreffend
 Computer:          STACKEXCH1
 Beschreibung:
 SQL Server Scheduled Job ‘<foo>’ (0xLONGID) – Status: Fehler – Invoked on: <date> – Message: Auftragsfehler  Es kann nicht bestimmt werden, ob der Besitzer (‘<foo>\<bar>’) von Auftrag ‘<name>’ Serverzugriff aufweist. (Ursache: Die Informationen über Windows NT-Gruppe oder -Benutzer ‘<foo>\<bar>’ konnten nicht abgerufen werden, Fehlercode 0x5. [SQLSTATE 42000] (Fehler 15404)  Die Anweisung wurde beendet. [SQLSTATE 01000] (Fehler 3621)).

Lösung

Der Benutzer kann tatsächlich nicht aufgelört werden. Das kann am Design der AD-Infrastrutur liegen, wenn die Windows-Authentifizierung benutzt wird. Wir haben gute Erfahrungen gemacht, die Wartungspläne jeweils im lokalen SQL-Server kontext mit der SQL-Authentifizierung laufen zu lassen (z.B. ’sa‘).

Das geht in den Eigenschaften des betroffenen Wartungsplanes (oder Subplanes) in dem Feld „Besitzer“. In TSQL sieht das für den ’sa‘ dann so aus:

UPDATE msdb.dbo.sysssispackages 
SET [ownersid] = SUSER_SID('sa') 
WHERE [name] = 'Meinwartungsplan.Subplan'  

Alternativ ändert man im Management Studio, wärend man als das passende Zielkonto angemeldet ist, einfach den Namen. der aktuelle User wird dann als neue Besitzer übernommen. Einen via GUI erreichbaren Weg kennen wir spontan nicht.

Veeam VMWare Backup Job „File is locked by running session (Jobname)“

Wenn man eine Veeam Backup-Server im falschen Moment (=mitten im Job) neu startet oder der Prozess sich mal unglücklich aufhängt, lässt sich ein Job schon mal nicht neu starten.

Man kann natürlich das SQL Management Studio Express installieren, man kann als fauler Admin aber auch auf dem binntools Verzeichnis das SQLCMD für die Reparatur nutzen:

sqlcmd -s SERVERNAME -Q "EXEC sp_databases;" 
  • Datenbanknamen holen, falls unbekannt
sqlcmd -s SERVERNAME -d "VeeamBackup" -Q "delete from [Backup.TrackedActions.LockItems]"

sqlcmd -s SERVERNAME -d "VeeamBackup" -Q "delete from [Backup.TrackedActions.Locks]"

sqlcmd -s SERVERNAME -d "VeeamBackup" -Q "delete from [Backup.TrackedActions.Locks]" 

Wenn der SQL Server im ersten Moment die Verbindung verweigert, muss die Remote-Verbindung erst zugelassen werden. Das geht im SQL-Server-Configuration-Manager; hier unter den Netzwerkprotokollen die NamedPipes aktivieren und in der Instanz die Netzwerkverbindungen auf „enable“ setzen. Es gibt auch einen Veeam-KB-Artikel dazu.

Mit dem SQL-Management Studio auf die WSUS SQL Instanz zugreifen

Der WSUS Server (respektive die „Windows Server Update Services Rolle“) bringt auf Wunsch ihre eigene SQL-Server Instanz (Microsoft SQL Server Windows Internal Database (64-bit)“ mit. Freiwillig lassen sich die Einstellungen dieses Servers nicht ändern, aber mit den SQL-Tools kann man auch diesen SQL-Server konfigurieren. So lässt sich zum Beispiel der Arbeitsspeicher der WSUS-Instanz beschränken oder die CPU-Nutzung reglementieren. Natürlcih sind so auch eigene Auswertungen der WSUS-Daten mit Excel oder Access möglich.

So gehts:

  1. Herunterladen des SQL Server Express Management Studios
  2. Verbinden mit der lokalen Instanz:
    1. \.pipemssql$microsoft##sseesqlquery („Servername“)
    2. Windows-Authentifizierung mit einem lokalen Administrator-Konto