Utilizzo del database della coda sui server di trasporto

 

Si applica a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Ultima modifica dell'argomento: 2007-08-21

Una coda è una posizione temporanea per i messaggi in attesa di passare alla fase successiva dell'elaborazione. Ogni coda rappresenta un insieme logico di messaggi elaborato da un server di trasporto di Exchange in base a un ordine specifico. Le code sono presenti solo sui computer in cui è installato il ruolo del server Trasporto Hub o il ruolo del server Trasporto Edge.

Microsoft Exchange Server 2007 utilizza un solo database di Extensible Storage Engine (ESE) per l'archiviazione dei messaggi delle code. Precedentemente noto come JET, ESE è un metodo che definisce un'API di livello basso per le strutture database sottostanti in Exchange Server.

I seguenti scenari possono determinare una mancata risposta da parte del server Trasporto Hub o del server Trasporto Edge avente un database della coda contenente messaggi non recapitati.

  • Si verifica un errore del server di trasporto di Exchange quando vi sono messaggi non recapitati nelle code. Inoltre, non è possibile riportare il server in linea entro il tempo previsto.

  • Un server di trasporto di Exchange ha un database della coda frammentato che diventa così grande da consumare tutto lo spazio disponibile sull'unità disco rigido.

È possibile spostare il database della coda e i file di registro delle transazioni associati in una posizione temporanea sul server di trasporto di destinazione di Exchange, quindi ripristinare il database della coda e riposizionare il database della coda esistente sul server di trasporto di Exchange di destinazione, infine avviare il database della coda ripristinato sul server di trasporto di Exchange di destinazione. Questo server di trasporto di Exchange di destinazione può trovarsi nella propria organizzazione di Exchange o in una foresta del servizio directory di Active Directory differente.

Informazioni preliminari

Per eseguire le procedure riportate di seguito, è necessario utilizzare un account che disponga della seguente delega:

  • Ruolo Exchange Server Administrator

Per eseguire le procedure riportate di seguito su un computer in cui è installato il ruolo del server Trasporto Edge, è necessario accedere al sistema utilizzando un account che sia membro del gruppo Administrators locale del computer.

Per ulteriori informazioni sulle autorizzazioni, sulla delega dei ruoli e sui diritti necessari per l'amministrazione di Microsoft Exchange Server 2007, vedere Considerazioni sulle autorizzazioni.

Quando si eseguono operazioni sul database della coda e sui file associati, ad esempio, lo spostamento del database della coda sul server di destinazione o il ripristino fuori rete e la deframmentazione, assicurarsi di disporre delle autorizzazioni elencate di seguito nella directory in cui si trova il database della coda.

  • Servizio di rete: controllo completo

  • Sistema: controllo completo

  • Amministratori: controllo completo

Il server di trasporto di Exchange di destinazione selezionato per la ricezione del database della coda ripristinato dovrebbe avere installati gli stessi service pack di Exchange 2007 e gli stessi aggiornamenti della protezione del server Exchange di origine.

Se possibile, per la ricezione del database della coda ripristinato, occorre selezionare un server di trasporto di Exchange di destinazione che abbia lo stesso ruolo del server di trasporto del server di origine. Possono prodursi comportamenti di recapito dei messaggi inaspettati se si verifica una delle seguenti condizioni:

  • Viene avviato il database della coda recuperato su un server di trasporto di Exchange che ha un ruolo del server diverso dal server di origine.

  • Viene avviato il database della coda recuperato su un server di trasporto di Exchange collocato in una foresta di Active Directory differente.

Ad esempio, i messaggi in attesa di recapito nella coda di recapito alla cassetta postale ora possono richiedere di essere recapitati utilizzando una coda di recapito remoto. Gli indirizzi remoti precedenti ora possono essere locali e indirizzi che in precedenza erano locali possono essere remoti. Tener conto dell'eventualità che vengano visualizzati messaggi nella coda non raggiungibile. Può essere necessario reinviare manualmente i messaggi mediante il classificatore. Per informazioni, vedere Come inviare nuovamente i messaggi nelle code.

