Benutzer mit den meisten Antworten
Script für Aufgabenplanung Windows

Frage
-
Hallo,
vielleicht kann mir jemand weiter helfen. Ich würde sehr gerne über die Windows Aufgabenplanung 2 Scripte laufen lassen um
1. Bilder einer Datenbank zu bereinigen (1x monatl. am Wochenende Nacht)
2.SQL-Transaktionsprotokolle verkleinern (1x monatl. am Wochenende Nacht)
leider bin ich noch sehr am Anfang meiner SQL Kentnisse. Ich habe hier einen SQL Server 2016 Express und über die Aufgabenplanung im SQL Server Management Studio ist die Erstellung nur für einmalig auswählbar. Daher war mein Gedankengang ob es dazu vielleicht PowerShell Befehle gibt die, die selbe Funktion haben und dann über die Microsoft Aufgabenplanung ausgeführt werden können.
Es wäre sehr nett, wenn mir jemand dabei weiterhelfen könnte oder 2 solche Scripte zur Verfügung stellen könnte, danke
Antworten
-
Hallo Andreas,
den zweiten Punkt solltest Du direkt wieder vergessen. Was macht es für Sinn, diese Dateien regelmäßig zu verkleinern, wenn du doch den Platz freihalten musst, damit sie wieder wachsen können. Du erzeugst damit nur unnötige Last und Fragmentierung der Festplatten.
Transaktionsprotokolle kann man verkleinern, wenn sie mal total aus dem Ruder gelaufen sind, oder die VLFs neu ausgerichtet werden sollen. Siehe hierzu:
http://www.insidesql.org/blogs/cmu/sql_server/schon-mal-von-vlfs-gehoert
http://www.insidesql.org/blogs/cmu/sql_server/wichtige-aenderung-bei-der-anlage
http://www.insidesql.org/blogs/cmu/sql_server/anzahl-von-vlfs-schaetzen
Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 1. Juli 2019 06:14
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 9. Juli 2019 13:39
-
Also das Aufräumen sein zu lassen, halte ich nicht für richtig, gerade weil der SQL-Server dies nicht von selber tut.
Moin,
bei Transaktionsprotokollen ist zu unterscheiden zwischen "abschneiden" (unbedingt machen!) und "verkleinern" (unbedingt sein lassen bzw. nur bei Bedarf ausführen!), also zwischen BACKUP LOG und DBCC SHRINKFILE.
Und je nachdem, was die Datenbank tut, kann man auch einen scheuen Blick in Richtung "Recovery Model = Simple" oder zumindest Bulk Logged richten ;-)
Evgenij Smirnov
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 1. Juli 2019 06:14
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 9. Juli 2019 13:39
Alle Antworten
-
Per Management Studio erstellst du die Aufgabe natürlch nur einmal in die Aufgabenplanung.
Der Ausführungsplan wiederum bestimmt, wie oft diese Aufgabe denn wiederholt durchgeführt werden soll.Rufe die Aufgabenplanung auf um die Häufigkeit des Planungsentrages ggf. anzupassen.
-
Hallo Andreas,
den zweiten Punkt solltest Du direkt wieder vergessen. Was macht es für Sinn, diese Dateien regelmäßig zu verkleinern, wenn du doch den Platz freihalten musst, damit sie wieder wachsen können. Du erzeugst damit nur unnötige Last und Fragmentierung der Festplatten.
Transaktionsprotokolle kann man verkleinern, wenn sie mal total aus dem Ruder gelaufen sind, oder die VLFs neu ausgerichtet werden sollen. Siehe hierzu:
http://www.insidesql.org/blogs/cmu/sql_server/schon-mal-von-vlfs-gehoert
http://www.insidesql.org/blogs/cmu/sql_server/wichtige-aenderung-bei-der-anlage
http://www.insidesql.org/blogs/cmu/sql_server/anzahl-von-vlfs-schaetzen
Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 1. Juli 2019 06:14
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 9. Juli 2019 13:39
-
Gerade das nicht aufgeräumte Transaktionsprotokoll hat bei mir zumindest in der Vergangenheit z.T. zu massiven Performanceeinbußen geführt.
Bei einer 300MB-Datenbank war dieses nämlich auf mittlerweile mehr als 20GB angewachsen, gerade weil sich niemand darum gekümmert hat.
Somit dauerte der Update von ca. 100.000 Sätzen in einem SQL-Statement fast 4 Minuten!
Nach der Bereinigung lag der Update wieder bei unter 10 Sekunden.Also das Aufräumen sein zu lassen, halte ich nicht für richtig, gerade weil der SQL-Server dies nicht von selber tut.
-
Also das Aufräumen sein zu lassen, halte ich nicht für richtig, gerade weil der SQL-Server dies nicht von selber tut.
Moin,
bei Transaktionsprotokollen ist zu unterscheiden zwischen "abschneiden" (unbedingt machen!) und "verkleinern" (unbedingt sein lassen bzw. nur bei Bedarf ausführen!), also zwischen BACKUP LOG und DBCC SHRINKFILE.
Und je nachdem, was die Datenbank tut, kann man auch einen scheuen Blick in Richtung "Recovery Model = Simple" oder zumindest Bulk Logged richten ;-)
Evgenij Smirnov
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 1. Juli 2019 06:14
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 9. Juli 2019 13:39
-
Da stellst du mich nun gedanklich vor ein Problem:
Was ist denn der Unterschied zwischen "abschneiden" und "verkleinern" bei einer Protokolldatei?
Rein technisch sehe ich da keinen;-).Wenn man regelmäßig abschneidet, entspricht der Whitespace in der LDF-Datei in etwa dem Wachstum zwischen den Log-Backups und hält sich somit in Grenzen. Da muss also nix verkleinert werden, nur damit die Datei zum nächsten Abschneide-Zyklus wieder anwächst.
Evgenij Smirnov