MSSQL – shrink transakčního log souboru
Při nastavení FULL modu na MSSQL se někdy může stát, že se zasekne zálohování a velikost souboru transakčního logu nabobtná a po následujícím odzálohování zůstane velká. K opravě stačí pár příkazů v MSSQL studiu.
Základ je samozřejmě v tom, že transakční log musí být odzálohován, jinak nedojde ke shrinknutí souboru.
Nejdříve na dané DB spustíme příkaz ke zjištění ID souborů:
sp_helpfile
Dostaneme výpis ve tvaru (osobně jsem zapoměl zálohvoat trans log WSUS DB – má 30GB :D)
SUSDB 1 D:\SUSDB.mdf PRIMARY 878784 KB Unlimited 1024 KB data only
SUSDB_log 2 L:\SUSDB.ldf NULL 33507264 KB 2147483648 KB 10% log only
Potom stačí zadat to následujícího příkazu ID souboru a požadovanou velikost v MB (je možno zadat i co nejmenší, příkaz potom provede maximální zmenšení ale nedojde ke ztrátě dat)
dbcc shrinkfile (2,5000)
A je hotovo :D
Update 10.7.2012
Dneska jsem se pěkně zapotil, do DB mi uživatele nahrávali opravdu hodně dat a místo mizelo 30GB/15min (spustili dávkou import dokumentů z FS)….. zálohovací SW nestíhal, tudíž jsem musel použít přítele na telefonu, který mi poradil, jak rychle logy označit ke smazání (potom zafungoval shrink)
backup log DATABAZE to disk='D:\RESTORE\neco.bak' with no_log
Po dokončení importu spustím full backup a bude……

Upřímně jsem ocenil tento článek, který přináší skutečnou pomoc.