Il DataBase di Exchange Server
2003: fondamenti, storage
design, amministrazione
25 novembre 2005 - 10:30
Alessandro Appiani
MCT MCSE (2000 NT 4.0 NT 3.5)
Agenda

Exchange database technology


Exchange Database concepts




Storage Groups / Database
Come conservare e recuperare i dati


The Jet database primer
item
mailbox
Backup & Restore
Recovery Storage Group


come ripristinare singoli item o mailbox
miglioramenti SP1
Exchange Server 2003 Data store

Exchange Server 2003: DB storage e
mailing di classe enterprise!

In the beginning….




...there was JET 
Exchange (4.0) nasce con un’architettura ed
un motore di database proprietario
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
I vantaggi di un DBMS



Strutturazione delle informazioni per una
loro migliore gestione
Ottimizzazione dello spazio (es: attach
link)
Ottimizzazione delle prestazioni


Transazionalità dell’I/O (logging)


query, search, indexing, ...
commit, rollback
Capacità di recovery delle attività fino al
momento precedente al “crash”
non solo fino al backup precedente
 da configurare opportunamente

Cenni alla struttura interna del
DB



Tabelle memorizzate con la tecnica dei Btree
Strutture di Indici per velocizzare gli
accessi
Una tabella è una collection di b-trees



Data tree
Long-value tree (per grandi blocchi di dati)
Index trees
B-trees

Consentono di ottimizzare i tempi di
accesso ai dati



I dati sono ordinati secondo delle chiavi
definite dall’applicazione
Ogni B-tree è costituito da piccole pagine
tutte uguali di 4K/8K



minimizzando il numero di I/O richieste per
leggere un record
4K per Exchange
8K per Active Directory
Le pagine vengono messe in cache per
migliorare le prestazioni
Un esempio di b-tree
Root Page
Page
Page
Pointer
Internal
Record
Leaf
Dati memorizzati solo nelle foglie (leaf) dell’albero (records)
Exchange database








Globals table
Mailboxes table
Folders table
Message table
Attachments table
MessageFolder tables
Search tables
...
 eseutil /ms
Transazioni



Transaction è una unit of work atomica
sul DB
Tutte le operazioni che la compongono
vengono svolte o non svolte
completamente (commit/rollback)
Es: spostare un messaggio tra cartelle



Delete from source folder
Insert into new folder
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 





Power failures
Disk crashes
System errors
E’ necessario mantenere comunque la
consistenza del DB
Non devono esserci operazioni in
sospeso (no partially committed
transactions)
Logfiles


Il log è suddiviso in tanti piccoli files
chiamati ‘generations’
Generations sono denominate
ENNXXXXX.LOG





NN è lo storage group
XXXXX è la generation (hexadecimal)
ENN.LOG è la generation più recente
ENNTMP.LOG è in fase di creazione di un
nuovo logfile
RESN.LOG servono a riservare spazio
disco
Sequenza dei Log Files
Il log corrente viene ridenominato quando si riempie
(5MB)
Previous Logs
Current Log
53 MB
New
E00.log
(5 MB)
Renamed
E0000001.LOG
E0000002.LOG
E0000003.LOG
.
.
.
Transaction Logging (*.LOG)

“Write-ahead” logging






le pagine modificate del DB database non vengono
scritte immediatamente sul disco (cached version)
appendere dati ai logfile è veloce (più delle scritture
sul DB)
il DB viene aggiornato ogni tanto (blocco di scritture
contemporanee/batch)
I Checkpoint file (*.chk) tengono traccia della
posizione dell’ultima transazione scritta sul
database
Un database è consistente quando tutte le sue
transazioni sono state completate e scritte
Circular logging – cancellazione automatica dei
logfiles più vecchi del checkpoint
Checkpoint Files
Transaction Log
Entries Written
to the Database
E00.chk
Transaction Log
Entries Not Yet
Written to the
Database
E0000001.log
Exchange Store & files
Store
.stm
.edb
Public
Folder Store
Mailbox
Store
First Storage Group
Mailbox
Store
Sales Storage Group
Storage Group





Insieme di database che condividono gli
stessi log files
E’ una istanza separata del motore Jet
(gestito sempre dall’Information Store)
4 Storage groups per Server
5 Databases per Storage Group
1 Storage Group di riserva specifico per i
restore (1 per server)
Exchange Databases

*.EDB Files




*.STM Files


Properties Database
MAPI Messages and Attachments
Headers for STM pages
Raw ‘streaming’ data (MIME, documents,
multimedia, etc)
Current database =
EDB + STM + Unflushed Log entries
Il flusso dei dati nello store
SMTP/NNTP/
HTTP
MAPI
Store
Submit
Submit
Private or Public MDB
Property Store
(EDB)
Data
Data
Streaming Store
(STM)
Data
Property
On-demand
PromotionConversion
On-demand Conversion
MAPI
Retrieve
View/Search
Retrieve
Retrieve
Retrieve
POP3/IMAP4/
NNTP/HTTP
File Location (un esempio)
C:\
System Partition and
Boot Partition
Page File
D:\
Mirror Set
G:\
E:\
Storage Group 1
Transaction Logs
Mirror Set
F:\
Storage Group 2
Transaction Logs
Mirror Set
All Database Files For
Both Storage Groups
Stripe Set with Parity
Putting it all together
STORE
Storage Group 1
Storage Group 2
ESE Instance
ESE Instance
LOG
LOG
LOG
EDB
STM
LOG
LOG
LOG
EDB
STM
EDB
STM
EDB
STM
EDB
STM
Quindi, dove è la mia mail?



