Na MSSQL serveru se občas stává, že backupování přestane truncatovat transaction log a ten narůstá a narůstá.
Z nějakého důvodu je potřeba udělat sekvenci shrink-backup-shrink, aby bylo dosaženo požadovaného účinku:
1) Run this code:
DBCC SHRINKFILE(pubs_log, 2)
2) Run this code if you want to truncate the transaction log and not keep a backup of the transaction log. Truncate_only invalidates your transaction log backup sequence. Take a full backup of your database after you perform backup log with truncate_only:
BACKUP LOG pubs WITH TRUNCATE_ONLY
-or-
Run this code if you want to keep a backup of your transaction log and keep your transaction log backup sequence intact. See SQL Server Books Online topic „BACKUP“ for more information:
BACKUP LOG pubs TO pubslogbackup
3) Run this code:
DBCC SHRINKFILE(pubs_log, 2)
Aktualizace pro SQL 2008
V SQL Serveru 2008 již není BACKUP LOG WITH TRUNCATE_ONLY přepínač použitelný, místo toho je možné přepnout DB do Simple recovery modelu a udělat shrink logu. Pak je možné přepnout zpět na Full.
-nebo-
Update od Martina Falty pro SQL 2008+ (díky)
DBCC SHRINKFILE(pubs_log, TRUNCATEONLY)
Viz http://technet.microsoft.com/en-us/library/ms189493(v=sql.100).aspx