Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

MS SQL Wartungs Batch

Frage Entwicklung Datenbanken

Mitglied: yearzero

yearzero (Level 1) - Jetzt verbinden

16.02.2010, aktualisiert 17:35 Uhr, 3164 Aufrufe, 2 Kommentare

Hallo zusammen


Ich habe versucht einen Batch zu schreiben der die Wartung userer SQL Datenbank vereinfacht. (verwendete SW: SQL Server Management Studio Express 2005)
Ziel ist es folgende Scripts in einem Batch zusammenzufassen:
DBCC CHECKDB
REORGANIZEINDEX --> Script von MSDN zum identifizieren von Indexen welche fragmentiert sind und defragmentiert diese
DBCC SHRINKDATABASE

Da aber im Batch unterbrochen werden soll, wenn ein Fehler autaucht, habe ich versucht mit if %errorlevel%==0 das Script zu unterbrechen
Das ganze wird dann in einem log file gespeichert.

Da ich jedoch nicht so eine grosse Ahnung von Batch Files und SQL habe, habe ich keine Ahnung ob das ganze so einen Sinn macht oder ob es bessere Varianten gibt.
Der Batch funktioniert zwar und auch das Log wird wie gewünscht erstellt, jedoch habe ich keine Ahnung was passieren würde, wenn ein Fehler in einem der Scripts passieren würde.

Batch File:

01.
@echo on 
02.
REM Wartung der DB Spirateam 
03.
 
04.
cd /d D:\xxx\App\3pa\MsSqlDbms\Maintenance 
05.
 
06.
del SpiraTeamDB_Maintenance.txt.temp 
07.
rename SpiraTeamDB_Maintenance.txt SpiraTeamDB_Maintenance.txt.temp 
08.
 
09.
 
10.
echo ***************************SQL Spirateam Check1*************************** >> D:\xxx\App\3pa\MsSqlDbms\Maintenance\SpiraTeamDB_Maintenance.txt 
11.
"D:\xxx\App\3pa\MsSqlDbms\90\Tools\Binn\SQLCMD.EXE" -S.\SQLExpress -i D:\xxx\App\3pa\MsSqlDbms\Maintenance\SpiraTeamDB_Check.sql -V 1 >> D:\xxx\App\3pa\MsSqlDbms\Maintenance\SpiraTeamDB_Maintenance.txt 
12.
 
