Zmenšení databázového logu
Občas může nastat situace, kdy databázový log (*.ldf soubor) jedné nebo více databází Varia naroste na neúnosnou mez a hrozí nedostatek místa na disku, v jehož důsledku nebude možno s databází pracovat. Tato situace nastane v okamžiku, kdy dochází k hromadným logovaným operacím s velkým množstvím záznamů (např. importy nebo mazání). V takovém okamžiku je potřeba zmenšit databázový log, aby se uvolnilo místo na disku. To můžete udělat dvěma způsoby podle toho, který vám v daný okamžik bude fungovat a vyhovovat.
1) V Query Analyzeru, nebo podobném nástroji napište následující příkaz:
USE JMENODB
BACKUP LOG JMENODB WITH NO_LOG DBCC SHRINKFILE ('logfile name')
např.:
USE DATA0001
BACKUP LOG DATA0001 WITH NO_LOG DBCC SHRINKFILE ('DATA0001_log')
2) Použijte proceduru spav_shrinklogs nebo spav_shrinklog v závislosti na tom, zda chcete oříznout log všech databází Varia, nebo pouze konkrétní databáze (syntaxe - viz. Uložené procedury v databázi master).
např.: spav_shrinklogs 1
ořízne logy databází Data, DMaj, DMzd, DOLE a DUct s číslem 0001 a 5001
3) Použijte uložené procedury sp_detach_db a sp_attach_db uložené v databázi master (viz. Books Online).
a) pomocí příkazu sp_detach_db 'dbname' odpojte databázi, jejíž log chcete zmenšit
např.: sp_detach_db 'Data0001'
b) smažte soubor(y) logu (*.ldf) přidružené k databázi
c) pomocí příkazu sp_attach_db 'dbname', 'filename' opět databázi připojte. SQL server si vytvoří nový prázdný log v adresáři, ve kterém je umístěn datový soubor.
např.: sp_attach_db 'Data0001' , 'd:\sqldata\Data0001.mdf'
Pokud chcete tuto operaci provést se všemi databázemi Varia, můžete pro odpojení a připojení použít procedury spav_odpojdata a spav_pripojdata uložené v databázi master (syntaxe - viz. Uložené procedury v databázi master).
např.: spav_odpojdata 1
odpojí všechny databáze Data, DMaj, DMzd, DOLE a DUct s číslem 0001 a 5001
Nezapomeňte, že si musíte být jisti tím, co děláte a že máte dostatečné zálohy pro případ neúspěchu !!!Nemůžeme ručit za to, že se něco nepovede.