Exchange Server – Quais arquivos fazem parte de uma database do Exchange
Neste artigo vamos falar de um assunto bem interessante, que consiste na explicação de cada um dos arquivos que compoem uma estrutura de database do Exchange Server. Como os administradores de Exchange já sabem, a database é estruturada na arquitetura definida como ESE – Extensible Store Engine, uma arquitetura da Microsoft. Há um Ignite muito bacana sobre esse tópico no Channel9.
Basicamente, os arquivos de database atuais possuem arquivos de logs, que a cada instante são commitados na database, gerando o processo de população da mesma. Para este controle, existe um log principal (E00.log) e os arquivos de log secundários, que são armazenados em sequência. Há também um arquivo de checkpoint (.CHK) que determina a sequência e ordem da “entrada” de logs nas databases. Abaixo, um fluxo resumido do processo.
https://blogdolopez.files.wordpress.com/2016/10/ic175097.gif?w=604
O Exchange Server 2003 e suas versões anteriores utilizavam o arquivo .STM (streaming) para armazenar as mensagens de email. Com o Exchange Server 2007 e Exchange Server 2010, todas as mensagens de emails, anexos e outros passaram a ser armazenados em um arquivo de database primário, para cada mailbox database da organização. As versões mais atuais do Exchange Server não usam o arquivo .STM pois a função de conversão do conteúdo (content conversion) não é mais executada nos servidores com a função de Mailbox, mas sim nos servidores de Client Access (CAS), pois elas fazem parte do Categorizer. Falaremos mais do Categorizer em outro artigo.
Nas versões do Exchange Server 2007 e 2010, haviam dois tipos de databases no ambiente: Mailbox Databases e Public Folder Databases. Atualmente, no Exchange Server 2013 e 2016, não há essa distinção, pois temos o conceito de Modern Public Folders.
Cada database possui um arquivo primário de base de dados (.EDB) e outros arquivos de dependência secundária, como logs secundários, logs transacionais, checkpoints entre outros. A imagem abaixo ilustra quais são estes.
https://blogdolopez.files.wordpress.com/2016/10/1.jpg?w=604
Cada um destes arquivos tem a seguinte função:
.EDB (Primary data) – é o arquivo físico da database que armazena todos os dados de conteúdo das mailboxes. Por padrão, o nome deste arquivo é o mesmo da sua respectiva database vinculada. Entretanto, é possível renomear a database sem ter que renomear este arquivo.
E##.CHK (Checkpoint) – este arquivo mantém todo o rastreamento atualizado sobre as transações realizadas pelos arquivos de log que já foram commitados na database. O nome do arquivo de checkpoint é o prefixo do *current log.
Tmp.EDB (Temporary data) – um arquivo de localização temporária para auxiliar no processamento das transações.
E##.log (Current log) – Este arquivo contém as gravações de todas as alterações que precisam ser commitadas na database. Geralmente, o nome do arquivo é um prefixo sequencial formado por E00.
E##000001.LOG (Log secundário) – Estes arquivos são logs adicionais criados quando necessário, para as tarefas transacionais da database, quando o current log decidir. Centenas de arquivos de log secundários podem ser criados para cada database, e só serão truncados após a execução de um Backup Full.
E##Res0001.jrs (Logs reservados) – Estes arquivos são usados para reservar espaço adicional para os arquivos de log, se o arquivo de current log crescer demais e não suportar mais ser aumentado.
Estes arquivos podem ser encontrados nos servidores Exchange com a role (função) de Mailbox Server, onde são distribuídos em agrupamentos por databases, na pasta “%SystemRoot%\Program Files\Microsoft\Exchange Server\Version>\Mailbox folder”.
Este local pode ser alterado no momento da criação da database, ou pode ser alterado posteriormente utilizando o cmdlet de PowerShell Move-DatabasePath.
Abços,
Bruno Lopes – MVP Office Servers and Services | Facebook Page | YouTube Channel | Twitter | LinkedIn