ทำไมไฟล์. bacpac จึงเล็กเมื่อเทียบกับไฟล์. bak ของฐานข้อมูลเดียวกัน


39

ฉันได้รับการทำสำรองข้อมูลของฐานข้อมูลของฉัน SQL Server 2014 Express สำหรับการนำเข้าไปยังเซิร์ฟเวอร์อื่น ๆ และสังเกตเห็นความแตกต่างในขนาดไฟล์ระหว่างและ.bacpac.bak

ทำไม.bacpacไฟล์ถึงเล็กมากเมื่อเปรียบเทียบกับ.bakไฟล์ของฐานข้อมูลเดียวกัน

ขอบคุณสำหรับข้อมูลเชิงลึกใด ๆ !

คำตอบ:


42

  • .bacpacfile = Schema + Data โปรดทราบว่า Data นั้น BCP'ed ใช้รูปแบบเนทีฟ (มนุษย์ไม่สามารถอ่านได้)

    • คุณสามารถเปลี่ยนชื่อ.bacpacไป.zipเพื่อดูเนื้อหาที่แท้จริง

    • คุณสามารถใช้...DAC\bin\sqlpackage.execommandline เพื่อแยก.bacpacเนื้อหาโดยทางโปรแกรม

    • เป็นสแนปชอตที่มีข้อมูลผู้ใช้ + สคีมาจาก SQL Server หรือฐานข้อมูล Azure SQL

-

  • การสำรองข้อมูล (โดยทั่วไปมี.bakส่วนขยาย) = การสำรองฐานข้อมูลแบบเต็มประกอบด้วยสำเนาของฐานข้อมูลที่สมบูรณ์และให้เวลาในจุดเดียวที่ฐานข้อมูลสามารถเรียกคืนได้ การสำรองข้อมูลเต็มรูปแบบมีบางรายการบันทึกการทำธุรกรรมเพื่อให้ส่วนประกอบที่กู้คืน (ฐานข้อมูลไฟล์หรือกลุ่มไฟล์) สามารถทำธุรกรรมสอดคล้องกัน

A BACPACไม่ใช่ตัวสำรองสำหรับการสำรองข้อมูลเต็มรูปแบบ เพียงภาพรวมที่สามารถนำมาใช้ในการย้ายฐานข้อมูลจากเซิร์ฟเวอร์หนึ่งไปยังอีก (หรือไปยังระบบคลาวด์) และการเก็บฐานข้อมูลที่มีอยู่ในรูปแบบเปิด

จากการทดสอบของฉันด้านล่างคือผลลัพธ์

ป้อนคำอธิบายรูปภาพที่นี่


3
ดังนั้นข้อมูลใดเป็นบัคแพคขาดหายไปที่ไฟล์. บากทำให้มีขนาดเล็กลง?
AllTradesJack

1
ไฟล์บันทึกอาจเป็นสาเหตุที่ใหญ่ที่สุดสำหรับความแตกต่างของขนาด
Paul Spangle

6
ฉันคิดว่าไม่มีข้อมูลดัชนีใน. bacpac เช่นกันซึ่งน่าจะเป็นผู้บริจาครายใหญ่ให้กับขนาดไฟล์
Rory

9
ในกรณีนี้เมื่อคุณกู้คืนจาก. bacpac คุณจำเป็นต้องสร้างดัชนีใหม่อีกครั้งหรือทำสิ่งนี้โดยอัตโนมัติหรือไม่?
jocull
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.