Ripristino di un database della coda sul server di trasporto di Exchange di destinazione.

Le operazioni di base per il ripristino del database della coda sono le seguenti:

  1. Spostare il database della coda su una posizione temporanea sul server di trasporto di Exchange di destinazione.

  2. Eseguire un recupero del database della coda utilizzando le utilità del database di Exchange Server (Eseutil.exe).

  3. Eseguire una deframmentazione fuori rete del database della coda utilizzando Eseutil.

  4. Preparare il database della coda esistente sul server di trasporto di Exchange di destinazione per la sostituzione del database della coda ripristinato.

  5. Avviare il database della coda riparato sul server di trasporto di Exchange di destinazione.

Spostamento del database della coda in una posizione temporanea sul server di trasporto di destinazione.

Per impostazione predefinita il database della coda e i registri delle transazioni sono collocati in C:\Programmi\Microsoft\Exchange Server\TransportRoles\data\Queue. La posizione dei database della coda e la posizione dei registri delle transazioni sono configurate nel file di configurazione dell'applicazione EdgeTransport.exe.config collocato in C:\Programmi\Microsoft\Exchange Server\Bin. Il parametro QueueDatabasePath consente di controllare la posizione dei file del database, invece il parametro QueueDatabaseLoggingPath consente di controllare la posizione dei registri delle transazioni.

Il database della coda è costituito dai seguenti file:

  • Mail.que File del database della coda.

  • Trn.chk File del punto di controllo.

Il registro delle transazioni è costituito dai seguenti file:

  • Trn.log File di registro della transazione corrente.

  • Trntmp.log File di registro della transazione fornito successivamente creato in anticipo.

  • Trnnnn.log Altri file di registro delle transazioni creati quando Trn.log raggiunge la dimensione massima come specificato dal parametro QueueDatabaeLoggingFileSize nel file di configurazione dell'applicazione EdgeTransport.exe. L'impostazione predefinita è 5 MB.

  • Trnres00001.jrs File di registro segnaposto.

  • Trnres00002.jrs File di registro segnaposto.

  • Temp.edb Benché non si tratti di un file di registro delle transazioni, questo file verificatore dello schema del database della coda è collocato insieme ai file di registro delle transazioni.

Per spostare il database della coda sul server Trasporto Hub o sul server Trasporto Edge

  1. Arrestare il servizio di trasporto di Microsoft Exchange sul server di trasporto di Exchange contenente il database della coda interessato.

    • Al prompt dei comandi o in Exchange Management Shell immettere il seguente comando:

      Net Stop MSExchangeTransport
      
  2. Spostare tutti i file del database della coda e del registro delle transazioni su una directory temporanea sul server Trasporto Hub o sul server Trasporto Edge di destinazione. Ai fini di questo esempio, questa directory sarà: C:\QueueRecovery.

  3. Dopo che è stato fissato il server di trasporto di Exchange 2007, viene creato un nuovo database della coda quando viene riavviato il servizio di trasporto di Microsoft Exchange. Questo può verificarsi in qualsiasi momento dopo la copia dei file del database della coda sul server di trasporto di destinazione.

Per ulteriori informazioni sui file dei database della coda, vedere Gestione del database delle code.

Esecuzione di un ripristino del database della coda utilizzando Eseutil

Prima di tentare di avviare il database della coda sul server di trasporto di destinazione, è necessario utilizzare Eseutil per eseguire un ripristino di un database. Poiché il database della coda utilizza la registrazione circolare, non è possibile riprodurre vecchi registri delle transazioni nel database utilizzando la modalità di ripristino Eseutil /C. Tuttavia, è possibile eseguire un ripristino di un database utilizzando la modalità di ripristino Eseutil /R. È possibile utilizzare Eseutil per la manutenzione e il ripristino del database della coda fuori rete.

Nota

Eseutil è collocato in C:\Programmi\Microsoft\Exchange Server\Bin. Questa directory è definita nel percorso. Pertanto, è possibile digitare il comando senza specificare il percorso completo.

