SQL Server 2005 Sicherung funktioniert nicht, nachdem ein Script eingefügt wurde
OS: Windows Server 2008 Standard SP1
SQL: Microsoft SQL Server 2005
Moin,
ich habe mit Powershell ein Script geschrieben, welches die alten SQL Sicherungen löschen und nur die jüngste (wichtig, nicht die vom Vortag) behalten soll. Das Script funktioniert auch super, wenn ich es manuell ausführe. Nun habe ich das Script per SQL-Server Agent eingefügt.
Typ: Betriebssystem (CmdExec)
Ausführen als: SQL Agent Service Account
Der Eintrag lautet: <powershell.exe "& 'C:\Program Files\xxxx\sql_backup_cleanup.ps1'">
Führe ich den Auftrag manuell aus, funktioniert das ebenfalls.
Diesen Auftrag habe ich dann in den vorhandenen Wartungsplan für das DB Backup eingefügt und als ersten Schritt eingestellt.
Das Script ist folgendes:
$pfad="d:\SQLbackup\sicherung"
$vz=dir $pfad
foreach ($element in $vz)
{
dir $pfad\$element -recurse -include "*.bak" | sort -prop LastWriteTime -descending | select -skip 1 | remove-item
}
Nun lief die Sicherung der DB am Wochenende nicht, mit einer mir nichtssagen Meldung im Protokoll (etwas gekürzt):
Weder Script, noch andere Schritte wurden ausgeführt.
Datum 20.10.2012 00:45:00
Protokoll Auftragsverlauf (Vollsicherung-Benutzer-DB)
Schritt-ID 0
Auftragsname Vollsicherung-Benutzer-DB
Schrittname (Auftragsergebnis)
Dauer 00:01:08
SQL-Schweregrad 0
SQL-Meldungs-ID 0
Meldung
Auftragsfehler Der Auftrag wurde von Zeitplan 4 (Vollsicherung-Benutzerdatenbanken) aufgerufen. Zuletzt wurde Schritt 1 (Unterplan) ausgeführt.
____________________________________________________________________
Protokoll Auftragsverlauf (Vollsicherung-Benutzer-DB)
Schritt-ID 1
Auftragsname Vollsicherung-Benutzer-DB
Schrittname Unterplan
Dauer 00:01:08
Meldung
Ausgeführt als Benutzer: 'XXX\SYSTEM'. Fehler beim Ausführen des Pakets. Fehler bei Schritt.
____________________________________________________________________
Der Wartungsplan sieht wie folgt aus:
1. Mein Script -> SQL-Server Authentifizierung
2. DB Backup -> SQL-Server Authentifizierung
3. Index neu organisieren
SQL: Microsoft SQL Server 2005
Moin,
ich habe mit Powershell ein Script geschrieben, welches die alten SQL Sicherungen löschen und nur die jüngste (wichtig, nicht die vom Vortag) behalten soll. Das Script funktioniert auch super, wenn ich es manuell ausführe. Nun habe ich das Script per SQL-Server Agent eingefügt.
Typ: Betriebssystem (CmdExec)
Ausführen als: SQL Agent Service Account
Der Eintrag lautet: <powershell.exe "& 'C:\Program Files\xxxx\sql_backup_cleanup.ps1'">
Führe ich den Auftrag manuell aus, funktioniert das ebenfalls.
Diesen Auftrag habe ich dann in den vorhandenen Wartungsplan für das DB Backup eingefügt und als ersten Schritt eingestellt.
Das Script ist folgendes:
$pfad="d:\SQLbackup\sicherung"
$vz=dir $pfad
foreach ($element in $vz)
{
dir $pfad\$element -recurse -include "*.bak" | sort -prop LastWriteTime -descending | select -skip 1 | remove-item
}
Nun lief die Sicherung der DB am Wochenende nicht, mit einer mir nichtssagen Meldung im Protokoll (etwas gekürzt):
Weder Script, noch andere Schritte wurden ausgeführt.
Datum 20.10.2012 00:45:00
Protokoll Auftragsverlauf (Vollsicherung-Benutzer-DB)
Schritt-ID 0
Auftragsname Vollsicherung-Benutzer-DB
Schrittname (Auftragsergebnis)
Dauer 00:01:08
SQL-Schweregrad 0
SQL-Meldungs-ID 0
Meldung
Auftragsfehler Der Auftrag wurde von Zeitplan 4 (Vollsicherung-Benutzerdatenbanken) aufgerufen. Zuletzt wurde Schritt 1 (Unterplan) ausgeführt.
____________________________________________________________________
Protokoll Auftragsverlauf (Vollsicherung-Benutzer-DB)
Schritt-ID 1
Auftragsname Vollsicherung-Benutzer-DB
Schrittname Unterplan
Dauer 00:01:08
Meldung
Ausgeführt als Benutzer: 'XXX\SYSTEM'. Fehler beim Ausführen des Pakets. Fehler bei Schritt.
____________________________________________________________________
Der Wartungsplan sieht wie folgt aus:
1. Mein Script -> SQL-Server Authentifizierung
2. DB Backup -> SQL-Server Authentifizierung
3. Index neu organisieren
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 193099
Url: https://administrator.de/contentid/193099
Ausgedruckt am: 26.11.2024 um 04:11 Uhr
5 Kommentare
Neuester Kommentar
Der Account mit dem der Server Agent läuft braucht auf jedenfall das Recht in deinem Backup Verzeichnis zu löschen. Wenn deine Jops laufen ist der SQL Agent der initiator bei lese, schreib und lösch-aktionen. Auf File Ebene greifen dann die berechtigungen des Dienste Accounts da er sich damit beim Betriebssystem meldet. Hatte so ein ähnliches Problem. Habe dazu dann einen lokalen Account angelegt der im SQL selbst als Admin angelegt ist und auf Betriebssystemebene dann im Backup Verzeichniss vollzugriff bekam (und nur dort) und schon war das Problem weg.
Datenaustausch zwischen Dienst und Desktop ist bei mir auch nicht gesetzt.
Datenaustausch zwischen Dienst und Desktop ist bei mir auch nicht gesetzt.