it-swarm-eu.dev

Proč je .bak tak menší než databáze, ze které je záloha?

Právě jsem si vzal zálohu databáze serveru SQL. Soubory MDF a LDF dohromady dohromady celkem 29 GB, ale soubor .bak byl pouze 23 GB, asi o 20% menší).

Můj první odhad, když je jedna verze sady dat menší než jiná verze obsahující stejná data, by byla komprese dat, ale komprese obvykle poskytuje mnohem lepší kompresní poměr než 20%, zejména u vysoce uspořádaných dat (jako jsou databázové tabulky). ) Komprimovaná data také nelze snadno komprimovat, ale vím, že soubory .bak lze komprimovat.

Takže pokud data nejsou komprimována a nic není zlikvidováno (protože celý bod vytvoření zálohy musí být schopen je poté obnovit do stejného stavu), za co je to 20%, na které není započítáno?

11
Mason Wheeler

Místo bylo přiděleno databázovým souborům, ale nebylo využito.

Můžete vytvořit novou databázi, změnit ji na 10 GB a zobrazit soubory, které přidělují toto místo na disku. Dokud však do databáze nevložíte data, je soubor v podstatě prázdný a velikost záložního souboru bude minimální.

HTH

16
SQLRockstar

Pro úplnou zálohu může být LDF obvykle ignorován

MDF obsahuje skutečná data

Soubor Bak obsahuje pouze datové stránky, které se používají uvnitř mdf. Určitý prostor nebude využit. Tento prostor je například režijním uživatelem pro opětovné vytvoření indexu.

Je docela typické mít 100 gb zálohu pro DB, která může mít 250 gb mdf. Pokud má mdf stejnou velikost jako moje záloha, znamenalo by to červenou vlajku o neočekávaném zmenšení DB nebo nedostatku místa na disku atd

10
gbn

Po vytvoření DB můžete určit (pro výkon), kolik místa chcete přidělit datovým a logovacím souborům. Tento prostor je poté vyhrazen, i když v tabulkách nejsou uložena žádná data. Zálohovány jsou pouze rozsahy, do nichž jsou zapsána data.

Ve vašem případě by vaše MDF/LDF celkem mohla být dokonce 100 GB, ale záloha by stále byla kolem 23 GB pro zálohu, kterou jste provedli. Pokud by bylo přidáno přibližně 1 GB dat, vaše MDF/LDF by celkem činila 100 GB, ale vaše záloha by nyní byla kolem 24 GB.

Plná záloha obsahuje všechny rozsahy, které v nich obsahují data, a kousek souboru protokolu. Plná záloha obsahuje všechna data od okamžiku, kdy byla úloha zálohování ukončena, a nejen od okamžiku, kdy byla úloha zálohy spuštěna; To je důvod, proč je také vyžadován trochu souboru protokolu.

4
StanleyJohns