Il processo di ripristino legge il file del punto di arresto e salva le transazioni non salvate nel registro delle transazioni sul database della coda. Se non esiste alcun file del punto di arresto, la riproduzione inizia dalla voce del file di registro più obsoleto disponibile sul registro delle transazioni.

Per eseguire un ripristino del database della coda utilizzando Eseutil

  1. Al prompt dei comandi o in Exchange Management Shell, aprire la directory C:\QueueRecovery directory.

  2. Eseguire il comando riportato di seguito:

    Eseutil /r Trn /d. /8
    

    Trn indica il nome del file di base di registro di 3 caratteri. /8 imposta una dimensione della pagina del database di 8 kilobyte per ripristini più rapidi. /d. indica che il database da recuperare esiste nella directory corrente.

    Nota

    Il ripristino del database può richiedere molto tempo per un database della coda di grandi dimensioni.

Per ulteriori informazioni su come utilizzare Eseutil per il ripristino di database, vedere Modalità Ripristino Eseutil /R.

Eseguire una deframmentazione fuori rete del database della coda utilizzando Eseutil

Dopo avere eseguito un ripristino del database della coda, si consiglia di eseguire anche una deframmentazione fuori rete sul database utilizzando la modalità di deframmentazione Eseutil /D per le condizioni e le prestazioni generali del database della coda. Una deframmentazion fuori rete di un database ESE recupera lo spazio dei database vuoti ed è in grado di ridurre la dimensione dei file del database.

Per eseguire una deframmentazione del database della coda utilizzando Eseutil

  1. Al prompt dei comandi o in Exchange Management Shell, aprire la directory C:\QueueRecovery.

  2. Eseguire il comando riportato di seguito:

    Eseutil /d mail.que
    

    Nota

    La deframmentazione del database fuori rete può richiedere molto tempo per un database della coda di grandi dimensioni.

Per ulteriori informazioni su come utilizzare Eseutil per la deframmentazione del database fuori rete, vedere Modalità di deframmentazione Eseutil /D.

Preparare il database della coda esistente sul server di trasporto di Exchange di destinazione per la sostituzione del database della coda ripristinato.

È possibile sovrascrivere il database della coda esistente sul server di trasporto di Exchange di destinazione per la sostituzione del database della coda ripristinato. Tuttavia, in questo modo verranno eliminati tutti i messaggi che si trovano nelle code del server di trasporto di Exchange di destinazione. Per avviare il database della coda ripristinato in modo sicuro, in primo luogo è necessario seguire questi passaggi sul server di trasporto di Exchange di destinazione.

  1. Arrestare il flusso di nuovi messaggi nelle code e consentire il recapito dei messaggi esistenti.

  2. Monitorare le code di recapito alla cassetta postale e le code di recapito remoto fino a quando tutti messaggi vengono recapitati

  3. Reinviare, oppure sospendere ed esportare i messaggi nella coda non raggiungibile da salvare.

  4. Riprendere o esportare i messaggi nella coda dei messaggi non elaborabili da salvare.

  5. Modificare l'intervallo di timeout di scadenza sul server di trasporto di Exchange in modo che i messaggi nel database della coda recuperato vengano conservati.

Per arrestare il flusso di nuovi messaggi nelle code sul server di trasporto di Exchange di destinazione e consentire il recapito dei messaggi esistenti

  • Al prompt dei comandi o in Exchange Management Shell eseguire il seguente comando:

    Net Pause MSExchangeTransport
    

Per monitorare le code di recapito alla cassetta postale e le code di recapito remoto fino a quando tutti messaggi vengono recapitati

  • Utilizzare il visualizzatore code o il cmdlet Get-Queue in Exchange Management Shell per monitorare le code sul server di trasporto di Exchange di destinazione. Attendere fino a quando non rimangono più messaggi nelle code di recapito sul server come indicato da un numero messaggi pari a 0.

