Trabalhando com o banco de dados de filas em servidores de Transporte
Aplica-se a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
Tópico modificado em: 2007-08-21
Uma fila é um local de retenção temporária para mensagens que estão aguardando para entrar na próxima etapa de processamento. Cada fila representa um conjunto lógico de mensagens que um servidor de transporte do Exchange processa em uma ordem específica. As filas só existem nos computadores que contêm a função de servidor Transporte de Hub ou de Transporte de Borda instalada.
O Microsoft Exchange Server 2007 usa um único banco de dados ESE (Mecanismo de Armazenamento Extensível) para armazenar as mensagens da filas. Anteriormente conhecido como JET, o ESE é um método que define uma API de nível baixo para as estruturas do banco de dados subjacente no Exchange Server.
Os cenários a seguir podem resultar em um servidor de Transporte de Hub ou de Transporte de Borda sem capacidade de resposta, com um banco de dados de filas, que possui mensagens não entregues:
Um servidor de transporte do Exchange falhará quando houver mensagens não entregues nas filas. Além disso, não é possível recolocar o servidor online em tempo hábil.
Um servidor de transporte do Exchange possui um banco de dados de filas segmentadas, cujo tamanho aumenta tanto, que pode chegar a consumir todo o espaço disponível na unidade de disco rígido.
É possível mover o banco de dados de filas e seus arquivos associados de log de transações para um local temporário em um servidor de transporte de destino do Exchange, corrigir o banco de dados de filas, substituí-lo no servidor de transporte de destino do Exchange e inicializar esse banco de dados no próprio servidor de transporte de destino do Exchange. Esse servidor de transporte de destino do Exchange pode estar na organização do Exchange ou em outra floresta do serviço de diretório do Active Directory.
Antes de começar
Para executar os procedimentos a seguir, você deve usar uma conta à qual esteja delegado o seguinte:
- Função Administrador do Exchange Server
Para executar os procedimentos a seguir em um computador em que a função de servidor Transporte de Borda esteja instalada, faça logon com uma conta que seja membro do grupo Administradores local no computador.
Para obter mais informações sobre permissões, delegação de funções e os direitos necessários para administrar o Microsoft Exchange Server 2007, consulte Considerações sobre permissão.
À medida que você executar tarefas no banco de dados de filas e nos respectivos arquivos associados, como por exemplo, se mover o banco de dados de filas para o servidor de destino ou fizer correções e desfragmentação offline, certifique-se de ter as permissões contidas na lista a seguir, no diretório em que reside o banco de dados de filas:
Serviço de Rede: Controle Total
Sistema: Controle Total
Administradores: Controle Total
O servidor de transporte de destino do Exchange selecionado para receber o banco de dados de filas recuperado deve ter os mesmos service packs e atualizações de segurança do Exchange 2007 instalados no servidor de origem do Exchange.
Se for possível fazer isso, selecione um servidor de transporte de destino do Exchange para receber o banco de dados de filas recuperado, que possui a mesma função de servidor transporte que o servidor de origem. Você poderá se deparar com um comportamento de entrega de mensagens inesperado, se uma das seguintes condições for verdadeira:
Você inicializa o banco de dados de filas recuperado em um servidor de transporte do Exchange com uma função de servidor diferente daquela do servidor de origem.
Você inicializa o banco de dados de filas recuperado em um servidor de transporte do Exchange localizado em uma floresta diferente daquela do Active Directory.
Por exemplo, as mensagens que estão aguardando entrega em uma fila de Entrega de Caixa de Correio agora podem exigir a entrega usando uma fila de Entrega Remota. Os endereços anteriormente remotos podem se tornar locais, e os anteriormente locais podem se tornar remotos. Prepare-se para encontrar mensagens na fila Inacessível. Talvez seja necessário reenviar manualmente as mensagens através do categorizador. Para obter informações, consulte Como reenviar mensagens em filas.
Recuperando o banco de dados de filas no servidor de transporte de destino do Exchange
As etapas básicas da recuperação do banco de dados de filas são:
Mova o banco de dados de filas para um local temporário no servidor de transporte de destino do Exchange.
Faça a recuperação do banco de dados de filas, usando a ferramenta Exchange Server Database Utilities (Eseutil.exe).
Faça uma desfragmentação offline do banco de dados de filas, usando a ferramenta Eseutil.
Prepare o banco de dados de filas existente no servidor de transporte de destino do Exchange para ser substituído pelo banco de dados de filas recuperado.
Inicialize o banco de dados de filas corrigido no servidor de transporte de destino do Exchange.
Movendo o banco de dados de filas para um local temporário no servidor de transporte de destino
Por padrão, o banco de dados de filas e os logs de transações estão armazenados em C:\Arquivos de Programas\Microsoft\Exchange Server\TransportRoles\data\Queue. As localizações do banco de dados de filas e do log de transações são configuradas no arquivo de configuração do aplicativo EdgeTransport.exe.config, localizado em C:\Arquivos de Programas\Microsoft\Exchange Server\Bin. O parâmetro QueueDatabasePath controla a localização dos arquivos de banco de dados, e o parâmetro QueueDatabaseLoggingPath controla a localização dos logs de transações.
O banco de dados de filas consiste nos seguintes arquivos:
Mail.que O arquivo do banco de dados de filas.
Trn.chk O arquivo de ponto de verificação.
O log de transações consiste nos seguintes arquivos:
Trn.log O arquivo do log de transações atual.
Trntmp.log O arquivo do próximo log de transações configurado, criado antecipadamente.
Trnnnn.log Outros arquivos de log de transações gerados quando o Trn.log atinge o tamanho máximo especificado pelo parâmetro QueueDatabaeLoggingFileSize, no arquivo de configuração do aplicativo EdgeTransport.exe.config. O padrão é 5 MB.
Trnres00001.jrs O arquivo de log de marcador.
Trnres00002.jrs O arquivo de log de marcador.
Temp.edb Embora não seja um arquivo de log de transações, este arquivo verificador do esquema do banco de dados de filas está armazenado com os arquivos de log de transações.
Para mover o banco de dados de filas para o servidor de Transporte de Hub ou de Transporte de Borda
Pare o serviço Transporte do Microsoft Exchange no servidor de transporte Exchange que contém o banco de dados de filas afetado.
Em um prompt de comando ou no Shell de Gerenciamento do Exchange, digite o seguinte comando:
Net Stop MSExchangeTransport
Mova todos os arquivos do bancos de dados de filas e de log de transações para um diretório temporário no servidor de Transporte de Hub ou de Transporte de Borda de destino. Para a finalidade desse exemplo, esse diretório será: C:\QueueRecovery.
Depois que o servidor de transporte afetado do Exchange 2007 for corrigido, um novo banco de dados de filas será gerado quando o serviço Transporte do Microsoft Exchange for reinicializado. Isso pode ocorrer a qualquer momento, depois que você terminar de copiar os arquivos do banco de dados de filas no servidor de transporte de destino.
Para obter mais informações sobre os arquivos do banco de dados de filas, consulte Gerenciando o banco de dados de filas.
Recuperando o banco de dados de filas com a ferramenta Eseutil
Antes de tentar inicializar o banco de dados de filas no servidor de transporte de destino, use a ferramenta Eseutil para recuperar o banco de dados. Como o banco de dados de filas utiliza um log circular, não é possível repetir os logs de transações antigos no banco de dados, usando o modo de restauração do Eseutil /C. Contudo, você pode recuperar um banco de dados por meio do modo de recuperação do Eseutil /R. É possível usar o Eseutil para manutenção e reparo offline do banco de dados de filas.
Dica
O Eseutil reside em C:\Arquivos de Programas\Microsoft\Exchange Server\Bin. Esse diretório está definido no caminho. Portanto, é possível digitar o comando sem especificar o caminho completo.
O processo de recuperação lê o arquivo de ponto de verificação e confirma as transações não confirmadas no log de transações para o banco de dados de filas. Se nenhum arquivo de ponto de verificação existir, a repetição começará pela entrada mais antiga de arquivo de log, disponível no log de transações.
Para fazer a recuperação de um banco de dados de filas usando o Eseutil
Em um prompt de comandos ou no Shell de Gerenciamento do Exchange, abra o diretório C:\QueueRecovery.
Execute o seguinte comando:
Eseutil /r Trn /d. /8
Trn
indica o nome base do arquivo de log de 3 caracteres./8
define um tamanho de página de banco de dados de 8 KB, para se obter uma recuperação mais rápida./d.
indica que o banco de dados a ser recuperado existe no diretório atual.Dica
A recuperação de um grande banco de dados de filas pode demorar muito tempo.
Para obter mais informações sobre como usar o Eseutil para recuperação de bancos de dados, consulte Modo de recuperação do Eseutil /R.
Faça uma desfragmentação offline do banco de dados de filas, usando a ferramenta Eseutil
Após a recuperação do banco de dados de filas, também é recomendável fazer uma desfragmentação offline no banco de dados, usando o modo de desfragmentação Eseutil /D para melhorar a integridade e o desempenho geral do banco de dados de filas. Uma desfragmentação offline de um banco de dados ESE reclama o espaço em branco do banco de dados vazio e pode reduzir o tamanho dos arquivos do banco de dados.
Para fazer uma desfragmentação offline do banco de dados de filas, usando o Eseutil
Em um prompt de comandos ou no Shell de Gerenciamento do Exchange, abra o diretório C:\QueueRecovery.
Execute o seguinte comando:
Eseutil /d mail.que
Dica
A desfragmentação de banco de dados offline pode demorar muito para um grande banco de dados de filas.
Para obter mais informações sobre como usar o Eseutil para a desfragmentação offline de bancos de dados, consulte Modo de desfragmentação do Eseutil /D.
Preparando o banco de dados de filas existente no servidor de transporte de destino do Exchange para ser substituído pelo banco de dados de filas recuperado
Você pode substituir o banco de dados de filas no servidor de transporte de destino do Exchange, usando o banco de dados de filas recuperado. Contudo, isso eliminaria todas as mensagens existentes nas filas, no servidor de transporte de destino do Exchange. Para inicializar o banco de dados de filas recuperado de forma segura, siga primeiro estas etapas no servidor de transporte de destino do Exchange:
Interrompa o fluxo de novas mensagens para as filas e permita a entrega das mensagens já existentes.
Monitore as filas de entrega da caixa de correio e as filas de entrega remota, até que todas as mensagens tenham sido entregues.
Reenvie ou suspenda e exporte as mensagens contidas na fila Inacessível, que você deseja salvar.
Continue ou exporte as mensagens contidas nas filas de mensagens suspeitas, que você deseja salvar.
Modifique o tempo limite de expiração das mensagens no servidor de transporte do Exchange, para preservar as mensagens no banco de dados de filas recuperado.
Para interromper o fluxo de novas mensagens para as filas no servidor de transporte de destino do Exchange e permitir a entrega das mensagens já existentes
Em um prompt de comando ou no Shell de Gerenciamento do Exchange, execute o seguinte comando:
Net Pause MSExchangeTransport
Para monitorar as filas de entrega da caixa de correio e as filas de entrega remota no servidor de transporte de destino do Exchange, até que todas as mensagens tenham sido entregues
- Use o Visualizador de Filas ou o cmdlet Get-Queue no Shell de Gerenciamento do Exchange para monitorar as filas de entrega no servidor de transporte de destino do Exchange. Aguarde até que não haja mais mensagens em nenhuma das filas de entrega no servidor, conforme indicado por uma contagem de mensagens igual a 0.
Para reenviar ou suspender e exportar as mensagens contidas na fila Inacessível no servidor de transporte de destino do Exchange, que você deseja salvar
Para reenviar as mensagens existentes na fila Inacessível, execute o seguinte comando no Shell de Gerenciamento do Exchange, no servidor de transporte de destino do Exchange:
Retry-Queue -Identity "Unreachable" -Resubmit $True
Use o Visualizador de Filas para suspender as mensagens que serão exportadas da fila Inacessível.
Para exportar todas as mensagens suspensas da fila Inacessível para um diretório, com a nomeação automática de arquivos de mensagens, usando o formato InternalMessageID.eml, execute o seguinte comando no Shell de Gerenciamento do Exchange:
Get-Message -Queue "Unreachable" | Export-Message -Path "<ExistingLocalDirectory>"
Para obter mais informações sobre como reenviar mensagens, consulte Como reenviar mensagens em filas.
Para obter informações sobre como suspender mensagens, consulte Como suspender mensagens.
Para obter mais informações sobre como exportar mensagens, consulte Como exportar mensagens de filas.
Para retomar ou exportar as mensagens contidas na fila de mensagens suspeitas no servidor de transporte de destino do Exchange, que você deseja salvar
Para retomar as mensagens na fila de mensagens suspeitas, execute uma das seguintes etapas:
No Visualizador de Filas, selecione a fila Mensagens Suspeitas, escolha uma mensagem e, no painel de ações, selecione Continuar.
No Shell de Gerenciamento do Exchange, execute os seguintes comandos:
Get-Message -Queue "Poison" | ft Identity Resume-Message <IdentityofPoisonMessage>
Para exportar todas as mensagens suspensas da fila Mensagens Suspeitas para um diretório, com a nomeação automática de arquivos de mensagens usando o formato InternalMessageID.eml, execute o seguinte comando no Shell de Gerenciamento do Exchange:
Get-Message -Queue "Poison" | Export-Message -Path "<ExistingLocalDirectory>"
Dica
A fila de mensagens suspeitas contém mensagens que são consideradas perigosas para o sistema Exchange 2007 após uma falha do servidor. O conteúdo ou formato original das mensagens pode ser prejudicial ou as próprias mensagens podem ser vítimas de um agente criado inadequadamente, que ocasionou a falha no servidor Exchange, ao processar as mensagens supostamente prejudiciais. Se você não tiver certeza quanto à segurança das mensagens na fila de mensagens suspeitas, exporte as mensagens para arquivos, a fim de examiná-las. Se decidir remover as mensagens da fila de mensagens suspeitas, faça isso sem enviar uma notificação de falha na entrega (NDR). A notificação de falha na entrega pode englobar o conteúdo da mensagem original. As mensagens contidas na fila de mensagens suspeitas já estão no estado suspenso. Portanto, não é necessário suspendê-las antes de exportá-las. Não é possível reenviar a fila de mensagens suspeitas, usando o cmdlet Retry-Queue com o parâmetro Resubmit. Para enviar as mensagens da fila de mensagens suspeitas novamente, use o Visualizador de Filas para retomá-las ou o cmdlet Resume-Message.
Para obter mais informações sobre como continuar as mensagens, consulte Como retomar mensagens.
Para modificar o tempo limite de expiração das mensagens no servidor de transporte de destino do Exchange, para preservar as mensagens no banco de dados de filas recuperado
Execute o seguinte comando no Shell de Gerenciamento do Exchange:
Set-TransportServer -MessageExpirationTimeout <LongerTimeOutIntervalIndd.hh:mm:ssFormat>
Por padrão, as mensagens não entregues retornam para o remetente com uma notificação de falha na entrega e são excluídas da fila. Se uma das seguintes condições for verdadeira, aumente o intervalo do tempo limite de expiração das mensagens:
O banco de dados de filas que você está tentando recuperar está offline há mais de dois dias.
O banco de dados de filas não conclui a entrega de mensagens no prazo de dois dias, após a sua recuperação.
Isso impede a exclusão das mensagens imediatamente depois que o banco de dados de filas for inicializado ou quando o banco de dados reinicializado entregar suas mensagens antigas.
Para obter mais informações sobre a expiração das mensagens, consulte Gerenciando Intervalos de Repetição de Mensagens, Reenvio e Expiração.
Inicializando o banco de dados de filas corrigido no servidor de transporte de destino do Exchange
Para inicializar o banco de dados de filas recuperado no servidor de transporte de destino do Exchange
Em um prompt de comando ou no Shell de Gerenciamento do Exchange, execute o seguinte comando no servidor de transporte de destino do Exchange:
Net Stop MSExchangeTransport
Substitua todos os arquivos existentes de banco de dados de filas e de log de transações no servidor de transporte de destino do Exchange, usando todos os arquivos do "C:\QueueRecovery". Por padrão, o banco de dados de filas e os logs de transações residem em C:\Arquivos de Programas\Microsoft\Exchange Server\TransportRoles\data\Queue.
Em um prompt de comando ou no Shell de Gerenciamento do Exchange, execute o seguinte comando:
Net Start MSExchangeTransport
Tarefas de configuração pós-recuperação
Quando o banco de dados de filas recuperado for inicializado no servidor de transporte de destino do Exchange, as mensagens devem começar a fluir. A lista a seguir descreve os possíveis problemas que você pode encontrar:
Prepare-se para lidar com mensagens na fila de mensagens suspeitas, se o banco de dados de filas recuperado for proveniente de um servidor Exchange 2007 que falhou. Para cada mensagem na fila de mensagens suspeitas, você deve descobrir se a mensagem realmente causou a falha do servidor Exchange 2007 ou se ela entrou nessa fila desnecessariamente. Você pode retomar a mensagem ou exportá-la para examiná-la. Se você não tiver certeza quanto à segurança de uma mensagem na fila de mensagens suspeitas, exporte a mensagem para um arquivo e examine-a. Se decidir remover as mensagens da fila de mensagens suspeitas, faça isso sem enviar uma notificação de falha na entrega. A notificação de falha na entrega pode englobar o conteúdo da mensagem suspeita.
Prepare-se para lidar com mensagens na fila Inacessível e em filas de entrega presas ao estado de Repetição. Você deve reenviar essas mensagens manualmente.
Se preferir remover as mensagens com problemas de entrega, decida se uma notificação de falha na entrega deve ser enviada, quando elas forem removidas. Se você remover as mensagens e enviar uma notificação de falha na entrega, as próprias mensagens de notificações exigirão uma entrega. Além disso, é possível que elas mesmas tenham problemas de entrega. Você pode remover as mensagens com problemas sem enviar uma notificação de falha na entrega. Para obter mais informações sobre como remover uma mensagem, consulte Como remover mensagens de filas.
Você deve decidir se deseja manter definitivamente o banco de dados de filas recuperado no servidor de transporte de origem do Exchange ou se prefere substituí-lo por um novo banco de dados de filas, depois que todas as mensagens presas forem entregues. Assim que você inicializar o banco de dados de filas recuperado, as novas mensagens entrarão nas filas como parte da atividade normal de entrega de mensagens do servidor de transporte do Exchange. Se decidir substituir o banco de dados de filas por uma cópia nova, siga estas etapas:
Faça uma pausa no serviço Transporte do Microsoft Exchange para permitir que as mensagens existentes sejam totalmente drenadas. Durante essa pausa, nenhuma mensagem nova será aceita.
Interrompa o serviço de Transporte do Microsoft Exchange.
Exclua todos os arquivos do banco de dados de filas e de log de transações.
Inicie o serviço de Transporte do Microsoft Exchange.
Para obter mais informações
Para obter mais informações, consulte os seguintes tópicos: