You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

SQL Server 2019标准版日志传送配置异常:Last backup等字段为空且msdb中缺失相关选项

SQL Server 2019标准版日志传送配置异常:Last backup等字段为空且msdb中缺失相关选项

我之前配置SQL Server日志传送时也碰到过几乎一模一样的问题,结合你描述的细节,咱们一步步来排查解决:

核心问题的可能根源

你提到的Last backup、Last copies、Last restore字段为空且msdb里看不到相关选项,本质上是日志传送的监控信息没被正确写入msdb系统表,或是日志传送的核心作业根本没正常跑起来。结合你用域账号Domain/sqladmin、配置了共享权限这些细节,咱们从几个关键方向入手:


1. 先盯紧SQL Server代理服务的运行账号

别只看你登录用的是Domain/sqladmin,日志传送的备份、复制、还原作业是SQL Server代理服务在执行,所以代理服务本身的运行账号才是核心:

  • 按Win+R输入services.msc打开服务管理器,找到SQL Server Agent (MSSQLSERVER),右键选「属性」→「登录」标签页,确认是不是Domain/sqladmin这个域账号。
  • 如果是本地系统账号或其他无域权限的账号,赶紧改成Domain/sqladmin,然后重启代理服务。

另外,这个域账号的权限要覆盖全路径:

  • 主节点的UNC共享文件夹:既要在「共享权限」里给它完全控制,也要在「安全」(NTFS权限)标签页给它完全控制
  • 副节点的本地备份存储文件夹:同样在「安全」标签页添加Domain/sqladmin,赋予完全控制权限。

2. 检查日志传送作业的执行状态

日志传送配置成功后,主节点会生成LSBackup_<你的数据库名>作业,副节点会生成LSCopy_<主数据库名>_<副服务器名>LSRestore_<主数据库名>_<副服务器名>两个作业。你可以:

  • 连接主节点的SSMS,展开「SQL Server代理」→「作业」,找到对应的备份作业,右键选「查看历史记录」,看有没有成功执行的记录。如果全是失败,重点看报错提示(比如“无法访问共享路径”“权限不足”),针对性解决。
  • 同样去副节点检查复制和还原作业的历史,确认它们有没有被触发,有没有报错。

3. 验证初始备份与还原的正确性

日志传送的前提是副节点数据库处于NORECOVERY/STANDBY状态,如果初始完全备份没做好,或是副节点还原时选项错了,后续作业根本没法正常工作:

  • 先在主节点给目标数据库做一次完全备份,把备份文件复制到副节点的本地文件夹。
  • 副节点执行还原操作时,务必在「选项」里勾选「RESTORE WITH NORECOVERY」(要可读就选STANDBY),别选「RECOVERY」——不然数据库处于可用状态,日志传送无法继续。
  • 还原完成后,删掉现有日志传送配置,重新走一遍配置向导,每一步仔细核对路径、权限、监控选项。

4. 直接查询msdb系统表看注册信息

如果前面步骤都没问题,咱们直接查msdb的系统表,确认日志传送是否被正确注册:
在主节点SSMS打开查询窗口,执行:

-- 主节点:查看日志传送主库监控信息
SELECT primary_database, last_backup_date, last_backup_file
FROM msdb.dbo.log_shipping_monitor_primary
WHERE primary_database = '你的主数据库名'

在副节点执行:

-- 副节点:查看日志传送副库监控信息
SELECT secondary_database, last_copied_date, last_copied_file, last_restored_date, last_restored_file
FROM msdb.dbo.log_shipping_monitor_secondary
WHERE secondary_database = '你的副数据库名'
  • 如果查询结果为空,说明配置没被正确注册到msdb,大概率是配置过程中某步出错了,建议删了现有配置重新来。
  • 如果有结果但last_backup_date等字段为空,说明作业还没成功执行过,回到步骤2排查作业失败原因。

5. 别漏了监控选项的勾选

在日志传送配置的最后一步,有个「监控服务器实例」的选项,一定要勾选「启用日志传送监控」,并选对监控服务器(默认是主节点)。要是没启用监控,msdb里不会生成这些Last xxx状态记录,自然看不到相关选项。


按这个顺序排查,基本能解决你碰到的问题。要是某个步骤卡壳了,把具体的报错信息或查询结果贴出来,咱们再细化解决!

火山引擎 最新活动