In un articolo di qualche tempo fa ho parlato di come ridurre lo spazio disco occupato da un database di Microsoft Exchange Server 2010 tramite la deframmentazione offline. In questo nuovo articolo vedremo invece come recuperare spazio disco con un Exchange 2007 senza mandare il database offline e quindi mantenendo l’operatività dell’infrastruttura.
Innanzitutto va ricordato che la cancellazione di mail o anche di intere mailbox non contribuisce alla liberazione di spazio disco sul server in quanto si generano solo dei cosiddetti whitespace, spazio disco che a tutti gli effetti è occupato. La compattazione del database va proprio a riempire questi whitespace rilasciando lo spazio disco occupato inutilmente. Un altro metodo che ci fa raggiungere lo stesso scopo consiste nella creazione di un nuovo database di posta e nello spostamento delle mailbox dal vecchio al nuovo DB. Durante lo spostamento i whitespace vengono “riempiti” e a fine trasferimento potremo eliminare il vecchio DB rilasciando quindi tutto lo spazio disco.
Per prima cosa apro la console di Exchange e sotto Configurazione Server / Cassetta postale clicco con il tasto destro sul gruppo di archiviazione (nel mio caso First Storage Group) e seleziono Nuovo database delle cassette postali…
Creo quindi il Database indicando un nome ed un percorso dove il file .edb verrà creato.
Conclusa la creazione del nuovo DB mi sposto sotto Configurazione Destinatario / Cassetta postale e, selezionando una delle cassette da trasferire cliccando con il tasto destro seleziono Sposta cassetta postale…
Cliccando sul pulsate Sfoglia seleziono il DB di nuova creazione e confermo premendo Avanti.
Confermo con Avanti anche il passaggio successivo lasciando le impostazioni di default.
Nel mio caso decido di eseguire lo spostamento immediatamente. In un ambiente di produzione potrebbe essere indicato schedulare la migrazione in un orario di utilizzo ridotto della mailbox, così da non interrompere le attività dell’utente.
Confermo cliccando su Sposta e avvio quindi l’operazione di migrazione.
Se tutto fila liscio non dovremmo ottenere errori, ma solo una conferma di trasferimento effettuato.
A questo punto posso operare per tutte le mailbox del database. La selezione può anche essere multipla, addirittura di tutte le mail presenti nel DB, ma consiglio di procedere a step poichè in caso di mailbox molto grosse il tempo necessario potrebbe essere di diverse ore.
In ogni momento posso interrogare il sistema per sapere quante e quali mailbox risiedano ancora nel vecchio database. Questo mi consente di sapere quando il DB sarà del tutto vuoto per poter procedere all’eliminazione in tutta tranquillità.
Per questo devo operare da shell, con il comando
Get-Mailbox –Database “Mailbox Database”
dove “Mailbox Database” nel mio caso è il nome del vecchio DB.
Qualora le mailbox fossero molte si potrebbe anche pensare di creare più di un database per suddividerle. Ad esempio potremmo mettere le mailbox con il maggior numero di accessi e di oggetti su un database residente su dischi più performanti e lasciare le mailbox meno utilizzate su dischi più economici. Nel caso di Exchange Server 2007 il numero di database gestibili con la versione standard è pari a 5. Decidendo di suddividere le mailbox su più database va anche tenuto presente che non è consigliabile mantenere più di un DB in un singolo gruppo di archiviazione, quindi la strategia consigliata è quella di creare uno storage group per ciascun database (scelta peraltro obbligata se si intendesse utilizzare una replica di tipo CCR, SCR o LCR).
Laddove ci sia un forte turnover di personale e si volessero conservare le mailbox degli utenti non più presenti in azienda, si potrebbe dedicare un DB a queste cassette postali. Trattandosi di cassette destinate solo alla consultazione e non più movimentate, la probabilità di avere molto spazio perso in whitespace su questo database sarebbe ridotta al minimo.
Ecco che, a suddivisione completata, il nostro Exchange Server gestisce 3 database separati: uno per le mailbox attive, uno per le mailbox di utenti che non ci sono più e uno che contiene unicamente il journal.
Nello specifico caso, partendo da un database unico di circa 120GB, dopo la suddivisione e lo spostamento delle mailbox su DB nuovi lo spazio occupato sul disco si è ridotto di circa un terzo, portandomi ad un’occupazione complessiva di poco più di 80GB.
Per informazioni aggiuntive sull’argomento o per domande inerenti scenari reali o problemi con database di Exchange su macchine in produzione posso essere contattato tramite la pagina Facebook.
Leave a Reply