Warum ist eine .bacpac-Datei so klein im Vergleich zu einer .bak-Datei derselben Datenbank?

39

Ich habe Sicherungen meiner SQL Server 2014 Express-Datenbanken für den Import auf andere Server durchgeführt und einen Unterschied in der Dateigröße zwischen .bacpacund festgestellt .bak.

Warum ist eine .bacpacDatei so klein im Vergleich zu einer .bakDatei derselben Datenbank?

Vielen Dank für eventuelle Einblicke!

Chris
quelle

Antworten:

42

EIN

  • .bacpacDatei = Schema + Daten. Beachten Sie, dass Daten im nativen Format (nicht für Menschen lesbar) per BCP ausgegeben werden.

    • Sie können die umbenannt werden, .bacpacum .zipden tatsächlichen Inhalt zu sehen.

    • Mit der Befehlszeile können Sie ...DAC\bin\sqlpackage.exeden .bacpacInhalt programmgesteuert extrahieren .

    • Es ist eine Momentaufnahme , die Benutzerdaten + Schema von SQL Server oder Azure SQL-Datenbank enthält.

-

  • Backup (normalerweise mit .bakErweiterung) = Ein FULL-Datenbank-Backup enthält eine vollständige Kopie der Datenbank und bietet einen einzigen Zeitpunkt, zu dem die Datenbank wiederhergestellt werden kann. Eine vollständige Sicherung enthält einige Transaktionsprotokolldatensätze, damit die wiederhergestellte Komponente (Datenbank, Datei oder Dateigruppe) transaktionskonsistent gemacht werden kann.

A BACPACist kein Ersatz für eine vollständige Sicherung. Es ist nur ein Schnappschuss, mit dem eine Datenbank von einem Server auf einen anderen (oder in die Cloud) verschoben und eine vorhandene Datenbank in einem offenen Format archiviert werden kann .

Nachstehend sind die Ergebnisse meines Tests aufgeführt

Bildbeschreibung hier eingeben

Kin Shah
quelle
3
Welche Informationen fehlen in der .bacpac-Datei, wodurch sie kleiner wird?
AllTradesJack
1
Die Protokolldatei ist wahrscheinlich der größte Grund für den Größenunterschied.
Paul Spangle
6
Ich nehme an, dass auch im .bacpac keine Indexdaten vorhanden sind, was wahrscheinlich einen GROSSEN Beitrag zur Dateigröße leistet.
Rory
9
In diesem Fall müssen Sie beim Wiederherstellen aus .bacpac die Indizes irgendwie neu erstellen, oder erfolgt dies automatisch?
Jocull