13.
if %errorlevel%==0 ( 
14.
	echo ***************************SQL Spirateam ReorganizeIndex*************************** >> D:\xxx\App\3pa\MsSqlDbms\Maintenance\SpiraTeamDB_Maintenance.txt 
15.
	"D:\xxx\App\3pa\MsSqlDbms\90\Tools\Binn\SQLCMD.EXE" -S.\SQLExpress -i D:\xxx\App\3pa\MsSqlDbms\Maintenance\ReorganizeIndex.sql -V 1 >> D:\xxx\App\3pa\MsSqlDbms\Maintenance\SpiraTeamDB_Maintenance.txt 
16.
) else ( 
17.
	pause 
18.
 
19.
20.
 
21.
if %errorlevel%==0 ( 
22.
	echo ***************************SQL Spirateam Shrink*************************** >> D:\xxx\App\3pa\MsSqlDbms\Maintenance\SpiraTeamDB_Maintenance.txt 
23.
	"D:\xxx\App\3pa\MsSqlDbms\90\Tools\Binn\SQLCMD.EXE" -S.\SQLExpress -i D:\xxx\App\3pa\MsSqlDbms\Maintenance\SpiraTeamDB_Shrink.sql -V 1 >> D:\xxx\App\3pa\MsSqlDbms\Maintenance\SpiraTeamDB_Maintenance.txt 
24.
) else ( 
25.
	pause 
26.
 
27.
28.
 
29.
 
30.
if %errorlevel%==0 ( 
31.
	echo ***************************SQL Spirateam Check2*************************** >> D:\xxx\App\3pa\MsSqlDbms\Maintenance\SpiraTeamDB_Maintenance.txt 
32.
	"D:\xxx\App\3pa\MsSqlDbms\90\Tools\Binn\SQLCMD.EXE" -S.\SQLExpress -i D:\xxx\App\3pa\MsSqlDbms\Maintenance\SpiraTeamDB_Check.sql -V 1 >> D:\xxx\App\3pa\MsSqlDbms\Maintenance\SpiraTeamDB_Maintenance.txt 
33.
) else ( 
34.
	pause 
35.
 
36.
37.
 
38.
Pause
[Edit Biber] Codeformatierung [/Edit]
Mitglied: Biber
16.02.2010 um 19:37 Uhr
Moin yearzero,

willkommen im Forum.
Da aber im Batch unterbrochen werden soll, wenn ein Fehler autaucht, habe ich versucht mit if %errorlevel%==0 das Script zu unterbrechen

Okay.........

Ja.......

Das klappt ja, aber.....

?? Ist das denn der ganze Plan?
Oder anders gefragt...
Ein Batch/Skriptablauf ist ja eigentlich nur sinnvoll, wenn sich dadurch etwas automatisieren lässt.
Und alle Erfolgs/Fehlerfälle irgendwie zu einem weiteren Prozess-Ablauf linksrum oder rechtsrum führen.
"alle Fälle" natürlich in der Bedeutung von "alle Fälle, an die ich beim Skripten gedacht habe".

Wenn du einen Schönwetterbatch schreibst wie oben, der -sollte kein Fehler auftreten- anstandslos jede Nacht um 03:34h automatish gestartet wird und sich im 03:37 wieder schlafen legt....okay.

Wenn aber die einzige Reaktion auf einen Fehler ist (so wie oben), dass morgens wenn die Putzfrau kommt irgendwo auf einem der Bildschirme ein "bitte beliebige Taste drücken" leuchtet...

Hmm.. dieser Plan hat noch Potentiale.

-> In das Log MUSS geschrieben werden, wenn es klappt, ja. Aber erst recht, wenn es nicht klappt und der Rest abgebrochen wurde.

-> Wenn der Batch nicht "allein" auf einen Fehler reagieren kann, sondern mit PAUSE warten muss, bis ein beherztes Admin-Wesen Strg-C drückt oder den Netzstecker zieht...

Dann wartet noch mit dem Skripten und sortiert/diskutiert erstmal, ob und was da automatisierbar ist.

[Ist nicht gehässig, sondern durchaus konstruktiv gemeint!]

Grüße
Biber
Bitte warten ..
Mitglied: yearzero
17.02.2010 um 08:25 Uhr
Vielen Dank für die Antwort

Was deine Kritik angeht, hast du absolut recht. Es braucht immer noch irgendjemand der Anwesend ist wenn das Script läuft.

Es ist jedoch so, dass wir bis jetzt immer einmal im moment jedes dieser SQL Scripts einzeln ausgeführt haben um die DB zu warten. Dies benötigte auch einen Admin und brauchte auch mehr Zeit.
Ziel dieses Batches ist es, dass der Admin nur noch den Batch ausführen kann, statt jedes Script einzeln.
Aber langsam frage ich mich ob es wirklich Sinnvol ist so.
Bitte warten ..
Ähnliche Inhalte
Datenbanken
MS-SQL-Server + T-SQL+Batch
Frage von kallewirschDatenbanken4 Kommentare

Hallo Gemeinde, mal wieder ein Problem aus dem Bereich des MS-SQL-Servers. Folgendes Thema: Nachts sollen automatisch Backups der DBen ...

Windows Server
Neuer MS-SQL-Server
gelöst Frage von tingelWindows Server1 Kommentar

Hallo, Ich bin gerade dabei, mir Gedanken zu machen, wie ich am besten unseren SQL-Server 2008 SP3 auf eine ...

Windows Server
MS SQL Login Problem
gelöst Frage von theoberlinWindows Server26 Kommentare

Hallo zusammen, Umgebung ist 2012r2 Domäne und MS SQL Express 2014 auf VM. ich habe folgende 2 Probleme: 1. ...

Switche und Hubs
Abfragetimeout MS SQL Server
gelöst Frage von docteurbushSwitche und Hubs3 Kommentare

Ich habe mal eine Frage: Folgendes Szenario -> WebApplikation (sowohl in PHP als auch ASP Classic), virtueller WebServer, physischer ...

Neue Wissensbeiträge
Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 50 MinutenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 4 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...