rainerr
Goto Top

SQL-Server 2000 Datenbank hat zu viel freien Speicher, wie verkleinern?

Windows Server 2000, MSSQL Server 2000 - Platzprobleme weil Datenbank 48 GB reserviert, aber eigentlich nur 36 GB benötigt.

Hallo,

ich habe das Problem, dass eine meiner SQL-Datenbanken insgesamt 48 GB Plattenspeicher reserviert, laut Enterprise Manager aber nur 36 GB davon belegt sind. Die restlichen 12 GB dümpeln so vor sich hin und werden anscheinend nicht benötigt. Da meine Plattenkapazität bald zur Neige geht und die Sicherung durch die Platzprobleme schon nicht mehr so will wäre ich für Tips zur Verkleinerung der 12 GB freien Speicher sehr dankbar. Eine neue Platte will ich nicht kaufen, weil der Server Ende Dezember sowieso abgelöst wird, aber bis dahin muss er und die Sicherung noch laufen. Ich schon den Task Datenbank verkleinern versucht, aber der hat nicht geholfen. Auch unter Eigenschaften den Reservierten Speicher zu verkleinern habe ich versucht - kommt aber nur eine Fehlermeldung, dass der Speicher größer sein muss als der aktuelle (Fehler 21335).

Weiß hier jemand weiter?

Vielen Dank.

Grüße

Rainer

Content-Key: 127973

Url: https://administrator.de/contentid/127973

Ausgedruckt am: 29.03.2024 um 10:03 Uhr

Mitglied: 2hard4you
2hard4you 27.10.2009 um 07:37:57 Uhr
Goto Top
Moin,

erst mal ein Backup der Transactionslogs machen - danach ein Shrink auf die Transaktionslogs (Backup schreibt TLs in DB und leert sich damit) - dann ein Backup der DB, dann DB shrinken (ggf. mehrmals anstoßen, ggf. stufenweise)

Gruß

24
Mitglied: RAINERR
RAINERR 27.10.2009 um 07:44:08 Uhr
Goto Top
Hallo 24,

erst mal ein Danke für die schnelle Antwort. Wenn mir der Enterprise-Manager aber die Größe der TL mit nur 100 MB anzeigt, hat das dann wirklich was mit meinem Speicherproblem zu tun? Sorry für die Frage, bin nicht so der SQL-Gott face-smile

Grüße

Rainer
Mitglied: 2hard4you
2hard4you 27.10.2009 um 07:49:29 Uhr
Goto Top
nö, dann passt das - wieviel freien Platz zeigt er in TL und DB an?

24
Mitglied: maretz
maretz 27.10.2009 um 07:49:51 Uhr
Goto Top
Moin,

in dem Fall würde ich dir raten da eine Firma anzurufen und dir den entsprechenden Fachmann zu holen.

An einer Datenbank rumzuschrauben ohne genau zu wissen was man da tut ist meistens ne einmalige Sache.

Hast du mal auf dem Dateisystem geguckt ob da viele 1000 kleine Dateien liegen (ne TS-Log kann durchaus auch im Byte-Bereich sein, ggf. mal nen KB oder 2). Wenn du jetzt 1000 TS-Logs hast die 2 KB haben -> deine Blocksize auf dem FS aber 32 KB hat dann hast du nicht 2 MB belegt - sondern 32 MB. Deine DB kann dir aber dann trotzdem sagen das deine TS-Logs nur 2 MB groß sind (ist ja auch richtig - die kann ja nix dafür das deine Blocksize im FS so hoch ist). Wenn du diesen Extrem-Fall mal auf 100 MB hochrechnest (d.h. um Faktor 50 hochrechnen dann liegst du hier schon bei 1,6 GB).

Wie machst du denn das Backup der DB (und wenn du jetzt sagst "Gar nicht" gibbet haue ;) )
Mitglied: RAINERR
RAINERR 27.10.2009 um 08:02:04 Uhr
Goto Top
Hallo,

die Sicherung läuft über einen Wartungsplan jeden Wochentag abends (manuelle Sicherung natürlich über einen neuen Task) . Es liegen im MSSQL Verzeichnis nur jeweils eine Log-Datei pro Datenbank.

Der freie Platz in den TL: 99 von 109 MB
Der freie Platz in der DB : 12003 MB von 48333 MB

Danke nochmal.

Grüße

Rainer
Mitglied: Logan000
Logan000 29.10.2009 um 11:52:02 Uhr
Goto Top
Moin Moin

die Sicherung läuft über einen Wartungsplan jeden Wochentag abends ...
Dann stell doch im gleichen Wartungsplan (oder auch in einen neuen) ein das die DB verkleinert werden soll.

Gruß L.
Mitglied: RAINERR
RAINERR 29.10.2009 um 12:38:10 Uhr
Goto Top
Hallo,

danke für den Tip - werde ich tun. Habe versucht die DB manuell zu verkleinern, dabei ist jedesmal der Enterprise Manager abgekackt. Komischerweise hat er dann über nacht die DB verkleinert und nun hat sie wieder eine annehmbare Größe.

Danke nochmal für die Tips.

Grüße

Rainer