Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL Server 2016 Grundkurs: Architektur, Komponenten und Installation

Aufträge über den SQL Server Agent anlegen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
In diesem Video erklärt Ihnen Daniel Caesar die Vorgehensweise, um Aufträge über den SQL Server Agent zu definieren und diese nach einem von Ihnen festgelegten Zeitplan von SQL Server 2016 ausführen zu lassen.
12:37

Transkript

In diesem Video geht es, um "SQL Server Agent"-Aufträge. Das heißt, ich möchte Ihnen jetzt detailliert zeigen, wie die Architektur der Aufträge aussieht, was dahinter steckt, was der Sinn ist, was es zu beachten gibt. Zunächst "SQL Server Agent", der Knoten "Aufträge". Aktueller Blick hinein. Wir haben hier ein zwei "Aufträge". Der von mir angelegt. Da ist ein Auftrag durchs System. Wenn ich diesen Auftrag jetzt nehme, Doppelklick, oder rechte Maustaste "Eigenschaften", kann ich dem Auftrag erst mal entnehmen, je nachdem, wie sinnvoll ich das ausgefüllt habe, dass es von meinem Namen her ein Wartungsauftrag ist, [tippen] dass der Besitzer, der ihn angelegt hat, in dem Fall "SQLXPERT" der Administrator ist, dass die Kategorie "Datenbankwartung" selektiert ist, dass ich das für mich kategorisieren kann, dass es ein Wartungsjob zur Überprüfung der "Adventureworks Datenbank" und eine vollständige Sicherung ist, was sich in diesem Auftrag verbirgt. Und das sind erstmal so die Daten, die ich im ersten Schritt zu diesem Auftrag entnehmen kann, wenn ich mir einfach diesen Auftrag anschaue. Ja, ein Auftrag ist also ein Job, ist als TSQL, SSIS, PowerShell oder Command, et cetera hinterlegt. Der Auftrag selber natürlich noch nicht, sondern im Detail, dann die einzelnen Auftragsschritte. Das heißt also, ein Auftrag (Job) im SQL-Server besteht aus Auftragsschritten und die sind dann letztendlich diesem Kontext zugeordnet. Das heißt, wenn wir jetzt mal hier reingehen, der Auftrag allgemein von seiner Beschreibung natürlich noch nicht, aber ein Auftrag besteht nun mal aus einem Schritt. Also ich kann das nochmal demonstrieren, indem ich einen neuen anlege, sage "Neuer Auftrag", "Wartung" und lege dann einen Schritt an und dieser Step, der wird jetzt vom Typ entweder T-SQL, PowerShell, Betriebssystem, Integration Services, CmdExec, je nachdem, was ich jetzt möchte ausgeführt. Ich breche das ab. Dieser Wartungsjob, also aus den zwei Schritten bestehend, "DBCC CHECKDB", also Konsistenzcheck vom Typ "T-SQL-Skript" und ein Backup vom Typ "T-SQL-Skript", je nachdem, was ich jetzt hier selektiere, gehe auf "Bearbeiten", sehe ich hier das T-SQL-Kommando, was ich also auch analysieren kann. Also wenn zum Beispiel jetzt hier "BACKUPiT" drinsteht und ich sage "Analysieren", dann sieht er schon, dass das nicht korrekt ist. Er past das also, sage jetzt "Analysieren". Das ist soweit völlig in Ordnung und damit habe ich also hier das definiert. Wenn wir einen Schritt weiterschauen auf unseren Folien, also wir haben gesagt ist "Job", besteht aus Schritten. Ein Auftrag (Job) wird im Kontext eines Benutzers ausgeführt. Was heißt das? Das bedeutet, dass natürlich jetzt ich hier gucken muss "Auführen als". Bei T-SQL-Jobs ist das leer, weil im Grunde die T-SQL-Jobs ja intern ausgeführt werden, innerhalb der "Database Engine". Wenn ich natürlich jetzt sage von der Kategorie, ich möchte hier einen neuen Step jetzt haben, "Neu" und der ist vom Typ jetzt Ausführung eines "CmdExec". Dann würde hier das Konto des "SQL Server Agent" verwendet. Standardmäßig, wenn ich sage "PowerShell", ist es standardmäßig der Agent. Wenn ich sage, es ist jetzt ein "Integration Services", ist es auch erstmal das Konto des Agent. Das muss natürlich später mal feiner präzisiert werden, weil ich sage mal 100 Aufträge, alles vom Kontext ist "Agent", die irgendwo, irgendwas machen und Berechtigungen müssen gesetzt werden. Das ist natürlich dann nicht optimal. Das heißt, wichtig ist erstmal zu verstehen, Aufträge werden also im Kontext eines Benutzers ausgeführt. Ein Auftrag (Job) kann interaktiv oder über Zeitpläne ausgeführt werden. Das heißt, Sie können natürlich ganz einfach einen Auftrag dort definieren, keinen Zeitplan bestimmen und das Ganze interaktiv regeln, oder eben über einen Zeitplan dann. Wenn ich jetzt diesen Auftrag mal nehme, klicke mal doppelt drauf, habe ich hier meinen Zeitplan. Dort ist einer hinterlegt. Über "Bearbeiten" kann ich einsehen, dass das Ganze wiederholt ausgeführt wird, der Zeitplan allerdings im Moment nicht aktiv ist. "Wöchentlich" und hier mein Sceduling erfolgt. Das heißt aber nicht, dass ich nicht trotzdem auch sagen kann "rechte Maustaste", also interaktiv, "Auftrag starten bei Schritt". Kommen dann in diesen Dialog, kann den Auftrag jetzt starten und jetzt wird dieser Auftrag angestartet. Es führt jetzt zu einem Fehler, wo ich dann natürlich später im Verlaufsprotokoll schauen muss, was ist dort faul. Das kann ich natürlich hier dann nochmal dediziert machen. Hier habe ich jetzt einen Auftrag, der wurde automatisiert ausgeführt. Hier ist jetzt ein Auftrag, der händisch ausgeführt wurde und ich sehe erstmal hier, okay, "Falsche Syntax in der Nähe von", "Fehler bei Schritt". Das heißt, offensichtlich ist irgendein syntaktisches Problem, was jetzt entstanden ist. "Wartung", "Schritte", "Backup", "Bearbeiten", So, wenn ich jetzt gucke "BACKUP DATABASE", der Befehl ist in Ordnung. Wenn ich mein "DBCC" bearbeite, hier gibt es einen Fehler. Hier steht jetzt irgendwas drin, was da nicht reingehört. "DBCC CHECK". "DB" ist die korrekte Anweisung. "Analysieren" ist an der Stelle okay. "OK", rechte Maustaste drauf, "Auftrag starten bei Schritt", "Starten". Jetzt nochmal überprüfen, ob das Ganze erfolgreich ausgeführt wird. Das ist es und ja, so habe ich jetzt die Möglichkeit, mir das Ganze natürlich im Verlauf nochmal anzuschauen. Erfolgreiche fehlerhafte Ausführung, erfolgreiche und kann also zusammenfassend sagen, dass ein Auftrag aus einzelnen Schritten besteht. Zeitpläne im Kontext eines Benutzers ausgeführt wird. Dass ein Auftrag zur Automatisierung von SQL-Server verwendet wird. Unter "Automatisierung" kann man sich hier zum Beispiel auch die Wartungspläne vorstellen, Das möchte ich kurz demonstrieren. Gehe zu meinem "SQL Server Agent", habe jetzt hier unter "Verwaltung" die Position "Wartungspläne", gehe mit der rechten Maustaste drauf: "Neuer Wartungsplan". Name belasse ich, "OK". Komme jetzt in eine Oberfläche, wo ich diese Wartungspläne bauen kann. Um das Ganze zu vereinfachen und jetzt von der Architektur her erstmal ganz simpel zu machen, "rechte Maustaste" am besten mit dem Assistenten. "Weiter", "Wartungsplan", "Konto des Agent-Dienstes", "Zeitplan". Im Moment "nicht geplant", ansonsten "Ändern" und dann habe ich einen Zeitplan drin, "Weiter". Ich möchte die Integrität prüfen und eine vollständige Sicherung ausführen. "Weiter", die zwei Schritte, "Weiter". Welche Datenbank? Die Integrität möchte ich prüfen von der "Adventureworks". "Weiter", sichern die "Adventureworks". "Weiter" und Bericht in Textdatei schreiben. Ich stelle das Ganze fertig und jetzt sieht man hier schon im Hintergrund, es ist erfolgreich erstellt. Wurde der Wartungsplan angelegt? Was mir an der Stelle wichtig ist zu zeigen, dass für diesen Wartungsplan im "SQL Server Agent" ein Auftrag hinterlegt wurde. Wenn ich doppelt draufklicke, kann ich unter "Schritte" sehen, dass es sich hier um ein SQL Server Integration Services-Paket handelt, was ausgeführt wird. Ich kann gucken, dass es einen Zeitplan gibt und kann mal gucken bei "Integration Services Paket", "Bearbeiten". Also der Typ ist jetzt nicht "T-SQL", sondern "Integration Services Paket". Das Paket liegt auf dem Server, auf dem "SRVSQL1" unter "Wartungspläne". Und das überprüfe ich jetzt mal. Dazu kann ich mich hier links in meinem Managementstudio, mache das mal hier ein bisschen zusammen, dass wir das besser sehen, verbinden mit den "Integration Services". Hier habe ich "Ausgeführte Pakete", hier habe ich "Gespeicherte Pakete", "MSDB", Wartungspläne. Da ist mein Paket. " Rechte MaustastePaket ausführen". Ein separates Programm, ein Paketausführungsprogramm. Status "Überprüfung ist abgeschlossen". Ja, also hier die Möglichkeit das auszuführen über den Weg. Ich kann das exportieren, importieren und habe hier also meine Integration Services, wo dieses Paket jetzt gespeichert ist, oder abgelegt ist, dass ich es einsehen kann. Und in meinem SQL Server, also ich trenne das hier wieder, in der relationalen Datenbank Engine im Agent, der Auftrag im Agent angelegt ist, dass der jetzt getimet entsprechend auch ausgeführt wird. Wir schauen uns als nächstes nochmal an, was fehlt. Ein wichtiger Hinweis, ein Auftrag kann aktiv oder nicht aktiv sein. Das bedeutet im Grunde genommen, Sie können natürlich sagen, ich möchte das jetzt hier auch deaktivieren. Dann wird er nicht ausgeführt oder Sie sagen, der soll aktiv sein in dem Fall. Aber Sie möchten vielleicht den hier, weil das ein separater von Ihnen nochmal angelegter ist, deaktivieren. Dann wird dieser jetzt über den Zeitplan ausgeführt und den können Sie dann trotzdem nach Bedarf starten und ausführen lassen. Also das ist dann die interaktive Möglichkeit, so dass also hier sowohl deaktivierte als auch aktivierte Zeitpläne, beziehungsweise Aufträge mit den jeweiligen Zeitplänen natürlich existieren können und Sie dann bei Bedarf interaktiv bestimmen können, was Sie an der Stelle wollen. Zusammenfassend lässt sich sagen, es SQL Server Agent-Aufträge ist eine tolle Geschichte, weil ich hier Automatisieren kann. Es sei an der Stelle noch der Hinweis gesagt, dass die "SQL Server Express Edition" über keinen "SQL Server Agent" verfügt. Der ist also da nicht nutzbar, aber ich hätte dort zumindest die Alternative mit T-SQL-Skripte zu bauen und diese über den Server dann über einen AT-Befehl zu scedulen. Und ich habe ja "SQL Command". Also die Kommandozeile kann dann das Skript übergeben, das SQL-Skript und über diesen Weg natürlich auch Skripte ausführen lassen für Wartungsaufgaben, T-SQL-Skripte. So ist erstmal die Situation. Der Agent, die Automatisierungskomponente für T-SQL Integration Services, PowerShell oder Command, was ich dort ausführen kann. Ein Auftrag besteht aus Schritten. Das Ganze wird im Kontext eines Benutzers ausgeführt so ein Schritt. Es kann interaktiv oder über Zeitpläne geschehen. Jobs in der Automatisierung, inklusive dem Thema "Wartungspläne" und solche Jobs können Sie aktiv oder nicht aktiv haben, je nach Bedarf.

SQL Server 2016 Grundkurs: Architektur, Komponenten und Installation

Lernen Sie die Architektur und Komponenten des SQL Server 2016 kennen, installieren Sie ihn und unternehmen Sie die ersten Schritte in der Administration.

4 Std. 57 min (46 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:19.04.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!