Mengapa file .bacpac sangat kecil dibandingkan dengan file .bak dari database yang sama?

39

Saya sudah melakukan backup database SQL Server 2014 Express saya untuk impor ke server lain dan melihat perbedaan ukuran file antara .bacpacdan .bak.

Mengapa .bacpacfile sangat kecil dibandingkan dengan .bakfile dari database yang sama?

Terima kasih atas wawasannya!

Chris
sumber

Jawaban:

42

SEBUAH

  • .bacpacfile = Skema + Data. Perhatikan bahwa Data BCP'ed menggunakan format Asli (tidak dapat dibaca oleh Manusia).

    • Anda dapat mengubah nama .bacpacmenjadi .zipuntuk melihat konten yang sebenarnya.

    • Anda dapat menggunakan ...DAC\bin\sqlpackage.exebaris perintah untuk mengekstrak .bacpackonten secara programatik.

    • Ini adalah snapshot yang mencakup data pengguna + Skema dari SQL Server atau Database Azure SQL.

-

  • Cadangan (biasanya memiliki .bakekstensi) = Cadangan basis data LENGKAP berisi salinan lengkap basis data dan memberikan satu titik waktu dimana basis data dapat dipulihkan. Cadangan lengkap berisi beberapa catatan log transaksi sehingga komponen yang dipulihkan (basis data, file, atau grup file) dapat dibuat konsisten secara transaksi.

A BACPACbukan merupakan pengganti untuk cadangan LENGKAP. Ini hanya snapshot yang dapat digunakan untuk memindahkan database dari satu server ke server lain (atau cloud) dan pengarsipan database yang ada dalam format terbuka .

Dari tes saya, di bawah ini hasilnya

masukkan deskripsi gambar di sini

Kin Shah
sumber
3
Jadi, informasi apa yang .bacpac hilang dari yang dimiliki file .bak, yang membuatnya lebih kecil?
AllTradesJack
1
File log mungkin merupakan alasan terbesar untuk perbedaan ukuran.
Paul Spangle
6
Saya berasumsi tidak ada data indeks di .bacpac juga, yang kemungkinan menjadi kontributor besar untuk ukuran file.
Rory
9
Dalam hal ini, ketika Anda memulihkan dari .bacpac, Anda perlu membangun kembali indeks, atau apakah ini dilakukan secara otomatis?
jocull