03.01.2017, Vladimír Klaus, navštíveno 2913x
Nedávno jsem řešil zálohování SQL Server databáze, na čemž není nic zvláštního. Až tedy na to, že záložní soubor je velký jako originál a pokud chcete zachovávat více záloh, je to trochu náročnější na prostor. Začal jsem tedy přemýšlet nad komprimací. Možností je řada - počínaje instalací nějakého prográmku typu WinRAR, přes vytvoření vlastní utility na kompresi nebo zapnutí komprese přímo na SQL Serveru. Nakonec jsem zvolil ještě jiné řešení, protože jeho využití je zcela obecné a nemá nic společného s databázemi.
Tím řešením bylo využití komprese do CAB souboru, což podporují všechny modernější verze Windows, aniž by bylo třeba cokoliv instalovat.
Základní příkaz pro komprimaci je opravdu velmi jednoduchý
makecab c:\Zaloha.bak c:\Zaloha.cab
V případě komprimace zazálohované databáze SQL Serveru dosáhnete úžasné 90% úspory místa, což se v případě velkých souborů opravdu vyplatí, i když to chvíli trvá. Zvláště pokud je třeba ještě přes FTP někam kopírujete.
Soubory CAB jsou samozřejmě v systému automaticky podporovány.
Ale to není vše, co můžete při komprimaci udělat. Co třeba takhle samorozbalovací archiv? Není problém.
@echo off
makecab Zaloha.bak Zaloha.cab
copy /b "%windir%\system32\extrac32.exe"+"Zaloha.cab" "Zaloha.exe"
del /q /f "Zaloha.cab"
V této dávce se provede běžná komprimace a pak se výsledný soubor "spojí" s extrahovacím programem a výsledek uloží do samorozbalovacího EXE souboru. Nakonec se zdrojový CAB smaže.
Pokud pak spustíte vytvořený EXE soubor (ve stejné složce), automaticky se zeptá na přepis stávajícího souboru a po potvrzení dojde k jeho rozbalení.
Jednoduché, funkční, univerzální.
Zdroje: