Zum Inhalt springen

xp_delete_file SQL-2000Server


vinyL

Empfohlene Beiträge

Hallo,

ich habe hier ein Problem, dass trotz Einrichtung eines Tasks die alten TRN Log Dateien nicht gelöscht werden. Dann kam ich durch googeln auf

xp_delete_file Befehl welcher wie folgt wäre:

EXECUTE master.dbo.xp_delete_file 0,'C:\Programme\Microsoft SQL Server\MSSQL\BACKUP',N'TRN','2007-03-09'

Nur jetzt ist das Problem, dass diese so genannte master.dbo.xp_delete_file nicht vorhanden ist. Wie kann ich diese erstellen bzw. auf was bezieht sich normalerweise solch eine Prozedur?

Oder weiß wer vl. ein noch einfacheren Weg, als ich ihn hier einschlagen möchte.

Wie gesagt, mir geht es Prinzipiell darum, dass der Task nicht die älteren Logs von 5 Tagen löscht. - Warum auch immer

EDIT:

Wäre dieses hier, wenn ich das noch soweit anpasse ausreichend?

DECLARE @ThreeDaysAgo VARCHAR(50)

SELECT @ThreeDaysAgo = CAST(DATEADD(d, -3, GETDATE()) AS VARCHAR)

-- NB this will delete any "bak" file not only the maintenance plan ones.

-- in case the backups are failing check we have at least 2 backups in the folder

-- check > 3 as we always have a final null record for the dir listing - note also that

-- its > 2 backups and not necessarily 2 backups from 3 days ago. Using 2 as its going

-- to run before the backup job, but the most likely cause of failure is lack of disk space

-- but we don't want a failure happening and end up with no backups

EXEC dbo.xp_cmdshell 'dir D:\Backups\db\*.bak /b'

IF @@ROWCOUNT > 3

BEGIN

EXECUTE dbo.xp_delete_file 0,N'D:\Backups\db',N'bak',@ThreeDaysAgo

-- only do log if deleting the main backup

EXEC dbo.xp_cmdshell 'dir D:\Backups\db\log\*.trn /b'

-- for logs we do 3 backups a day so check > 9

IF @@ROWCOUNT > 9

EXECUTE dbo.xp_delete_file 0,N'D:\Backups\db\log',N'trn',@ThreeDaysAgo

END

Vielen Dank soweit

Link zu diesem Kommentar
Auf anderen Seiten teilen

Einfache Ursache:

Die extended Stored Procedure xp_delete_file gibt es erst ab SQL Server 2005.

Unter SQL Server 2000 musst Du xp_sqlmaint nutzen.

xp_sqlmaint ruft das Programm SQLMaint.exe auf.

siehe xp_sqlmaint (Transact-SQL)

siehe sqlmaint (Dienstprogramm)

siehe Creating Backup Jobs in SQL Server 2005

Nachtrag:

Die xp_cmdshell gibt es auch erst ab SQL Server 2005.;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nachtrag:

Die xp_cmdshell gibt es auch erst ab SQL Server 2005.;)

Du meinst wohl eher die Server-Konfig-Option 'xp_cmdshell' (umzu steuern ob die Prozedur ausgeführt werden darf), die gibt es in der Tat erst ab SQL Server 2005. Den Transact-SQL-Befehl xp_cmdshell gibt es schon auf dem SQL Server 2000...

Gruß,

Honky

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielen Dank soweit für eure Pots.

Die konnten mir jedoch nicht weiterhelfen, ich habe hier auch noch eine schöne Seite gefunden:

Magerquark.de » Blog Archiv » Fehlermeldung “Fehler bei sqlmaint.exe” bei einem geplanten Auftrag in SQL Server

Jedoch greift dieser job nicht so wirklich:

EXECUTE master.dbo.xp_sqlmaint N'-PlanID F93771ED-0620-44D6-9525-7A8DBD15ADE9 -WriteHistory -VrfyBackup -BkUpMedia DISK -BkUpDB "C:Programme\Microsoft SQL Server\MSSQL\BACKUP -BkUpLog -UseDefDir -DelBkUps 5DAYS -BkExt "TRN"'

:rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe den Job jetzt erstmal auf eine Datenbank laufen lassen. Nun funzt er ohne Probleme, echt super. Das große Aber ist jetzt, dass er zwar laut Manager erfolgreich ausgeführt wird, aber nicht im Verzeichnis immer noch seti dem 9.3.07 TRN Logs vorhanden sind, obwohl der Job auf Älter als 24H steht.

Microsoft ® SQLMaint-Dienstprogramm (Unicode), Version 8.00.194

Copyright © Microsoft Corporation, 1995 - 1996

(null)

An Computer mit SQL Server 'OPSERV' angemeldet als 'NT-AUTORITT\SYSTEM' (vertraut)

Startet Wartungsplan 'Transaktionlogs _ALT_ lschen' fr 16.03.2007 11:53:03

[1] Datenbank vinyL_PROD: Transaktionsprotokoll Sicherung...

Ziel: [C:\Programme\Microsoft SQL Server\MSSQL\BACKUP\vinyL_PROD_tlog_200703161153.TRN]

(null)

** Ausfhrungsdauer: 0 Std, 0 Min, 1 Sek **

(null)

[2] Datenbank vinyL_PROD: Sicherung berprfen...

(null)

** Ausfhrungsdauer: 0 Std, 0 Min, 1 Sek **

(null)

[3] Datenbank vinyL_TEST: Transaktionsprotokoll Sicherung...

Ziel: [C:\Programme\Microsoft SQL Server\MSSQL\BACKUP\vinyL_TEST_tlog_200703161153.TRN]

(null)

** Ausfhrungsdauer: 0 Std, 0 Min, 1 Sek **

(null)

[4] Datenbank vinyL_TEST: Sicherung berprfen...

(null)

** Ausfhrungsdauer: 0 Std, 0 Min, 1 Sek **

(null)

[5] Datenbank vinyL_PROD: Alte Sicherungsdateien lschen...

0 Datei(en) gelscht.

(null)

[6] Datenbank vinyL_TEST: Alte Sicherungsdateien lschen...

0 Datei(en) gelscht.

(null)

Lscht alte Textberichte... 0 Datei(en) gelscht.

(null)

Ende des Wartungsplanes 'Transaktionlogs _ALT_ lschen' fr 16.03.2007 11:53:05

SQLMAINT.EXE Prozessexitcode: 0 (Erfolg)

(0 rows(s) affected)

Ähm..... eine Batch Datei schreiben?? ist doch völliger Käse! Warum greift diese Option von MS nicht, obwohl sie laut Programm ohne Fehler ausgeführt wurde????

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...