Per reinviare, oppure sospendere ed esportare i messaggi nella coda non raggiungibile sul server di trasporto di Exchange da salvare

  1. Per reinviare i messaggi presenti nella coda non raggiungibile, eseguire il seguente comando in Exchange Management Shell sul server di trasporto di Exchange:

    Retry-Queue -Identity "Unreachable" -Resubmit $True
    
  2. Utilizzare il Visualizzatore code per sospendere i messaggi da esportare dalla coda non raggiungibile.

  3. Per esportare tutti i messaggi sospesi dalla coda non raggiungibile a una directory, con denominazione file di messaggio automatica utilizzando il formato InternalMessageID.eml, eseguire il seguente comando in Exchange Management Shell:

    Get-Message -Queue "Unreachable" | Export-Message -Path "<ExistingLocalDirectory>"
    

Per ulteriori informazioni su come reinviare i messaggi, vedere Come inviare nuovamente i messaggi nelle code.

Per ulteriori informazioni su come sospendere i messaggi, vedere Come sospendere i messaggi.

Per ulteriori informazioni su come esportare i messaggi, vedere Esposrtazione di messaggi dalle code.

Per riprendere, oppure esportare i messaggi nella coda dei messaggi non elaborabili sul server di trasporto di Exchange di destinazione da salvare

  1. Per riprendere i messaggi nella coda dei messaggi non elaborabili, eseguire uno dei seguenti passaggi:

    • Nel Visualizzatore code, selezionare la coda dei messaggi non elaborabili, quindi selezionare un messaggio, e infine, nel riquadro azioni, scegliere Riprendi.

    • In Exchange Management Shell, eseguire i seguenti comandi:

      Get-Message -Queue "Poison" | ft Identity
      Resume-Message <IdentityofPoisonMessage>
      
  2. Per esportare tutti i messaggi sospesi dalla coda dei messaggi non elaborabili a una directory, con denominazione file di messaggio automatica utilizzando il formato InternalMessageID.eml, eseguire il seguente comando in Exchange Management Shell:

    Get-Message -Queue "Poison" | Export-Message -Path "<ExistingLocalDirectory>"
    

Nota

La coda dei messaggi non elaborabili contiene i messaggi ritenuti dannosi per il sistema di Exchange 2007 dopo un problema del server. Tali messaggi possono essere seriamente dannosi per contenuto o formato, oppure l'errore nell'elaborazione dei messaggi presumibilmente dannosi di Exchange server può essere dovuto a un agente scritto in modo inadeguato. Se non si è certi della sicurezza dei messaggi nella coda dei messaggi non elaborabili, esportare i messaggi su file in modo da poterli esaminare. Se si decide di rimuovere i messaggi dalla coda dei messaggi non elaborabili, rimuoverli senza inviare un rapporto di mancato recapito (NDR, non-delivery report). L'NDR può contenere il contenuto del messaggio originale. I messaggi nella coda dei messaggi non elaborabili sono già in stato sospeso. Pertanto, non è necessario sospenderli prima di esportarli. La coda dei messaggi non elaborabili non può essere reinoltrata utilizzando il cmdlet Retry-Queue mediante il parametro Resubmit. Per reinoltrare i messaggi nella coda dei messaggi non elaborabili, utilizzare il Visualizzatore code per riprendere i messaggi, oppure utilizzare il cmdlet Resume-Message.

Per ulteriori informazioni su come riprendere i messaggi, vedere Come riprendere i messaggi.

Per modificare l'intervallo di timeout di scadenza sul server di trasporto di Exchange di destinazione in modo che i messaggi nel database della coda recuperato vengano conservati.

  • Eseguire il comando riportato di seguito in Exchange Management Shell:

    Set-TransportServer -MessageExpirationTimeout <LongerTimeOutIntervalIndd.hh:mm:ssFormat>
    

    Per impostazione predefinita, il messaggio non recapitato viene restituito al mittente con un rapporto di mancato recapito e viene cancellato dalla coda. Se si verifica una delle seguenti condizioni, è necessario aumentare l'intervallo di timeout di scadenza messaggio:

    • Il database della coda che si sta tentando di recuperare è stato fuori rete per più di due giorni.

    • Dopo che è stato ripristinato, il database della coda non termina di recapitare i messaggi entro due giorni.

    Questo evita che i messaggi vengano cancellati immediatamente dopo l'avvio della coda del database o quando il database riavviato recapita i messaggi precedenti.

