使用Ola Hallengren脚本执行LOG备份无法生成.trn文件问题咨询
问题排查思路
Ola Hallengren的备份脚本是行业内广泛使用的成熟方案,该场景下触发脚本Bug的概率极低,基本可以优先排查配置和环境逻辑问题,你可以按以下顺序核对:
- 第一优先级核对目录结构
Ola脚本默认会在你指定的@Directory根路径下,自动按「实例名>数据库名>备份类型」三级结构创建子目录存储备份文件:- 完整备份路径:
\\path\to\drive\<实例名>\AdventureWorks2017\FULL\ - 日志备份路径:
\\path\to\drive\<实例名>\AdventureWorks2017\LOG\
大部分用户都是直接在根目录或者FULL/DIFF目录下查找日志备份文件,自然找不到,这是该问题最高频的触发原因。
- 完整备份路径:
- 检查日志备份链是否初始化
即使数据库设置为FULL恢复模式,但如果从未执行过完整备份,事务日志链没有初始化,Ola脚本会直接跳过日志备份任务,不会报错也不会生成文件。你可以执行以下语句确认是否存在有效完整备份:
SELECT TOP 1 backup_start_date, type FROM msdb.dbo.backupset WHERE database_name = 'AdventureWorks2017' AND type = 'D' ORDER BY backup_start_date DESC
如果查询无返回结果,先执行一次完整备份后再测试日志备份即可。
- 检查是否无新增可备份的日志
如果自上一次日志备份完成后,数据库没有产生新的事务日志,脚本也不会生成空的备份文件。你可以通过以下语句查看日志使用情况:
DBCC SQLPERF(LOGSPACE)
找到AdventureWorks2017对应的日志使用率如果为0%,可以手动执行几笔写操作产生新日志后再测试。
- 核对执行日志确认跳过原因
你已经开启了@LogToTable = 'Y'参数,直接查询master.dbo.CommandLog表中对应日志备份任务的Output字段,可以直接看到脚本跳过日志备份的具体原因,确认是否存在其他日志备份任务截断了日志、或者特殊配置导致跳过等场景。
内容的提问来源于stack exchange,提问作者Serdia
相关产品推荐
相关产品推荐