sicuramente nei log!
le transazioni più recenti possono non
essere ancora state scritte nel db
il database viene chiuso correttamente
(shutdown cleanly) se



tutte le transazioni sono completate
tutte le modifiche sono state applicate al
database
ESEUTIL /MH riporta lo stato del db

db & files


location
move
Backup




E’ fondamentale farlo!
Si fa online, nessun fermo dei servizi
Archivia ed elimina i log
Deve essere effettuato in accordo con
ESE (DB Engine)

exchange backup agent
Streaming Backup Types
Type
Copies DB Copy Logs Truncates Logs
Full(Normal)
X
X
Copy/Daily
X
X
Incremental
X
Differential
X
Offline
X
X
X
X
Avoid if at
all possible
Streaming Backup
Process flow
Backup APIs Called
• Backup tells store
backup will begin
• Type of backup
Backup Complete
ESE Backup Mode
Begin Backup
• Store informs ESE
• Agent requests DB pages
and backup mode entered sequentially
• Pages are check-summed
as read
ESE Normal Mode
End Backup
• Page read completed
• Logs copied to tape
• Logs Deleted
• Backup set closed
Streaming Restore
Process Flow
Dismount Database
• Backup
application or
Administrator
dismounts
database
Restore Complete
ESE Restore Mode
• Store informs ESE and
restore mode entered
• Restore SG created
ESE Normal Mode
• DB is mounted by SG
• Data deleted from
temporary directory
Begin Restore
• Agent copies EDB/STM
from Tape to DB path
• Log files from backup
set are copied
To temp restore location
End Restore
• Logs are processed
By ESE restore instance
• Current logs processed
By ESE restore instance
• Cleanup/Restore SG killed


streaming backup
streaming restore
Restore



Può essere un’attività “pesante”
(soprattutto per le versioni precedenti di
exchange)
Il restore “classico” sovrascrive il
database inlinea con il backup (i dati
attuali potrebbero vengono sovrascritti!)
Come evitarlo se possibile?
 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
Garantirsi di avere almeno un Backup
Come ricoverare dati cancellati



item
mailbox
Le funzionalità client di Outlook &
Outlook Web Access



Retention policy
Item recovery (+ Dumpster)
Mailbox Recovery Center
Ma se non basta?





Ci sono situazioni in cui devo comunque
riprendere i backup
l’utente si accorge tardi dei problemi
l’amministratore vuole riprendere una
mailbox
...
come fare un restore del database?
Un problema “storico” …

Perdita di tutto il database

In place recovery del/dei database



Può richiedere molto tempo (nastri)
Gli utenti non lavorano (db offline/unmounted)!
Perdita di un Item o Mailbox


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, ...)
La soluzione di Exchange 2003:
Recovery Storage Group



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!
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.)
I client non si possono connettere
Le mailboxes non sono collegate agli
user object in AD
System & mailbox management policies
non si applicano
Online maintenance non viene eseguita
I database non vengono montati
automaticamente
Come si usa…

Si crea il RSG e si associa un DB da
restorare





Via Exchange Admin
Consente di associare solo un db valido
(mbx)
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 “don’t override”)
si rimette online la singola mailbox senza
accedere al contenuto  direttamente
integrato in ESM (sp1 e successivi)


Recovery Storage Group
Recover Mailbox Data Tool
Best Practices





Proteggere i database con RAID-5 o
RAID0+1 o RAID 10
Proteggere i log con mirroring e volumi
separati dai dati
Attivare le funzionalità di retention
Tenere spazio libero sui dischi (almeno
50%)
Mai! usare il circular logging per mailbox
storage groups
White Paper

Using Exchange Server 2003 Recovery
Storage Groups
http://www.microsoft.com/technet/prodt
echnol/exchange/2003/RMD.mspx

Exchange Server 2003 SP1 Recover
Mailbox Data Feature
http://www.microsoft.com/technet/prodt
echnol/exchange/2003/RMD.mspx
Support KB

How to Use Recovery Storage Groups in
Exchange Server 2003
http://support.microsoft.com/default.aspx?scid=k
b;EN-US;824126

HOW TO: Recover or Restore a Single Mailbox in
Exchange Server 2003
http://support.microsoft.com/default.aspx?scid=k
b;EN-US;823176

Deleted items are not available after you use
"Recover Deleted Items" in Outlook 2003
http://support.microsoft.com/default.aspx?scid=k
b;EN-US;886205 (Dumpster)
Riferimenti e risorse (Exchange)
Exchange Home
http://www.microsoft.com/exchange
Exchange Italy Home
http://www.microsoft.com/italy/exchange
Exchange Server TechCenter
http://www.microsoft.com/technet/prodtechnol/exchange/default.mspx
Exchange Server 2003 Technical Documentation Library
http://www.microsoft.com/technet/prodtechnol/exchange/2003/library/default.mspx
Exchange Developer Documentation on MSDN
http://msdn.microsoft.com/exchange
Exchange Server 2003 Errors and Events Web Site
http://www.microsoft.com/technet/support/ee/search.aspx?LCID=1033&DisplayNam
e=Exchange%20Server%202003&ProdName=Microsoft%20Exchange&MajorMinor=
6.5
Exchange Support Center
http://support.microsoft.com/default.aspx?scid=fh;EN-US;exchange
Exchange Downloads
http://www.microsoft.com/exchange/downloads/
Exchange Server Community Center
http://www.microsoft.com/Exchange/community/default.mspx
Domande?
Live Meeting Web
Feedback
https://mseventseu.microsoft.com/cui/WelcomePage.aspx?EventID
=118764272&culture=it-IT
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.
Scarica

Il DataBase di Exchange Server 2003 - Center