Omezení velikosti LOG souboru

Top  Previous  Next

Seznam témat:

řešení

 

Řešení

LOG soubor obsahuje informace o všech změnách v databázi, proto za normálních okolností neustále narůstá. Ikdyž velikost LOG souboru nemá zásadní vliv na výkon, může být žádoucí jej po překročení určité velikosti zmenšit. Obecně se k této operaci využívá běžné zálohování, ovšem se speciálním nastavením, říkajícím, že LOG soubor se má vymazat (erase), ev. přejmenovat (rename). V režimu smazání dojde k zazálohování celého LOGu a online LOG je zkrácen. Při zálohování s přejmenováním se navíc celý LOG zkopíruje vedle online LOGu a dostane jméno dle aktuálního data (yymmddxx.log) - stane se offline LOGem.

 

Celý proces zkracování LOGu lze automatizovat využitím události (event) spouštěné po překročení určité velikosti LOG souboru. V handleru události se pak provede speciální forma backupu, kdy se pouze aktuální LOG přejmenuje a zkrátí, popř. jen zkrátí. Celá akce se provede jen v online datovém adresáři.

 

 

Pokud je databáze součástí replikačního systému, NESMÍ se provést zálohování s vymazáním LOGu (erase). Lze použít pouze zálohování s přejmenováním LOGu (rename). Replikační agent (dbremote) automaticky zpracuje i přejmenované offline LOGy a pokud je už nepotřebuje, tak je smaže (musí to být v databázi povoleno - standardně to povoleno je).

 

Příklad 1. 

Přejmenování logu při překročení velikosti 50MB:

 

create event AutoRenameLog
type GrowLog
where event_condition('LogSize') > 50
handler
begin
 backup database
 directory ''
 transaction log only
 transaction log rename match
end

 

 

 

Příklad 2. 

Zkrácení logu při překročení velikosti 50MB:

 

create event AutoRenameLog
type GrowLog
where event_condition('LogSize') > 50
handler
begin
 backup database
 directory ''
 transaction log only
 transaction log truncate
end

 

 

Zrušení události lze provést příkazem:

 

drop event AutoRenameLog

 

Samostatné jednorázové uživatelské přejmenování LOG souboru (bez obvyklé nutnosti zálohovat celou databázi pomocí Sybase Centalu) je možné provést samostatným spuštěním příkazu:

 

backup database
directory ''
transaction log only
transaction log rename match

 

resp.

 

backup database
directory ''
transaction log only
transaction log truncate

 

 

 

Související témata