Circular logging di Exchange

Per capire se l’impostazione Circular Logging (Registrazione Circolare) di Exchange vada o meno abilitata occorre prima fare una premessa sul funzionamneto dei DB di Exchange.

Microsoft Exchange (come SQL Server) basa la sua tecnologia di archiviazione sui Transactional Log ci significa che prima di scrvere una transazione (xes. una mail) nei DB Priv1.edb, priv1.stm (private Store), pub1.edb, pub1.stm (Public Folder) viene eseguita una scrittura in un file di transazioni temporanee E00.log creato automaticamente di 5MB. Quindi se le transazioni che compongono il messaggio vengono completate con successo vengono scritte nel DB (committed to database).

Quando il file di log E00.log viene riempito completamente viene archivato come E0000001.log (Previous Log Files) e viene generato un nuovo File di log attivo E00.log di 5MB. Di conseguenza man mano che Exchange lavora vengono creati vari previous log files del tipo E000000X.log (che verranno cancellati quando si esegue un Backup).

Il FIle E00.chk per ogni storage goup traccia quali transazioni presenti nel file E00.log sono già state scritte nei database e quali ancora no. I File Res1.log e Res2.log (Reserved Log Files) sono due files di 5Mb già predisposti e allocati nel caso manchi spazio Libero sul disco così da poter avere 10 Mb di transazioni ancora possibili. Quando il disco va completamente out of space il servizio di Information Store si blocca fino a che non si libera spazio disco.

Per impedire che vengano archiviati questi Previous log Files non più in uso si può abilitare il “Circular Logging” e in questo caso la porzione inattiva (contenete transazioni già scritte nel DB) del file di log viene sovrascritta e non verrano più generati i previous log files, in ogni caso se ad esempio si riceve una mail da 25 MB poichè i log file ha una capacità masima di 5 MB verranno generati altri 4 log file (E0000001.log – E0000004.log) che verranno eliminati al prossimo backup full.

Per impostazione predefinita il Circular Logging è disabilitata e ciò garantisce che in caso di rottura del disco contenente il database tramite un Backup e i previous log file memorizzati su un altro disco sia possibile ricostruire tutte le transazioni di posta prima della rottura del disco contenente i database. Ovviamente il discorso file se l’installazione di Exchange prevede di separare i database dai log files memorizzandoli du su due hard disk diversi (che è meglio anche dal punto di vista delle performance, la scelta ottimale sarebbe avere i logs su un Raid 1 e i DB su un Raid 5, ovviamente queste considerazioni valgono anche per SQL Server).

Inoltre se il Circular Logging è abilitato non sarà possibile eseguire backup differenziali o incrementali del db di Exchange in quanto questi tipi di backup si basano di log delle transaszioni.

Possiamo quindi concludere che può avere un senso abilitare questa opzione solo se i log e i DB sono sullo stesso disco perchè in questo caso non sarà posibile utilizzare i log per eseguire un ripristino fino all’instante della rottura del supporto, ma simili scelte progettuali possono avere un senso solo per piccole installazioni in cui la posta elettronica non sia di elevata importanza.

Per ulteriori approfondimenti si vedano: