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.