Reduzieren der Größe der SQL-Sicherung?

8

Ich verwende SQL Express 2005 und mache jeden Abend eine Sicherungskopie aller DBs. Ich bemerkte, dass eine DB immer größer wurde. Ich schaute auf die DB und kann nicht sehen, warum sie so groß wird! Ich habe mich gefragt, ob es etwas mit der Log-Datei zu tun hat?

Auf der Suche nach Tipps, wie man herausfinden kann, warum es so groß wird, wenn es nicht so viele Daten enthält - Wie kann man auch die Größe optimieren / reduzieren?

    
leen3o 20.08.2009, 09:53
quelle

6 Antworten

16

Mehrere Dinge zu überprüfen:

  • ist Ihre Datenbank im "einfachen" Wiederherstellungsmodus? Wenn dies der Fall ist, werden viel weniger Transaktionsprotokolleinträge erzeugt und die Sicherung wird kleiner. Empfohlen für die Entwicklung - aber nicht für die Produktion

  • Wenn es im Wiederherstellungsmodus "FULL" ist - führen Sie regelmäßige Transaktionsprotokollsicherungen durch? Das sollte das Wachstum des Transaktionsprotokolls begrenzen und somit die Backup-Gesamtgröße reduzieren

  • hast du in letzter Zeit DBCC SHRINKDATABASE(yourdatabasename) darauf gespielt? Das kann helfen

  • Haben Sie Protokoll- / Logging-Tabellen in Ihrer Datenbank, die sich im Laufe der Zeit füllen? Können Sie einige dieser Einträge entfernen?

Sie können das Wiederherstellungsmodell der Datenbank finden, indem Sie zum Objekt-Explorer gehen, mit der rechten Maustaste auf Ihre Datenbank klicken, "Eigenschaften" auswählen und dann die Registerkarte "Optionen" im Dialogfeld auswählen:

alt text http://i31.tinypic.com/14dlkci.jpg

Marc

    
marc_s 20.08.2009, 09:55
quelle
9

Wenn es die Sicherung ist, die wächst und wächst, hatte ich das gleiche Problem. Es ist natürlich kein "Problem", das passiert mit Absicht - Sie erstellen lediglich ein Backup-Set, das einfach erweitert wird, bis der gesamte verfügbare Platz belegt ist.

Um dies zu vermeiden, müssen Sie die Überschreiboptionen ändern. Klicken Sie im SQL-Verwaltungsstudio mit der rechten Maustaste auf Ihre Datenbank, TASKS - BACKUP, dann wird im Fenster für die Sicherung standardmäßig die Seite "Allgemein" angezeigt. Ändern Sie dies zu "Optionen" und Sie erhalten eine andere Auswahl.

Die Standardoption oben ist "An den vorhandenen Mediensatz anhängen". Dadurch erhöht sich die Größe Ihrer Sicherung auf unbestimmte Zeit. Ändern Sie dies in "Alle vorhandenen Backup-Sätze überschreiben", und das Backup wird immer nur so groß wie ein ganzes Backup sein, das letzte.

(Wenn Sie ein SQL-Skript haben, drehen Sie "NOINIT" zu "INIT")

ACHTUNG: Dies bedeutet, dass die Sicherung nur die letzten Änderungen ist - wenn Sie vor drei Tagen einen Fehler gemacht haben, aber nur die Sicherung der letzten Nacht haben, sind Sie vollgestopft. Verwenden Sie diese Methode nur, wenn Sie über ein Backup-System verfügen, das Ihre .bak-Datei täglich an einen anderen Speicherort kopiert, damit Sie zu einer dieser Dateien der vorherigen Tage zurückkehren können.

    
Michael P 05.07.2013 09:23
quelle
3

Es scheint, als ob Sie mit dem Wiederherstellungsmodell FULL arbeiten, und das Transaktionsprotokoll wächst kontinuierlich, da keine Transaktionsprotokollsicherungen erstellt wurden.

Um dies zu beheben, müssen Sie:

  • Führen Sie eine Transaktionsprotokollsicherung durch. (Siehe: BACKUP (TRANSACT-SQL) )
  • Schrumpfen Sie die Transaktionslogdatei herunter auf eine angemessene Größe für Ihre Bedürfnisse. (Siehe: So verwenden Sie DBCC SHRINKFILE ....... )
  • Planen Sie das reguläre Transaktionslog ein Backups nach Datenwiederherstellung Anforderungen.

Ich empfehle, die folgende Microsoft-Referenz zu lesen, um sicherzustellen, dass Sie Ihre Datenbankumgebung entsprechend verwalten.

Wiederherstellungsmodelle und Transaktionsprotokollverwaltung

Weitere Informationen: So verhindern Sie, dass das Transaktionsprotokoll einer SQL Server-Datenbank unerwartet vergrößert wird

    
John Sansom 20.08.2009 10:30
quelle
0

Ein Tipp, um Datenbanken klein zu halten, wäre zur Entwurfszeit, verwenden Sie den kleinsten Datentyp, den Sie verwenden können.

für Beispiel Sie können eine Statustabelle haben, benötigen Sie wirklich den Index, um ein int zu sein, wenn ein smallint oder tinyint tun wird?

Dunkelnacht

    
Darknight 20.08.2009 10:15
quelle
0

wie Sie eine tägliche FULL-Sicherung für Ihre Datenbank tun, natürlich wird es mit der Zeit so groß werden. Du musst also einen Plan für dich machen. als dies 1. Tag: VOLL / 2. Tag: DIFFERENTIAL / 3. Tag: DIFFERENTIAL / 4. Tag: DIFFERENTIAL / 5. Tag: DIFFERENTIAL

und dann von vorne beginnen.

und wenn Sie Ihre Datenbank wiederherstellen, wenn Sie die FULL wiederherstellen möchten, können Sie es leicht tun, aber wenn Sie die DIFF-Version wiederherstellen müssen, sichern Sie das erste FULL davor mit "NO-Recovery" dann das DIFF Sie brauchen, und dann haben Sie Ihre Daten sicher zurück.

    
Arrabi 16.12.2009 16:17
quelle
0

7zip Ihre Sicherungsdatei für die Archivierung. Ich habe kürzlich eine Datenbank in eine 178 MB große .bak-Datei gesichert. Nach der Archivierung in eine .7z-Datei war nur 16 MB. Ссылка

Wenn Sie ein Archiv-Tool benötigen, das mit größeren Dateien effizienter und schneller arbeitet als 7zip, sollten Sie sich die LZ4-Archivierung ansehen. Ich habe es für die Archivierung von Dateisicherungen seit Jahren ohne Probleme verwendet: Ссылка

    
Chaoix 22.02.2017 16:41
quelle

Tags und Links