Per ulteriori informazioni sulla scadenza dei messaggi, vedere Gestione degli intervalli tra tentativi di invio e reinvio e degli intervalli di scadenza dei messaggi.

Avvio del database della coda sul server di trasporto di Exchange di destinazione ripristinato.

Avviare il database della coda riparato sul server di trasporto di Exchange di destinazione

  1. Al prompt dei comandi o in Exchange Management Shell eseguire il seguente comando sul server di trasporto di Exchange di destinazione:

    Net Stop MSExchangeTransport
    
  2. Sovrascrivere tutti i file del database della coda esistenti e i file di registro delle transazioni vuoti sul server di trasporto di Exchange di destinazione utilizzando tutti i file da "C:\QueueRecovery". Per impostazione predefinita il database della coda e i registri delle transazioni si trovano in C:\Programmi\Microsoft\Exchange Server\TransportRoles\data\Queue.

  3. Al prompt dei comandi o in Exchange Management Shell eseguire il seguente comando:

    Net Start MSExchangeTransport
    

Operazioni di configurazione post-ripristino

Quando il database della coda ripristinato viene avviato sul server di trasporto di Exchange, il flusso dei messaggi ha inizio. Il seguente elenco descrive i potenziali problemi che si possono incontrare:

  • Prepararsi a gestire i messaggi nella coda dei messaggi non elaborabili se il database della coda recuperato da un server di Exchange 2007 sul quale si è verificato un errore. Per ogni messaggio contenuto nella coda dei messaggi non elaborabili si deve decidere se il messaggio ha determinato realmente l'errore del server di Exchange 2007 o se è stato collocato nella coda dei messaggi non elaborabili senza che ve ne fosse la necessità. Si può scegliere se riprendere il messaggio o se esportare il messaggio per esaminarlo. Se non si è certi della sicurezza dei messaggi nella coda dei messaggi non elaborabili, esportare i messaggi su file in modo da poterli esaminare. Se si decide di rimuovere i messaggi dalla coda dei messaggi non elaborabili, rimuoverli senza inviare un rapporto di mancato recapito. Il rapporto di mancato recapito può contenere il contenuto del messaggio non elaborabile.

  • Prepararsi a gestire i messaggi nella coda non raggiungibile e nelle code di recapito che sono bloccati nello stato Riprova. Si consiglia di reinviare manualmente questi messaggi.

  • Se si decide di rimuovere i messaggi per i quali si sono verificati problemi di recapito, è necessario decidere se inviare un rapporto di mancato recapito quando si rimuovono i messaggi. Se si rimuovono i messaggi e si invia un rapporto di mancato recapito, anche i rapporti di mancato recapito devono essere recapitati. Inoltre, anche questi possono incorrere in problemi di recapito. È possibile decidere di rimuovere i messaggi problematici senza inviare un rapporto di mancato recapito. Per ulteriori informazioni sulla rimozione di un messaggio, vedere Rimozione di messaggi dalle code.

  • È necessario considerare se conservare in modo permanente il database della coda recuperato sul server di trasporto di Exchange o se sostituirlo con un nuovo database della coda dopo che i messaggi bloccati sono stati recapitati. Quando viene avviato il database della coda recuperato, i nuovi messaggi sono inseriti nelle code come parte della regolare attività di recapito dei messaggi del server di trasporto di Exchange. Se si decide di sostituire il database della coda utilizzando una nuova copia, è necessario seguire i seguenti passaggi:

    1. Sospendere il servizio di trasporto di Microsoft Exchange per permettere che i messaggi esistenti si esauriscano completamente. Durante questa pausa, non saranno accettati nuovi messaggi.

    2. Arrestare il Servizio di trasporto di Microsoft Exchange.

    3. Eliminare tutti i file del database della coda e i file di registro delle transazioni.

    4. Avviare il Servizio di trasporto di Microsoft Exchange.

Ulteriori informazioni

Per ulteriori informazioni, vedere i seguenti argomenti: