Qualche giorno fa mi è successa una cosa alquanto strana.
Un cliente mi ha chiamato dicendo di rilevare un “buco” nella sua casella di posta elettronica, nella quale non trova più tutte le mail ricevute negli ultimi 6 mesi. Ci sono le mail più vecchie, quelle degli ultimi giorni, ma di quei 6 mesi nessuna traccia.
Dopo una serie di controlli, tentativi di recupero posta eliminata, ecc. decido di lasciar perdere e recuperare il tutto da un backup. Vediamo come è possibile farlo, se ti dovesse succedere una cosa del genere o se comunque ti trovassi nella condizione di dover ripristinare una mailbox partendo da un backup del server Exchange.
Per prima cosa devi copiare, in una cartella, il database e i file di log dal backup in questione. Nel mio caso ho creato sul un disco di appoggio K: una cartella dbr\dbback contentente il tutto.
La prima cosa da fare è portare il database in stato di clean shutdown. Per farlo devi utilizzare il comando ESEUTIL, con la sintassi seguente:
Eseutil /R EXX /l <PercorsoFileDiLog> /d <PercorsoDatabase>
Nel mio caso ho usato il comando nel modo seguente:
Eseutil /R E02 /l K:\dbr\dbback /d K:\dbr\dbback
Puoi vederlo nell’immagine che segue:
L’operazione richiede pochi secondi (circa 14, nel mio caso).
Una volta conclusa dovrai creare il database di recovery, utilizzando il comando seguente:
New-MailboxDatabase -Recovery -Name <NomeDBrecovery> -Server <NomeServerExchange> -EdbFilePath <PercorsoDelDBbackup> -LogFolderPath <PercorsoLogBackupDB>
Guarda il comando che ho utilizzato io:
New-MailboxDatabase -Recovery -Name RecoveryDB.edb -Server MI-PH-MAIL01 –EdbFilePath “K:\dbr\dbbackup\DB-PH201410.edb” –LogFolderPath “K:\dbr\dbback”
Ed ecco l’immagine. Gli avvisi gialli sono normali, e puoi ignorarli:
Ora, conclusa questa fase, dovrai riavviare il servizio Archivio Informazioni di Microsoft Exchange, con il comando
Restart-Service MSExchangeIS
Una volta terminato dovrai montare il database di recovery, con il comando
Mount-Database RecoveryDB.edb
ricordati l’estensione .edb, se non vuoi ottenere un errore come quello rosso che vedi nell’immagine e che è stato generato dalla mia dimenticanza
Nell’immagine vedi anche il comando Get-MailboxStatistics, che ho utilizzato per sincerarmi che la mailbox problematica fosse effettivamente in quel database. Per la precisione, ho usato il comando seguente:
Get-MailboxStatics –Database –RecoveryDB.edb | ft –Auto
A questo punto, visto che effettivamente la mailbox si trovava in quel database, ho avviato la copia su una mailbox provvisoria (rossi.temp@azienda.it), creata appositamente per “parcheggiare” la mailbox senza sovrascrivere quella di produzione.
Il comando per effettuare questa operazione è:
New-MailboxRestoreRequest –SourceDatabase RecoveryDB.edb –SourceStoreMailbox “Roberta Rossi” –TargetMailbox rossi.temp@azienda.it –AllowLegacyDNMismatch
Una volta avviata la procedura, puoi seguire l’avanzamento utilizzando il comando
Get-MailboxRestoreRequest
e aspettando di vedere comparire Completed nella colonna Status.
La durata di questa operazione dipende, ovviamente, dalla dimensione della mailbox da ripristinare.
Una volta ripristinata con successo, potrai eliminare la richiesta di restore della mailbox completata con il comando
Get-MailboxRestoreRequest -Status Completed | Remove-MailboxRestoreRequest
Per ripristinare le mail mancanti, mi è stato sufficiente agganciare la mailbox temporanea a quella dell’utente e copiarle con un semplice drag-and-drop.
Scusami, ma davvero tutto sto giro per recuperare un semplicissimo backup…?
A questo punto non è più intelligente spendere qualche cento euro per una soluzione come MailStore che permette i ripristini tramite una semplicissima interfaccia grafica..?
Mi sembra assurdo, nel 2015, dover ricorrere a passaggi tanto complessi, per un normale utente, per il semplicissimo restore di una mail!
Ciao, hai pienamente ragione. Il problema è che molto spesso l’utente non si rende conto che potrebbe incappare in problemi (o preferisce non crederci), fino a quando non si verificano.
E’ ovvio che una soluzione del genere non è alla portata dell’end user. L’ho voluta documentare per chi magari, pur operano nel settore IT, non ha molta confidenza con Exchange, soprattutto quando si tratta di usare la linea di comando.
In qualche caso, poi, piuttosto che spedere “qualche cento euro” l’utente preferirebbe sniffare una manciata di peperoncino in polvere 😀
Ciao!
Poche settimane fa la stessa cosa con un exchange 2007, svaniti nel nulla 6 mesi di posta di 1 account.
Rialzo VM da backup settimanale ( giornaliero aveva già sovrascritto delle cose, mensile non comprendeva alcuni giorni di perdita) e sincronizzo con il client.
Nel mio caso ho preferito non ripristinare l’intero server, poiché l’architettura di rete è piuttosto complessa e avrei rischiato che qualche utente mi finisse a lavorare sul server sbagliato. La procedura che ho descritto, comunque, è rapida e richiede pochi minuti per essere eseguita (a patto che il DB sia recuperabile dal backup in modo veloce e non richieda qualche “rituale magico”…).
Ciao
Il restore delle email dal backup di un server Exchange non è mai stata un’operazione semplice, se si è fortunati si riesce a ripescare le email all’interno di Outlook tra quelle cancellate, altrimenti bisogna seguire il procedimento che hai descritto in modo esaustivo.
Fortunatamente però negli ultimi anni con l’avvento della virtualizzazione e di software di backup evoluti tipo Veeam le cose sono cambiate, oggi recuperare un oggetto in Active Directory o una mail di Exchange da un backup eseguito con Veeam è facile e veloce come recuperare un file dalle Shadow Copy.
Ciao
Hai assolutamente ragione, negli ultimi anni le nuove tecnologie ci danno più di una mano.
Ho comunque preferito condividere l’esperienza a vantaggio di coloro i quali si trovassero con lo stesso problema e senza le suddette tecnologie
Grazie per il feedback.
Ciao
Ciao Andrea, ho questo problema: un anno fa un cliente mi ha chiesto di fare il recovery totale di tutta la sua vecchia posta contenuta su un server exchange fisico. Ho visto che xchange non era più funzionante e mi sono copiato l’edb (80GB di posta) che ho lavorato con Stellar Phoenix. Ho effettivamente recuperato tutte le email e gli allegati di una quindicina di utenti, salvati in singoli pst, ma con mia sorpresa, una volta agganciati ad outlook, le email risultano prive dell’indirizzo del mittente (segnala solo nome e cognome) e a volte del destinatario. Credo che gli indirizzi mancanti siano quelli che erano nella rubrica, ho anche provato ad importare le varie rubriche (che contengono gli indirizzi), ma niente, non li aggancia con i nomi! hai qualche suggerimento? grazie mille
giorgio bugliesi