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, 8885 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
SQL Server 2008 R2 SP3 neue Instanz (10)

Frage von technikdealer zum Thema Windows Server ...

Microsoft
gelöst DRINGEND: Suche Microsoft SQL SERVER 2008 R2 STANDARD Eval (8)

Frage von Xaero1982 zum Thema Microsoft ...

Datenbanken
MS-SQL-Server + T-SQL+Batch (4)

Frage von kallewirsch zum Thema Datenbanken ...

Datenbanken
gelöst 1GB phpMyAdmin SQL Datei in SQL Server 2008 R2 importieren (7)

Frage von Himpke zum Thema Datenbanken ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...