Artigo original publicado na quarta-feira, 27 de junho de 2012
Na Parte 1 dessa série eu expliquei o script E2K7_IndexRebuildAnalyzer.ps1. Nesse artigo, vou discutir a Estrutura de recompilação de pesquisa que Anatoly Girko e eu desenvolvemos. Esta estrutura foi projetada originalmente para oferecer para nossa equipe de operações internas um conjunto de etapas de validação completas e indicadores de progresso que eles podem analisar ao realizar recompilações de índices de conteúdo.
Em nosso ambiente, sempre que uma decisão é feita para recompilar arquivos do Índice de conteúdo do banco de dados de caixa de correio do Exchange, o Operador começa o primeiro cálculo de estatísticas de pré-compilação para o repositório impactado. estas estatísticas são sempre gravadas no CSV para fins de documentação e são eventualmente inseridas em nosso histórico de conjunto de dados. No entanto, como discutido, o uso do parâmetro -CSVFile é opcional. Em situações onde o parâmetro -CSVFile não é passado, o resultado correspondente será gravado na janela de console do shell. Para melhor leitura, você deve ajustar a Largura do tamanho de armazenamento da tela e a Largura do tamanho da janela do console para acomodar adequadamente todos os cabeçalhos e métricas que serão resultados. Isto permite você ler os valores de forma mais fácil na sessão do console. Desde ponto, eu geralmente "canalizo" o resultado para a Tabel-Format (ft) com o parâmetro -AutoSize (-a).
Exemplo de Console:
.\E2K7_IndexRebuildAnalyzer.ps1 -CMS NA1-ERICNOR-1 | ft -a
Resultado:
Exemplo de CSV:
.\E2K7_IndexRebuildAnalyzer.ps1 -CMS NA1-ERICNOR-1 -CSVFile c:\ericnor\NA-1ERICNOR-1_PreRebuild.csv
As pré-métricas são contrastadas contra o conjunto de dados históricos e um tempo médio para concluir a estimativa de recompilação é derivada. Levamos em conta a localização regional do banco de dados da caixa de correio e as caixas de correio do usuário final correspondente. Com base na geografia e o tempo estimado para concluir a programação do trabalho de recompilação para a data e hora onde a atividade do usuário está armazenadas é minimizada.
Os operadores no seu ambiente continuam a reinicialização do Índice de Conteúdo para o banco de dados de caixa de correio utilizando as técnicas documentadas em Como recompilar o catálogo de índice de texto completo.
Nos exemplos que seguem, eu irei redefinir os arquivos do Índice de Conteúdo para dois bancos de dados de caixa de correio dentro do meu ambiente. Estes dois repositórios também tem grandes contagens de caixas de correio, tamanhos de arquivo EDB e contagens do item do banco de dados coletivas no servidor da caixa de correio agrupada NA1-ERICNOR-1:
Após os arquivos de Indexação de Conteúdo existentes serem removidos do sistema de arquivos e o serviço do Indexador de pesquisa do Microsoft Exchange ter sido subsequentemente reiniciado, é responsabilidade do thread MonitorAndUpdateMDBList determinar o estado atual dos Índices de Conteúdo para todos os bancos de dados de caixa de correio no servidor de caixa de correio habilitado para o Índice de Conteúdo. Quando o thread MonitorAndUpdateMDBList determinar o Estado de integridade do índice de conteúdo para cada banco de dados de caixa de correio, coloca cada valor do Estado de integridade do banco de dados de caixa de correio na memória. Se o valor do Estado de integridade do índice de conteúdo é igual a “Novo”, o Serviço do indexador de pesquisa da Microsoft determinou que o Rastreamento completo é necessário para trazer os arquivos do Índice de Conteúdo para um estado de Integridade (“Integridade” sendo o ponto onde o índice é mantido atualizado através da Notificação de Repositório). É neste momento que o serviço do Indexador de pesquisa do Exchange inicia a operação Rastreamento completo no banco de dados da caixa de correio impactado.
O momento que a operação Rastreamento completo realmente começa é observado no log de Evento de Aplicativo pela ID de Evento 109.
Para garantir que todas as operações de Rastreamento completo tenham começado no sistema, o operador realizando o trabalho irá validar a presença da ID de Evento 109 em cada banco de dados de caixa de correio cujo Índice de conteúdo foi anteriormente redefinido na Etapa 2.
Como ilustrado no exemplo anterior dos arquivos de Índice de Conteúdo para o NA1-ERICNOR-1-DB1 e NA1-ERICNOR-1-DB18 foram reiniciados utilizando o script ResetSearchIndex. Para validar que o serviço do Indexador de pesquisa do Microsoft Exchange tenha começado as operações de Rastreamento completo, uma ID de evento 109 exclusiva deve estar presente em cada banco de dados de caixa de correio no servidor de caixa de correio. Este parece ser o caso:
Tipo de evento: Informação Fonte de evento: Indexador de pesquisa do MSExchange Categoria do evento: Geral ID de Evento: 109 Data: 10/5/2012 Hora: 14:22:19 horas Computador: NA1-ERICNOR-1-A Descrição: O Indexador de Pesquisa do Exchange criou um novo índice de pesquisa e realizará um rastreamento completo para o Banco de dados de caixa de correio NA1-ERICNOR-1\NA1-ERICNOR-1-SG1\NA1-ERICNOR-1-DB1 (GUID = 5a1122be-b9bb-4d5b-853a-e689b1ea1129).
Tipo de evento: Informação Fonte de evento: Indexador de pesquisa do MSExchange Categoria do evento: Geral ID de Evento: 109 Data: 10/5/2012 Hora: 14:22:20 horas Computador: NA1-ERICNOR-1-A Descrição: O Indexador de Pesquisa do Exchange criou um novo índice de pesquisa e realizará um rastreamento completo para o Banco de dados de caixa de correio NA1-ERICNOR-1\NA1-ERICNOR-1-SG18\NA1-ERICNOR-1-DB18 (GUID = 2faba54d-1699-441e-8ac8-1a136d0b7b16).
Nota: Ao invés de inspecionar o Log de eventos visualmente, outra técnica viável deve ser simplesmente nivelar o cmdlet Get-EventLog e gravar os eventos Iniciais para o CSV. Exemplo:
Get-EventLog "Application" | Where-Object {$_.EventID -eq 109} | Select-Object EventID,TimeGenerated,Message | Export-CSV -NoTypeInformation -Path c:\Search_StartEvents.csv
Tendo validado que as operações de Rastreamento completo iniciaram (através da presença da ID de Evento 109) o Operador monitora o progresso de recompilação geral através do Monitor do Sistema. Especificamente, os seguintes Objetos e Contadores devem ser monitorados:
Revisando o objeto MSExchangeSearchIndexer, um Operador pode facilmente determinar quantos Índices de Conteúdo no servidor estão atualizados e quantos estão sendo rastreados ativamente. Quando um Servidor da Caixa de Correio está completamente atualizado atualizado, o valor para o contador “Número de bancos de dados sendo rastreados” sempre será igual a 0 e o valor do contador “Número de bancos de dados sendo atualizados por notificações” será igual ao número de Bancos de dados de caixa de correio que estão habilitados para Indexação de Conteúdo no servidor.
No meu exemplo, eu tenho dezoito Bancos de dados de caixa de correio total no meu servidor de email e dois deles estão atualmente passando pelo Rastreamento completo. Portanto, o valor para “Número de bancos de dados sendo rastreados” deve ser igual a 2 e o valor de “Número de bancos de dados indexados sendo atualizados por notificações” deve ser igual a 16, nos quais são:
Quando os bancos de dados de caixa de correio individuais concluírem o Rastreamento completo, você observará alterações específicas em vários contadores de objeto no Monitor do sistema.
No nível do Indexador de Pesquisa do MSExchange:
No nível de Índice do banco de dados de caixa de correio:
Em um Exchange Server onde todos os Índices de conteúdo estão completamente atualizados, você deve esperar ver o seguinte:
No meu exemplo, todos estes valores são Verdadeiros, portanto, eu posso assumir que os índices foram recompilados com sucesso e que por uma perspectiva de Índice de Conteúdo que o servidor está completamente Íntegro:
Quando todos os Índices de Conteúdo parecem estar atualizados através do Monitor do Sistema, o Operador realizando o trabalho deve continuar a revisar o Log de Eventos de Aplicativo e validar a presença do ID de evento 110 que é o evento de conclusão do Indexador de pesquisa do Microsoft Exchange para o Rastreamento completo. Semelhante a ID de Evento 109, haverá uma entrada de evento 110 exclusiva para cada Banco de dados de caixa de correio que concluir o Rastreamento completo:
Tipo de evento: Informação Fonte do evento: Indexador de Pesquisa do MSExchange Categoria do evento: Geral ID de Evento: 110 Data: 10/5/2012 Hora: 17:39:47 horas Computador: NA1-ERICNOR-1-A Descrição: Indexador de Pesquisa do Exchange concluiu um rastreamento completo (indexação) do Banco de dados de caixa de correio NA1-ERICNOR-1\NA1-ERICNOR-1-SG1\NA1-ERICNOR-1-DB1 (GUID = 5a1122be-b9bb-4d5b-853a-e689b1ea1129).
Tipo de evento: Informação Fonte do evento: Indexador de Pesquisa do MSExchange Categoria do evento: Geral ID do Evento: 110 Data: 10/5/2012 Hora: 17:11:47 horas Computador: NA1-ERICNOR-1-A Descrição: Indexador de Pesquisa do Exchange concluiu um rastreamento completo (indexação) do Banco de dados de caixa de correio NA1-ERICNOR-1\NA1-ERICNOR-1-SG18\NA1-ERICNOR-1-DB18 (GUID = 2faba54d-1699-441e-8ac8-1a136d0b7b16).
Nota: Ao invés de inspecionar o Log de Eventos visualmente, outra técnica viável seria simplesmente aproveitar o cmdlet Get-EventLog e gravar os eventos de Conclusão para o CSV. Exemplo:
Get-EventLog "Application" | Where-Object {$_.EventID -eq 110} | Select-Object EventID,TimeGenerated,Message | Export-CSV -NoTypeInformation -Path c:\Search_CompletionEvents.csv
Na Etapa 5, é assumido que o operador tenha validado a conclusão do Rastreamento completo de cada Banco de dados de caixa de correio. Neste ponto que o operador deve coletar as métricas Pós-recompilação para determinar as características do resultado para cada Banco de dados de caixa de correio que passou pelo rastreamento.
Para coletar estas métricas, o script E2K7_IndexRebuildAnalyzer é utilizado nivelando a opção -PostRebuild.
Como mencionado anteriormente, o -PostRebuild analisa os logs do Evento de Aplicativo para a presença da ID de Evento 109 e ID de Evento 110. No caso da Replicação de Cluster Contínuo, o Log de Evento de Aplicativo para cada nó no Cluster CCR é avaliado. Se o script pode localizar estas IDs de evento, calculará o tempo total (em vários incrementos de tempo) necessários para concluir o Rastreamento completo em cada Banco de dados de caixa de correio. Retornará para o operador as características de resultado para cada operação de recompilação.
É novamente importante observar que todos os Bancos de dados de caixa de correio no Servidor de caixa de correio serão avaliados independente se todos os Bancos de dados de caixa de correio tiveram seus Índices de Pesquisa recompilados. Além disso, se instanciado sem a opção -CSVFile, o conjunto de resultados serão encaminhados para a janela de console. Ao calcular as estatísticas Pós-recompilação, eu incentivo nivelar o -CSVFile, pois realiza o relatório, classificação, filtragem e dinamização muito facilmente quando o Excel é nivelado.
.\E2K7_IndexRebuildAnalyzer.ps1 -CMS NA1-ERICNOR-1 -PostRebuild -CSVFile c:\ericnor\NA1-ERICNOR-1_PostRebuild.csv
Após o E2K7_IndexRebuildAnalyzer ter concluído a execução, o arquivo CSV pode ser inspecionado. A revisão do CSV mostra que todos os Bancos de dados de caixa de correio do Exchange no Servidor de caixa de correio foram processados. A cadeia “NoEventsFound” está sendo devolvida para vários Bancos de dados de caixa de correio do Exchange porque a combinação do par da ID de Evento do Indexador de pesquisa não pode ser localizada. Neste exemplo, existem 16 Bancos de dados de caixa de correio relatando “NoEventsFound” e dois Bancos de dados de caixa de correio com métricas de pós-recompilação válidas:
Este conjunto de resultados pode ser ainda mais refinado aplicando um filtro baseado em texto simples no Excel. Aplicando o filtro para qualquer cabeçalho da coluna de pós-recompilação e desmarcando a cadeia “NoEventFound”, apenas os bancos de dados com métricas de pós-recompilação válidas serão exibidos:
O resultado de aplicar este filtro no conjunto de resultados de exemplo mostra agora apenas NA1-ERICNOR-1-DB1 e NA1-ERICNOR-1-DB18 (por exemplo, os Bancos de dados de caixa de correio que tinham seus Índices de conteúdo redefinidos). Também está claro que as métricas de pós-recompilação foram verificadas com sucesso, pois há valores válidos para os vários cabeçalhos de pós-recompilação:
Aplicativo do Filtro de Pós-Cadeia:
A Etapa 6 na Estrutura de recompilação valida que cada caixa de correio hospedada nos Bancos de dados de caixa de correio com seus Índices de Conteúdo redefinidos podem agora retornar respostas de pesquisas válidas. Este objetivo pode ser obtido nivelando a funcionalidade principal contida dentro do cmdlet Test-ExchangeSearch. A validação final é concluída apenas quando todas as caixas de correio retornam uma resposta Verdadeiro para o cmdlet.
Get-Mailbox -Database NA1-ERICNOR-1\ NA1-ERICNOR-1-SG1\ NA1-ERICNOR-1-DB1 | Test-ExchangeSearch | ft -a
Get-Mailbox -Database NA1-ERICNOR-1\ NA1-ERICNOR-1-SG18\ NA1-ERICNOR-1-DB18 | Test-ExchangeSearch | ft -a
Este processo levará algum tempo para concluir dependendo do número de caixas de correio contidas dentro de um banco de dados. Também vale a pena observar que ao realizar operações em lote com o Test-ExchangeSearch que as propriedades ResultFound e SearchTime estarão visíveis na janela de console apenas após todas as caixas de correio tiverem sido processadas (independente dos resultados Verdadeiro ou Falso). Em alguns casos, não faz sentido armazenar todos os resultados no CSV para fins de documentação.
Qualquer caixa de correio do usuário final relatando Falso para o teste Test-ExchangeSearch é tratada como problemas 1 menos e solucionado da mesma forma.
Para fins de leitura, irei exibir as várias métricas no formato de tabela ao invés de exibir as métricas nativamente em colunas do Excel. Como observado anteriormente, existem dois Bancos de dados de caixa de correio do Exchange no Servidor de caixa de correio agrupado NA1-ERICNOR-1 que tinham seus Índices de conteúdo recompilados: NA1-ERICNOR-1-DB1 e NA1-ERICNOR-1-DB18
Pós-recompilação da métrica de caixa de correio:
Métricas de recompilação do Banco de dados de caixa de correio:
As várias métricas de recompilação e métricas de pré-compilação são adicionadas ao histórico do conjunto de dados para que eles possam contribuir com os históricos de média para exercícios de recompilação futuros.
Na segunda publicação da série, eu abordei as etapas da Estrutura de recompilação de pesquisa. Minha próxima publicação final abordará as médias observadas que vimos dentro de nossas implantações na Microsoft.
Eric Norberg Engenheiro de Serviço Exclusivo do Office 365
Esta é uma publicação de blog traduzida. O artigo original está localizado em Establishing Exchange Content Index Rebuild Baselines – Part 2