一用户,邮件系统为exchange2013,未对数据库进行定期备份,导致日志容量不断增长,其中一个数据库所在分区容量被撑爆,当时,用户自己手动对部分日志进行了转移到临时目录。分区空间腾出来200多GB,数据库仍无法装载。
事件日志报错为:
MapiExceptionDatabaseError: Unable to mount database. (hr=0x80004005, ec=1108) Diagnostic context: Lid: 65256 Lid: 10722 StoreEc: 0x454 Lid: 1494 ---- Remote Context Beg ---- Lid: 45120 dwParam: 0x915D7628 Lid: 57728 dwParam: 0x915D7667 Lid: 46144 dwParam: 0x915D7ADB Lid: 34880 dwParam: 0x915D7ADB Lid: 34760 StoreEc: 0xFFFFFDE3 Lid: 41344 Guid: 2a2855dc-18b6-4538-9182-f595330a6876 Lid: 35200 dwParam: 0xA6F0 Lid: 46144 dwParam: 0x915D7D5C Lid: 34880 dwParam: 0x915D7D5C Lid: 54472 StoreEc: 0x1388 Lid: 42184 StoreEc: 0x454 Lid: 1750 ---- Remote Context End ---- Lid: 1047 StoreEc: 0x454 [数据库: XXDB, 服务器: MailDB01.xxxx.com]
以上为联系到用户后的状态。
排查过程,首先,确认目前分区可用空间足够。其次,检查数据库关闭状态为dirtyshutdown。使用eseutil进行修复,历时50分钟,提示成功完成修复。手动装入数据库,仍然提示无法装载数据库。再次修复,使用mout-database -force强制装载数据库,仍然失败。查找KB,需将数据库所在路径的所有日志(.log)及检查点文件(.chk) 移动到临时目录,因用户长期未对数据库备份,日志文件达到1TB之多,历时8个小时的日志文件迁移。完成日志和检查点文件迁移后,数据库自动装入,问题解决。
有一点注意的是,所有*.log文件都需要移走。提醒大家,数据库一定要定期进行备份。