Po dlouhé době jsem se dostal opět k SQL Serveru 2000. Transakční logy dvou databází zabíraly mnoho GB, disk ve Virtual Serveru byl omezený a já si už zaboha nemohl vzpomenout, jak vyřešit situaci, kdy standardní shrink a full backup nepomáhá.
Celé tajemství je ve spuštění příkazu
BACKUP LOG vase_databaze WITH TRUNCATE_ONLY
Následně je možné buď přes GUI nebo spuštěním DBCC SHRINKFILE(nazev_log_souboru, 10) zmenšit log soubor (či spíše vytvořit zcela nový). Povinností po provedení předchozích kroků by mělo být okamžité spuštění full backupu databáze.
Je záhodno také prověřit, proč k tak velkému nárůstu log souboru došlo. Stává se, že:
- není spuštěn SQL Server Agent
- nebyly nadefinovány Database Maintenance Plans vůbec
- nebyl nadefinován backup transakčních logů v rámci Database Maintenance Plans
Zdroj:
INF: Shrinking the Transaction Log in SQL Server 2000 with DBCC SHRINKFILE