Il DataBase di Exchange Server 2003: fondamenti, storage design, amministrazione 25 novembre :30 Alessandro Appiani MCT MCSE (2000 NT 4.0 NT 3.5)
Agenda Exchange database technology Exchange database technology The Jet database primer The Jet database primer Exchange Database concepts Exchange Database concepts Storage Groups / Database Storage Groups / Database Come conservare e recuperare i dati Come conservare e recuperare i dati item item mailbox mailbox Backup & Restore Backup & Restore Recovery Storage Group Recovery Storage Group come ripristinare singoli item o mailbox come ripristinare singoli item o mailbox miglioramenti SP1 miglioramenti SP1
Exchange Server 2003 Data store Exchange Server 2003: DB storage e mailing di classe enterprise! Exchange Server 2003: DB storage e mailing di classe enterprise! In the beginning…. In the beginning…....there was JET...there was JET Exchange (4.0) nasce con unarchitettura ed un motore di database proprietario Exchange (4.0) nasce con unarchitettura ed un motore di database proprietario Oggi la stessa tecnologia di database è utilizzata, oltre che da Exchange, anche per altri componenti infrastrutturali (WINS, DHCP,...) Oggi la stessa tecnologia di database è utilizzata, oltre che da Exchange, anche per altri componenti infrastrutturali (WINS, DHCP,...) Il più importante di questi è Active Directory Il più importante di questi è Active Directory
I vantaggi di un DBMS Strutturazione delle informazioni per una loro migliore gestione Strutturazione delle informazioni per una loro migliore gestione Ottimizzazione dello spazio (es: attach link) Ottimizzazione dello spazio (es: attach link) Ottimizzazione delle prestazioni Ottimizzazione delle prestazioni query, search, indexing,... query, search, indexing,... Transazionalità dellI/O (logging) Transazionalità dellI/O (logging) commit, rollback commit, rollback Capacità di recovery delle attività fino al momento precedente al crash Capacità di recovery delle attività fino al momento precedente al crash non solo fino al backup precedente non solo fino al backup precedente da configurare opportunamente da configurare opportunamente
Cenni alla struttura interna del DB Tabelle memorizzate con la tecnica dei B- tree Tabelle memorizzate con la tecnica dei B- tree Strutture di Indici per velocizzare gli accessi Strutture di Indici per velocizzare gli accessi Una tabella è una collection di b-trees Una tabella è una collection di b-trees Data tree Data tree Long-value tree (per grandi blocchi di dati) Long-value tree (per grandi blocchi di dati) Index trees Index trees
B-trees Consentono di ottimizzare i tempi di accesso ai dati Consentono di ottimizzare i tempi di accesso ai dati minimizzando il numero di I/O richieste per leggere un record minimizzando il numero di I/O richieste per leggere un record I dati sono ordinati secondo delle chiavi definite dallapplicazione I dati sono ordinati secondo delle chiavi definite dallapplicazione Ogni B-tree è costituito da piccole pagine tutte uguali di 4K/8K Ogni B-tree è costituito da piccole pagine tutte uguali di 4K/8K 4K per Exchange 4K per Exchange 8K per Active Directory 8K per Active Directory Le pagine vengono messe in cache per migliorare le prestazioni Le pagine vengono messe in cache per migliorare le prestazioni
Un esempio di b-tree Dati memorizzati solo nelle foglie (leaf) dellalbero (records) Root Page Internal Leaf Page PagePointer Record
Exchange database Globals table Globals table Mailboxes table Mailboxes table Folders table Folders table Message table Message table Attachments table Attachments table MessageFolder tables MessageFolder tables Search tables Search tables eseutil /ms eseutil /ms
Transazioni Transaction è una unit of work atomica sul DB Transaction è una unit of work atomica sul DB Tutte le operazioni che la compongono vengono svolte o non svolte completamente (commit/rollback) Tutte le operazioni che la compongono vengono svolte o non svolte completamente (commit/rollback) Es: spostare un messaggio tra cartelle Es: spostare un messaggio tra cartelle Delete from source folder Delete from source folder Insert into new folder Insert into new folder Update folder sizes Update folder sizes Anche in caso di crash la situazione deve essere consistente (o è nella vecchia o è nella nuova)
E necessario loggare le transazioni (journaling) I guasti succedono I guasti succedono Power failures Power failures Disk crashes Disk crashes System errors System errors E necessario mantenere comunque la consistenza del DB E necessario mantenere comunque la consistenza del DB Non devono esserci operazioni in sospeso (no partially committed transactions) Non devono esserci operazioni in sospeso (no partially committed transactions)
Logfiles Il log è suddiviso in tanti piccoli files chiamati generations Il log è suddiviso in tanti piccoli files chiamati generations Generations sono denominate ENNXXXXX.LOG Generations sono denominate ENNXXXXX.LOG NN è lo storage group NN è lo storage group XXXXX è la generation (hexadecimal) XXXXX è la generation (hexadecimal) ENN.LOG è la generation più recente ENN.LOG è la generation più recente ENNTMP.LOG è in fase di creazione di un nuovo logfile ENNTMP.LOG è in fase di creazione di un nuovo logfile RESN.LOG servono a riservare spazio disco RESN.LOG servono a riservare spazio disco
Previous Logs Current Log E LOG E LOG. Sequenza dei Log Files Il log corrente viene ridenominato quando si riempie (5MB) E LOG RenamedRenamed 3 MB 5 MB New E00.log (5 MB)
Transaction Logging (*.LOG) Write-ahead logging Write-ahead logging le pagine modificate del DB database non vengono scritte immediatamente sul disco (cached version) le pagine modificate del DB database non vengono scritte immediatamente sul disco (cached version) appendere dati ai logfile è veloce (più delle scritture sul DB) appendere dati ai logfile è veloce (più delle scritture sul DB) il DB viene aggiornato ogni tanto (blocco di scritture contemporanee/batch) il DB viene aggiornato ogni tanto (blocco di scritture contemporanee/batch) I Checkpoint file (*.chk) tengono traccia della posizione dellultima transazione scritta sul database I Checkpoint file (*.chk) tengono traccia della posizione dellultima transazione scritta sul database Un database è consistente quando tutte le sue transazioni sono state completate e scritte Un database è consistente quando tutte le sue transazioni sono state completate e scritte Circular logging – cancellazione automatica dei logfiles più vecchi del checkpoint Circular logging – cancellazione automatica dei logfiles più vecchi del checkpoint
Checkpoint Files E log E00.chk Transaction Log Entries Written to the Database Transaction Log Entries Not Yet Written to the Database
Exchange Store & files First Storage Group Mailbox Store Public Folder Store Sales Storage Group Mailbox Store.stm.edb Store
Storage Group Insieme di database che condividono gli stessi log files Insieme di database che condividono gli stessi log files E una istanza separata del motore Jet (gestito sempre dallInformation Store) E una istanza separata del motore Jet (gestito sempre dallInformation Store) 4 Storage groups per Server 4 Storage groups per Server 5 Databases per Storage Group 5 Databases per Storage Group 1 Storage Group di riserva specifico per i restore (1 per server) 1 Storage Group di riserva specifico per i restore (1 per server)
Exchange Databases *.EDB Files *.EDB Files Properties Database Properties Database MAPI Messages and Attachments MAPI Messages and Attachments Headers for STM pages Headers for STM pages *.STM Files *.STM Files Raw streaming data (MIME, documents, multimedia, etc) Raw streaming data (MIME, documents, multimedia, etc) Current database = EDB + STM + Unflushed Log entries Current database = EDB + STM + Unflushed Log entries
Store Il flusso dei dati nello store MAPIMAPI MAPIMAPI SMTP/NNTP/HTTPSMTP/NNTP/HTTP POP3/IMAP4/NNTP/HTTPPOP3/IMAP4/NNTP/HTTP Private or Public MDB Property Store (EDB) Streaming Store (STM) Data Submit MAPIMAPIMAPIMAPISMTP/NNTP/HTTPSMTP/NNTP/HTTPPOP3/IMAP4/NNTP/HTTPPOP3/IMAP4/NNTP/HTTP Store Private or Public MDB Property Store (EDB) Streaming Store (STM) Data Retrieve MAPIMAPIMAPIMAPISMTP/NNTP/HTTPSMTP/NNTP/HTTPPOP3/IMAP4/NNTP/HTTPPOP3/IMAP4/NNTP/HTTP Store Private or Public MDB Property Store (EDB) Streaming Store (STM) Data On-demand Conversion Retrieve MAPIMAPIMAPIMAPISMTP/NNTP/HTTPSMTP/NNTP/HTTPPOP3/IMAP4/NNTP/HTTPPOP3/IMAP4/NNTP/HTTP Store Private or Public MDB Property Store (EDB) Streaming Store (STM) Data Submit MAPIMAPIMAPIMAPISMTP/NNTP/HTTPSMTP/NNTP/HTTPPOP3/IMAP4/NNTP/HTTPPOP3/IMAP4/NNTP/HTTP Store Private or Public MDB Property Store (EDB) Streaming Store (STM) Data Property Promotion Property PromotionMAPIMAPIMAPIMAPISMTP/NNTP/HTTPSMTP/NNTP/HTTPPOP3/IMAP4/NNTP/HTTPPOP3/IMAP4/NNTP/HTTP Store Private or Public MDB Property Store (EDB) Streaming Store (STM) Data Retrieve MAPIMAPIMAPIMAPISMTP/NNTP/HTTPSMTP/NNTP/HTTPPOP3/IMAP4/NNTP/HTTPPOP3/IMAP4/NNTP/HTTP Store Private or Public MDB Property Store (EDB) Streaming Store (STM) Data View/Search MAPIMAPIMAPIMAPISMTP/NNTP/HTTPSMTP/NNTP/HTTPPOP3/IMAP4/NNTP/HTTPPOP3/IMAP4/NNTP/HTTP Store Private or Public MDB Property Store (EDB) Streaming Store (STM) Data On-demand Conversion Retrieve
File Location (un esempio) System Partition and Boot Partition System Partition and Boot Partition Mirror Set C:\ Storage Group 1 Transaction Logs Storage Group 1 Transaction Logs Mirror Set E:\ Storage Group 2 Transaction Logs Storage Group 2 Transaction Logs Mirror Set F:\ Page File D:\ All Database Files For Both Storage Groups Stripe Set with Parity G:\
STORE LOG EDB STM LOG LOG EDB STM ESE Instance Storage Group 1 LOG EDB STM LOG LOG EDB STM ESE Instance Storage Group 2 EDB STM Putting it all together
Quindi, dove è la mia mail? sicuramente nei log! sicuramente nei log! le transazioni più recenti possono non essere ancora state scritte nel db le transazioni più recenti possono non essere ancora state scritte nel db il database viene chiuso correttamente (shutdown cleanly) se il database viene chiuso correttamente (shutdown cleanly) se tutte le transazioni sono completate tutte le transazioni sono completate tutte le modifiche sono state applicate al database tutte le modifiche sono state applicate al database ESEUTIL /MH riporta lo stato del db ESEUTIL /MH riporta lo stato del db
db & files db & files location location move move
Backup E fondamentale farlo! E fondamentale farlo! Si fa online, nessun fermo dei servizi Si fa online, nessun fermo dei servizi Archivia ed elimina i log Archivia ed elimina i log Deve essere effettuato in accordo con ESE (DB Engine) Deve essere effettuato in accordo con ESE (DB Engine) exchange backup agent exchange backup agent
Streaming Backup Types Full (Normal) Copy/DailyIncrementalDifferentialOffline XXX XXXXX Type Copies DB Copy Logs Truncates Logs XX Avoid if at all possible Avoid if at all possible
Streaming Backup Process flow Backup APIs Called ESE Backup Mode Begin Backup Backup tells store backup will begin Backup tells store backup will begin Type of backup Type of backup Store informs ESE Store informs ESE and backup mode entered and backup mode entered Agent requests DB pages Agent requests DB pages sequentially sequentially Pages are check-summed Pages are check-summed as read as read End Backup Page read completed Page read completed Logs copied to tape Logs copied to tape Logs Deleted Logs Deleted Backup set closed Backup set closed ESE Normal Mode Backup Complete
Dismount Database ESE Restore Mode Begin Restore End Restore ESE Normal Mode Restore Complete Backup application or Administrator dismounts database Backup application or Administrator dismounts database Store informs ESE and Store informs ESE and restore mode entered restore mode entered Restore SG created Restore SG created Agent copies EDB/STM from Tape to DB path Agent copies EDB/STM from Tape to DB path Log files from backup set are copied Log files from backup set are copied To temp restore location To temp restore location Logs are processed Logs are processed By ESE restore instance By ESE restore instance Current logs processed Current logs processed By ESE restore instance By ESE restore instance Cleanup/Restore SG killed Cleanup/Restore SG killed DB is mounted by SG DB is mounted by SG Data deleted from temporary directory Data deleted from temporary directory Streaming Restore Process Flow
streaming backup streaming backup streaming restore streaming restore
Restore Può essere unattività pesante (soprattutto per le versioni precedenti di exchange) Può essere unattività pesante (soprattutto per le versioni precedenti di exchange) Il restore classico sovrascrive il database inlinea con il backup (i dati attuali potrebbero vengono sovrascritti!) Il restore classico sovrascrive il database inlinea con il backup (i dati attuali potrebbero vengono sovrascritti!) Come evitarlo se possibile? Come evitarlo se possibile? Exchange ha un insieme di funzionalità per cercare di minimizzare la necessità del restore di tutto il database Exchange ha un insieme di funzionalità per cercare di minimizzare la necessità del restore di tutto il database
Proteggere i dati sul server Item & Mailbox retention Item & Mailbox retention Garantirsi di avere almeno un Backup Garantirsi di avere almeno un Backup Come ricoverare dati cancellati Come ricoverare dati cancellati item item mailbox mailbox Le funzionalità client di Outlook & Outlook Web Access Le funzionalità client di Outlook & Outlook Web Access
Retention policy Retention policy Item recovery (+ Dumpster) Item recovery (+ Dumpster) Mailbox Recovery Center Mailbox Recovery Center
Ma se non basta? Ci sono situazioni in cui devo comunque riprendere i backup Ci sono situazioni in cui devo comunque riprendere i backup lutente si accorge tardi dei problemi lutente si accorge tardi dei problemi lamministratore vuole riprendere una mailbox lamministratore vuole riprendere una mailbox come fare un restore del database? come fare un restore del database?
Un problema storico … Perdita di tutto il database Perdita di tutto il database In place recovery del/dei database In place recovery del/dei database Può richiedere molto tempo (nastri) Può richiedere molto tempo (nastri) Gli utenti non lavorano (db offline/unmounted)! Gli utenti non lavorano (db offline/unmounted)! Perdita di un Item o Mailbox Perdita di un Item o Mailbox Single Item/mailbox Restore Single Item/mailbox Restore Richiede una forest separata ed un server indipendente per il restore offline altrimenti si sovrascrivono anche i contenuti più aggiornati (es: altre mailbox, item recenti,...) Richiede una forest separata ed un server indipendente per il restore offline altrimenti si sovrascrivono anche i contenuti più aggiornati (es: altre mailbox, item recenti,...)
La soluzione di Exchange 2003: Recovery Storage Group Storage group di riserva disponibile e specifico per il restore Storage group di riserva disponibile e specifico per il restore Pensato per ottenere gli stessi benefici del server di recovery...senza dover dedicare il server di recovery! Pensato per ottenere gli stessi benefici del server di recovery...senza dover dedicare il server di recovery! Può consentire di rendere operativi gli utenti da subito minimizzando i tempi di fermo per il restore (dialtone operation) Può consentire di rendere operativi gli utenti da subito minimizzando i tempi di fermo per il restore (dialtone operation)
Recovery Storage Group Come funziona Non è usabile per le attività di produzione (hosting mailbox & c.) Non è usabile per le attività di produzione (hosting mailbox & c.) I client non si possono connettere I client non si possono connettere Le mailboxes non sono collegate agli user object in AD Le mailboxes non sono collegate agli user object in AD System & mailbox management policies non si applicano System & mailbox management policies non si applicano Online maintenance non viene eseguita Online maintenance non viene eseguita I database non vengono montati automaticamente I database non vengono montati automaticamente
Come si usa… Si crea il RSG e si associa un DB da restorare Si crea il RSG e si associa un DB da restorare Via Exchange Admin Via Exchange Admin Consente di associare solo un db valido (mbx) Consente di associare solo un db valido (mbx) Si avvia il backup e si ripristina normalmente il database Si avvia il backup e si ripristina normalmente il database Finchè il RSG esiste, Exchange ridirige il restore nel RSG, il database online NON VIENE TOCCATO (lo conferma il mantenimento del flag dont override) Finchè il RSG esiste, Exchange ridirige il restore nel RSG, il database online NON VIENE TOCCATO (lo conferma il mantenimento del flag dont override) si rimette online la singola mailbox senza accedere al contenuto direttamente integrato in ESM (sp1 e successivi) si rimette online la singola mailbox senza accedere al contenuto direttamente integrato in ESM (sp1 e successivi)
Recovery Storage Group Recovery Storage Group Recover Mailbox Data Tool Recover Mailbox Data Tool
Best Practices Proteggere i database con RAID-5 o RAID0+1 o RAID 10 Proteggere i database con RAID-5 o RAID0+1 o RAID 10 Proteggere i log con mirroring e volumi separati dai dati Proteggere i log con mirroring e volumi separati dai dati Attivare le funzionalità di retention Attivare le funzionalità di retention Tenere spazio libero sui dischi (almeno 50%) Tenere spazio libero sui dischi (almeno 50%) Mai! usare il circular logging per mailbox storage groups Mai! usare il circular logging per mailbox storage groups
White Paper Using Exchange Server 2003 Recovery Storage Groups echnol/exchange/2003/RMD.mspx Using Exchange Server 2003 Recovery Storage Groups echnol/exchange/2003/RMD.mspx echnol/exchange/2003/RMD.mspx echnol/exchange/2003/RMD.mspx Exchange Server 2003 SP1 Recover Mailbox Data Feature echnol/exchange/2003/RMD.mspx Exchange Server 2003 SP1 Recover Mailbox Data Feature echnol/exchange/2003/RMD.mspx echnol/exchange/2003/RMD.mspx echnol/exchange/2003/RMD.mspx
Support KB How to Use Recovery Storage Groups in Exchange Server b;EN-US; How to Use Recovery Storage Groups in Exchange Server b;EN-US; b;EN-US; b;EN-US; HOW TO: Recover or Restore a Single Mailbox in Exchange Server b;EN-US; HOW TO: Recover or Restore a Single Mailbox in Exchange Server b;EN-US; b;EN-US; b;EN-US; Deleted items are not available after you use "Recover Deleted Items" in Outlook b;EN-US; (Dumpster) Deleted items are not available after you use "Recover Deleted Items" in Outlook b;EN-US; (Dumpster) b;EN-US; b;EN-US;886205
Riferimenti e risorse (Exchange) Exchange Home Exchange Italy Home Exchange Server TechCenter Exchange Server 2003 Technical Documentation Library Exchange Developer Documentation on MSDN Exchange Server 2003 Errors and Events Web Site e=Exchange%20Server%202003&ProdName=Microsoft%20Exchange&MajorMinor= e=Exchange%20Server%202003&ProdName=Microsoft%20Exchange&MajorMinor= e=Exchange%20Server%202003&ProdName=Microsoft%20Exchange&MajorMinor= 6.5 Exchange Support Center Exchange Downloads Exchange Server Community Center
Domande?
Feedback eu.microsoft.com/cui/WelcomePage.aspx?EventID = &culture=it-IT Live Meeting Web Changes directly made to this slide will not be displayed in Live Meeting. Edit this slide by selecting Properties in the Live Meeting Presentation menu.
© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.