Pourquoi un fichier .bacpac est-il si petit comparé à un fichier .bak de la même base de données?

39

J'ai effectué des sauvegardes de mes bases de données SQL Server 2014 Express pour les importer sur d'autres serveurs et j'ai remarqué une différence de taille de fichier entre .bacpacet .bak.

Pourquoi un .bacpacfichier est-il si petit comparé à un .bakfichier de la même base de données?

Merci pour toutes les idées!

Chris
la source

Réponses:

42

UNE

  • .bacpacfichier = Schéma + Données. Notez que les données sont BCP en utilisant le format natif (non lisible par l’homme).

    • Vous pouvez renommer le .bacpacpour .zipvoir le contenu réel.

    • Vous pouvez utiliser la ...DAC\bin\sqlpackage.exeligne de commande pour extraire le .bacpaccontenu par programmation.

    • Il s'agit d'une capture instantanée comprenant les données utilisateur + le schéma de SQL Server ou la base de données Azure SQL.

-

  • Sauvegarde (généralement associée à une .bakextension) = Une sauvegarde COMPLETE de la base de données contient une copie complète de la base de données et fournit un point unique dans lequel la base de données peut être restaurée. Une sauvegarde complète contient certains enregistrements du journal des transactions afin que le composant restauré (base de données, fichier ou groupe de fichiers) puisse être rendu cohérent sur le plan transactionnel.

A BACPACne remplace pas une sauvegarde COMPLETE. C'est juste un instantané qui peut être utilisé pour déplacer une base de données d'un serveur à un autre (ou vers le cloud) et pour archiver une base de données existante dans un format ouvert .

De mon test, voici les résultats

entrez la description de l'image ici

Kin Shah
la source
3
Alors, quelles sont les informations manquantes dans le fichier .bacpac du fichier .bak, qui le rend plus petit?
AllTradesJack
1
Le fichier journal est probablement la principale raison de la différence de taille.
Paul Spangle
6
Je suppose qu'il n'y a pas non plus de données d'index dans .bacpac, ce qui est susceptible de contribuer grandement à la taille du fichier.
Rory
9
Dans ce cas, lorsque vous effectuez une restauration à partir de .bacpac, devez-vous reconstruire les index d'une manière ou d'une autre, ou cette opération est-elle effectuée automatiquement?
Jocull