manuais-e-documentacao-itguys/documentacao exchange/[Nível 3] Relatorios Avanca...

4.4 KiB

[Nível 3] Relatórios Avançados e Manutenção de Banco de Dados

Público Alvo: SysAdmin / Gestão Ferramenta: PowerShell (EMS)


1. Relatórios de Uso e População

Contagem de Usuários por Banco de Dados (Cliente)

Como o ambiente é multi-tenant separado por Database, este comando mostra quantos usuários cada cliente tem.

Get-Mailbox -ResultSize Unlimited | Group-Object -Property Database | Select-Object Name, Count, @{n='Size(GB)';e={"{0:N2}" -f ($_.Group | ForEach-Object {(Get-MailboxStatistics $_.Identity).TotalItemSize.Value.ToGB()} | Measure-Object -Sum).Sum}} | Sort-Object Count -Descending

Este comando pode demorar um pouco pois calcula o tamanho total.

Contagem de Usuários por Domínio de E-mail

Se você mistura clientes no mesmo banco, agrupe pelo domínio do e-mail:

Get-Mailbox -ResultSize Unlimited | Group-Object -Property @{E={$_.EmailAddresses | Where-Object {$_ -like "SMTP:*"} | ForEach-Object {$_.Split("@")[1]} | Select-Object -First 1}} | Select-Object Name, Count | Sort-Object Count -Descending

Relatório de Caixas "Gigantes" (Top 20)

Identificar quem está consumindo mais espaço.

Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Sort-Object TotalItemSize -Descending | Select-Object -First 20 DisplayName, @{n='Size(GB)';e={$_.TotalItemSize.Value.ToGB()}}, Database

2. Manutenção de Logs e Espaço em Disco

Truncamento de Logs (Log Truncation)

Os logs de transação (.log) do Exchange crescem infinitamente até que um Backup Full seja realizado. NUNCA APAGUE ARQUIVOS .LOG MANUALMENTE. Isso corrompe o banco.

Procedimento Correto:

  1. Execute sua ferramenta de backup (Veeam, Windows Server Backup) com suporte a VSS/Exchange.
  2. Ao finalizar o backup com sucesso, o Exchange apaga os logs antigos automaticamente.

Procedimento de Emergência (Disco Cheio): Habilitar Circular Logging Se o disco de logs encher e o banco desmontar:

  1. Hablite o Circular Logging (apaga logs assim que escritos no DB).
    Set-MailboxDatabase "NOME_DO_BANCO" -CircularLoggingEnabled $true
    
  2. Desmonte e Monte o banco para aplicar (Gera downtime de segundos/minutos).
    Dismount-Database "NOME_DO_BANCO" -Confirm:$false
    Mount-Database "NOME_DO_BANCO"
    
  3. Importante: Desabilite assim que resolver o espaço e fizer backup, pois o Circular Logging impede recuperação "point-in-time".

Backup Manual via Linha de Comando (Wbadmin)

Como o servidor é Core, não há "wbadmin.msc". Use o comando abaixo para realizar um Backup Full (VSS Real) que trunca os logs corretamente.

  1. Instalar o Recurso (se não tiver):

    Install-WindowsFeature Windows-Server-Backup
    
  2. Identificar os Volumes: Use Get-Volume para saber onde estão seus Logs (ex: E:) e onde salvará o backup (ex: F: ou Share de Rede).

  3. Executar Backup VSS Full: Este comando faz backup do volume E: (Logs/DB), salva em F: (Backup), e marca como VSS Full para limpar os logs.

    wbadmin start backup -backupTarget:F: -include:E: -vssFull -quiet
    

    Nota: Substitua E: e F: pelas letras corretas.

    Se falhar: Verifique se o disco de destino tem espaço ou se o serviço Volume Shadow Copy está rodando.


3. Importação e Exportação (PST)

Pré-requisitos

  1. O usuário que roda o comando precisa de permissão explicita:
    New-ManagementRoleAssignment -Role "Mailbox Import Export" -User "DOMINIO\Administrador"
    
    Feche e abra o PowerShell após rodar isso.
  2. É obrigatório usar um caminho de rede (UNC) compartilhado (ex: \\SRVCGDVIEXCH001\PSTs), mesmo que esteja no próprio servidor. O serviço Exchange Trusted Subsystem precisa de permissão de Leitura/Gravação nessa pasta.

Exportar Caixa para PST

New-MailboxExportRequest -Mailbox "usuario" -FilePath "\\172.16.150.150\share\usuario.pst"

Importar PST para Caixa

New-MailboxImportRequest -Mailbox "usuario" -FilePath "\\172.16.150.150\share\backup_antigo.pst"

Acompanhar o Andamento

Get-MailboxExportRequest | Get-MailboxExportRequestStatistics
# ou
Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

Limpar Requisições Concluídas

O Exchange não limpa o histórico sozinho.

Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest -Confirm:$false