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.

Etapa 1: Reunir estatísticas de pré-recompilação

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).

Exemplos

Exemplo de Console:

.\E2K7_IndexRebuildAnalyzer.ps1 -CMS NA1-ERICNOR-1 | ft -a

Resultado:

1

Exemplo de CSV:

.\E2K7_IndexRebuildAnalyzer.ps1 -CMS NA1-ERICNOR-1 -CSVFile c:\ericnor\NA-1ERICNOR-1_PreRebuild.csv

Resultado:

2

3

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.

Etapa 2: Redefinir o índice de conteúdo para bancos de dados de caixa de correio impactados

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:

4

Redefinir os arquivos do índice de conteúdo:

5

Etapa 3: A validação do indexador de pesquisa detectou um rastreamento completo necessário

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.

Exemplo

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

Etapa 4: Validando o progresso do Indexador de pesquisa e conclusão

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:

  • Indexador de Pesquisa do MSExchange\Número de Bancos de Dados sendo Rastreados
  • Indexador de Pesquisa do MSExchange\Número de Bancos de Dados indexados sendo mantidos atualizados pelas Notificações
  • Índices de Pesquisa do MSExchange\<Instância do banco de dados passando pelo rastreamento>\Status de modo do rastreamento completo
  • Índices de Pesquisa do MSExchange\<Instância do banco de dados passando pelo rastreamento>\Taxa de indexação do documento
  • Índices de Pesquisa do MSExchange\<Instância do banco de dados passando pelo rastreamento>\Número de caixas de correio restantes para rastrear
  • Índices de Pesquisa do MSExchange\<Instância do banco de dados passando pelo rastreamento>\Número de caixas de correio recentemente movidas sendo rastreadas
  • Índices de Pesquisa do MSExchange\<Instância do banco de dados passando pelo rastreamento>\Número de lotes pendentes
  • Índices de pesquisa do MSExchange\<Instância do banco de dados passando pelo rastreamento>\Valor de atraso do aceleramento

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:

6

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:

  • O contador “Número de bancos de dados sendo rastreados”é diminuído em 1
  • O “Número de bancos de dados indexados sendo atualizados por notificação” é aumentado em 1.

No nível de Índice do banco de dados de caixa de correio:

  • O valor para “Status do modo de rastreamento completo” no banco de dados específico foi diminuído para 0 (que reflete o novo valor para o estado Integridade do índice de conteúdo como determinado pelo monitor MonitorAndUpdateMDBList).
  • O “Número de caixas de correio restantes para rastrear” deve refletir um valor de 0.
  • Embora não especificamente relacionado à operação de recompilação Rastreamento completo, o valor para o contador “Número de caixas de correio movidas recentemente sendo rastreadas” também deve ser 0 para cada índice. Como as caixas de correio do Exchange são movidas com sucesso entre os bancos de dados de caixa de correio do Exchange (sabendo que o destino está habilitado para Indexação de Conteúdo), as Notificações de pesquisa no banco de dados de origem serão suspensas temporariamente. O Serviço do Indexador de Pesquisa do Exchange faz isso para que possa realizar rastreamentos menos 1 das caixas de correio movidas recentemente para atualizar completamente o Índice Mestre. Quando o rastreamento menos 1 tiver sido concluído, as Notificações de repositório são retomadas. Observe aqui que embora o Rastreamento completo ter sido tecnicamente concluído, é possível que o rastreamento menos 1 esteja ocorrendo se as movimentações da caixa de correio estejam ocorrendo ao mesmo tempo como recompilação do Índice de Conteúdo. Sabendo que este contador é igual a 0, toda a atividade de rastreamento ocorrendo no Banco de dados de caixa de correio estará totalmente concluído. Portanto, deve ser validado como tal.

Em um Exchange Server onde todos os Índices de conteúdo estão completamente atualizados, você deve esperar ver o seguinte:

  • Indexador de Pesquisa do MSExchange\Número de banco de dados sendo rastreados” é igual a 0.
  • “Indexador de Pesquisa do MSExchange\Número de banco de dados sendo atualizados por notificações”é igual ao número de Bancos de dados de caixa de correio habilitados para indexação no Servidor de caixa de correio.
  • “Status do modo de rastreamento completo” para cada instância do Banco de dados de caixa de correio do Exchange no Servidor de caixa de correio é igual a 0.
  • “Número de caixas de correio restantes para rastrear” para cada instância do Banco de dados de caixa de correio do Exchange é igual a 0.
  • “Número de caixas de correio movidas recentemente sendo rastreadas” para cada instância do Banco de dados de caixa de correio do Exchange é igual a 0.

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:

7

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

Etapa 5: Coletar métricas pós-recompilação

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.

Exemplo

.\E2K7_IndexRebuildAnalyzer.ps1 -CMS NA1-ERICNOR-1 -PostRebuild -CSVFile c:\ericnor\NA1-ERICNOR-1_PostRebuild.csv

8

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:

9

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:

10

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:

11

Etapa 6: Validação do Test-ExchangeSearch

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.

Exemplo:

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.

Etapa 7: Análise da métricas de pós-compilação

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:

12

 

Métricas de recompilação do Banco de dados de caixa de correio:

13

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.

Conclusão

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