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:
- Execute sua ferramenta de backup (Veeam, Windows Server Backup) com suporte a VSS/Exchange.
- 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:
- Hablite o Circular Logging (apaga logs assim que escritos no DB).
Set-MailboxDatabase "NOME_DO_BANCO" -CircularLoggingEnabled $true - Desmonte e Monte o banco para aplicar (Gera downtime de segundos/minutos).
Dismount-Database "NOME_DO_BANCO" -Confirm:$false Mount-Database "NOME_DO_BANCO" - 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.
-
Instalar o Recurso (se não tiver):
Install-WindowsFeature Windows-Server-Backup -
Identificar os Volumes: Use
Get-Volumepara saber onde estão seus Logs (ex: E:) e onde salvará o backup (ex: F: ou Share de Rede). -
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 -quietNota: 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 Copyestá rodando.
3. Importação e Exportação (PST)
Pré-requisitos
- O usuário que roda o comando precisa de permissão explicita:
Feche e abra o PowerShell após rodar isso.New-ManagementRoleAssignment -Role "Mailbox Import Export" -User "DOMINIO\Administrador" - É obrigatório usar um caminho de rede (UNC) compartilhado (ex:
\\SRVCGDVIEXCH001\PSTs), mesmo que esteja no próprio servidor. O serviçoExchange Trusted Subsystemprecisa 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