Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Datenbank verkleinern Task auf MS-SQL-Server 2008 meldet Erfolg - tut aber nichts

Frage Entwicklung Datenbanken

Mitglied: pgmende

pgmende (Level 1) - Jetzt verbinden

06.06.2011 um 11:29 Uhr, 8994 Aufrufe, 2 Kommentare

Der Wartungsplan zum Verkleinern zeigt keine Auswirkungen

Hallo!

Wir haben hier einen MS SQL Server 2008 R2 auf Windows Server 2008 R2.
Auf dem Server laufen diverse Datenbanken und ich habe für diese u.a. einen Wartungsplan erstellt, der diese Datenbanken verkleinert.
Der Task startet zwar automatisch und meldet auch Erfolg - an der Größe der DB ändert er jedoch nichts.

Eine DB hat z.B. 2.500 GB und davon 700 MB freien Speicherplatz lt. Eigenschaften. Wenn ich jetzt im Task als Grenze 50 MB (Datenbank verkleinern, wenn sie folgende Größe überschreitet) und als Menge der freien Speicherplatzes nach dem Verkleinern auf 10% setze müsste er doch eigentlich arbeiten.

Stattdessen startet der Task, läuft ein paar Sekunden, und meldet danach "Datenbank verkleinern (Erfolg)".
An der Größe der DB hat sich nichts geändert.
Das zugehörige T-SQL-Script sieht so aus:

USE [DBTEST]
GO
DBCC SHRINKDATABASE(N'DBTEST', 8, TRUNCATEONLY)

Stimmt da etwas nicht?
Muß ich damit rechnen, daß andere Tasks (Statistiken aktualisieren, Indizes neu erstellen usw.) ebenso "zuverlässig" laufen?
Die sind auch alle als erfolgreich gekennzeichnet...

Gruß,
Andreas
Mitglied: AndreasHoster
06.06.2011 um 12:19 Uhr
Meine Hilfe zu Transact SQL sagt:
>TRUNCATEONLY
>Bewirkt, dass aller ungenutzter Speicherplatz in der Datendatei an das Betriebssystem freigegeben wird, und verkleinert die Datei auf den letzten reservierten Block. Damit wird die >Dateigröße reduziert, ohne Daten zu verschieben. Es wird nicht versucht, Zeilen auf nicht reservierte Seiten zu verschieben. Bei Verwendung von TRUNCATEONLY wird target_percent >ignoriert.
Wichtig ist:
Verkleinert auf den letzten reservierten Block.
Wenn der in der Datei ganz hinten ist, dann wird nichts verkleinert.

Versuchs mal ohne TRUNCATEONLY, allerdings wird es bei 2.500 GB (falls das tatsächlich 2,5TB sein sollen) etwas dauern, weil die Daten dabei umkopiert werden. Auch bei nur 2,5GB wirds ein paar Minuten bis Stunden dauern (kommt auf die I/O Leistung der Platten an).
Desweiteren wäre interessant, welche Dateien so groß werden. Die Datenbankdateien (.mdf und .ndf) oder die Log-Dateien (.ldf)
Wenn es die Log-Dateien sind, würde ich empfehlen, mal etwas Literatur zu Transaktionsprotokollen und Sicherung zu lesen.
Bitte warten ..
Mitglied: pgmende
06.06.2011 um 13:02 Uhr
Hallo Andreas,

das mit dem letzten Block klingt logisch - das habe ich wohl übersehen.

Besten Dank für Deine Antwort, so hat es nun funktioniert.
Ist nur blöd, daß der Wartungsplan-Task automatisch mit "TRUNCATEONLY" arbeitet. Ich habe das nun als "T-SQL-Anweisungstask" geplant und das Script entsprechend angepasst. Ein erster Testlauf war erfolgreich.

Gruß,
Andreas
Bitte warten ..
Ähnliche Inhalte
Windows Server
gelöst MS SQL Express 2008 - Wie kann ich das Logfile verkleinern? (3)

Frage von ChrisR zum Thema Windows Server ...

Datenbanken
SQL Server 2008 R2 iso (3)

Frage von Doktore77 zum Thema Datenbanken ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

LAN, WAN, Wireless
Rogue Access Point (20)

Frage von Axel90 zum Thema LAN, WAN, Wireless ...

Webbrowser
Windows 7 unbeliebte Internetseite sperren (13)

Frage von Daoudi1973 zum Thema Webbrowser ...

E-Mail
Fake E-Mail in Outlook für Demonstartionszwecke (12)

Frage von sascha382 zum Thema E-Mail ...