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

Mitglied: yearzero

yearzero (Level 1) - Jetzt verbinden

16.02.2010, aktualisiert 17:35 Uhr, 3227 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

SQL-Server 2008 Wartung - Performanceprobleme

Frage von westberlinerWindows Server10 Kommentare

Hallo Zusammen, ich habe hier ein DMS-System laufen (Accantum), welches auf einer SQL 2008 Datenbank schreibt. Nun bekomme ich ...

Windows Tools

MS SQL Instanz

Frage von sebastian2608Windows Tools6 Kommentare

N´ Abend Leute, heute habe ich einen besonders seltsamen Fall für euch ;) Folgende Grundsituation: Ein Bekannter hatte bis ...

Netzwerke

LWL Wartung

gelöst Frage von sabinesNetzwerke6 Kommentare

Moin, hat hier schon mal einer eine LWL Wartung gemacht? Ich habe grade einen ehemaligen Kollegen gesprochen, der mir ...

Neue Wissensbeiträge
Rechtliche Fragen
Unitymedia siegt vor dem BGH
Information von transocean vor 13 StundenRechtliche Fragen3 Kommentare

Moin, lt. einem aktuellen Urteil darf UM Mietrouter seiner Kunden weiterhin in Hotspots verwandeln. Nachlesen kann man das hier. ...

Router & Routing
Der "768k-Day" kommt
Information von LordGurke vor 1 TagRouter & Routing2 Kommentare

Für Leute, die Router mit BGP-Fulltable betreiben vielleicht ein interessanter Hinweis: Die IPv4-Fulltable erreicht voraussichtlich innerhalb der nächsten 2-3 ...

Debian

Partition angeblich voll, dabei aber noch nicht mal zur Hälfte belegt

Anleitung von diemilz vor 1 TagDebian8 Kommentare

Hallo zusammen, ich habe ein kleines Problem: Ich habe auf einem physischen Debian Linux Server als ZoneMinder-Server (HP ProLiant ...

Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 6 TagenWindows 73 Kommentare

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Heiß diskutierte Inhalte
HTML
Bild hochladen mit html auf die Webseite
gelöst Frage von WorldoftheitHTML63 Kommentare

Will eine Seite entwickeln im Internet aber Das Bild wird nicht angezeigt woran kann das liegen? Wäre für jede ...

Vmware
Terminalserver VM - Videos ruckeln
Frage von easyriderVmware29 Kommentare

Hallo zusammen, wir haben einen (free) ESXi 5.5 auf einem HP DL 380 G8 im Einsatz. Darauf läuft, unter ...

Backup
Veeam Community Edition
gelöst Frage von dgrebnerBackup23 Kommentare

Hallo Zusammen, kann jemand seine praktischen Erfahrungswerte mit der Veeam-Community Edition mit mir teilen? Es gab dazu ja schon ...

Festplatten, SSD, Raid
Harddisk kaputt, was sagt mir ChrystalDiskInfo
gelöst Frage von InfoSeekerFestplatten, SSD, Raid23 Kommentare

Hallo zusammen, Mein Rechner lahmt. Ich stell mir die Frage woran es liegt und bin der Meinung es ist ...