成功完成完整备份后,Exchange 不会截断事务日志

成功完成完整备份后,Exchange 不会截断事务日志

我在用着戴尔Avamar 本国的 交易所代理完整备份数据库独立 Exchange 2013服务器(最新更新和补丁)。它使用 VSS。

这不是代理问题,因为在备份结束时我们正确地获得了 Windows 事件 2046:

Microsoft Exchange 复制服务 VSS 书写器实例 xxxxx 已成功地完成数据库备份'財政部

已请求对此数据库进行数据库日志截断。在创建下一个日志生成后,将在主动副本上进行日志截断。

但原木仍以每天 560 根的速度堆积起来。

我已经确认了循环记录已禁用上次完整备份属性获取正确填充

我错过了什么?

答案1

如果还有人读到这篇文章,那么在我发帖求助 3 天后,日志就开始奇迹般地被正确清除了。我关闭了这个问题,但我不太确定,因为在 IT 领域我不喜欢魔法。

让我分享一下我创建的 Powershell 脚本,作为一种解决方法,这样我就不会耗尽空间

剧本:

  1. 检查 MailboxDatabase 是否已挂载
  2. 启用循环日志记录
  3. 卸载 MailboxDatabase
  4. 装载 MailboxDatabase

日志被清除

  1. 禁用循环日志记录
  2. 卸载 MailboxDatabase
  3. 装载 MailboxDatabase

`

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn    

#################  Functions  ###############

Function MandaMail{
    Param ( [string]$assunto,[string]$texto )
    Send-MailMessage -To “<[email protected]>” -From “<[email protected]>”  -Subject $assunto -Body $texto -SmtpServer “smtp.server.domain”
}

Function IsMounted{
    Param ( [string]$mdb )
    return [System.Convert]::ToBoolean($(Get-MailboxDatabase $mdb -Status | foreach { $_.Mounted}))
}

Function ReiniciaMDB{

    Param ( [string]$mdb )
    
    Start-Sleep -Seconds 5

    Write-Host "   ...vamos desmontar a Mailboxdatabase:"$mdb
    Dismount-Database -Identity $mdb –confirm:$false 
    Start-Sleep -Seconds 10
        
    Write-Host "   ...confirmar se desmontou... "
    if (IsMounted($mdb)) {
        Write-Host "   ...ERRO ao desmontar -> return False "
        return $false }
    Else {
        Write-Host "   ...ok, desmontou."
        Write-Host "   ...vamos montar a Mailboxdatabase:"$mdb
        Mount-Database $mdb
        Start-Sleep -Seconds 5

        Write-Host "   ...confirmar se montou..."
        if (IsMounted($mdb)) {
            Write-Host "   ...ok. montou"
            return $true }
        Else {
            Write-Host "   ...ERRO ao montar -> return False "
            MandaMail -assunto "Exchange | PurgeTransLogs | ERRO ao montar:"$mdb -texto "." 
            return $false}
    }


}


Function LimpaTransLogs{

    Param ( [string]$mdb )

    if (IsMounted($mdb)) { 
        Write-Host "...a MDB "$mdb" esta montada. /n ...activar o circular logging..: "
        Set-MailboxDatabase -Identity $mdb -CircularloggingEnabled:$true        

        Write-Host "...reiniciar a MBD run1... "
        If (ReiniciaMDB($mdb)) {
            Write-Host "...reiniciou com SUCESSO. /n ...desactivar o circular logging..: "
            Set-MailboxDatabase -Identity $mdb -CircularloggingEnabled:$false

            Write-Host "...reiniciar a MBD run2..: "
            If (ReiniciaMDB($mdb)) {
                Write-Host "...reiniciou com SUCESSO."
                MandaMail -assunto "Exchange | PurgeTransLogs | SUCESSO " -texto "." 
                Write-Host "...FIM!" 
                return $true}
            Else {
                Write-Host "...algo não correu bem :("
                return $false
            }
        }
        Else { Write-Host "...nao reiniciou a MBD run1" }
    }
    Else { 
        Write-Host "...A MDB "$mdb" nao estava montada" 
        MandaMail -assunto "Exchange | PurgeTransLogs | ERRO: nao estava montada " -texto "." 
    }

}

#####################################################################

LimpaTransLogs("MailboxDatabase_01")
LimpaTransLogs("MailboxDatabase_02")

答案2

您看过这个文件了吗? EXCHANGE DAG 2016:如果通过 veeam 备份存在数据库副本,则事务日志不会被截断 - Microsoft Q&A 在这种情况下,原帖作者说你必须选择备份中包含主动和被动数据库驱动器的所有磁盘才能正确刷新日志。

答案3

您可以考虑启用循环日志记录,这将有助于您减少数据库的日志大小 Exchange 2019:在数据库上启用循环日志记录 - TechNet 文章 - 美国(英语) - TechNet Wiki (microsoft.com)

答案4

希望你已经解决了这个问题,

造成此问题的原因可能有两个:

第一的:Exchange 搜索索引器服务可能正在停止截断日志文件。您可以尝试以下步骤:

  1. 停止 Exchange 搜索服务

    Stop-Service MsExchangeSearch
    Stop-Service MsExchangeSearchHostController
    
  2. 删除、重命名或移至其他位置

  3. 重启 Exchange 搜索服务

第二:Exchange 编写器只能备份和恢复活动的 Exchange 数据库。请使用 VSS Exchange 编写器以及日志检查错误。

顺便说一句,您也可以为受影响的数据库启用循环日志记录,它将自动截断日志,然后禁用循环日志记录。之后,使用 Windows Server Backup 对 Exchange 数据库进行完整备份。您可以参考此链接提供详细信息

相关内容