NetWorker:介质数据库维护和故障处理

Summary: 本文介绍了识别和处理介质数据库相关问题的方法,以及维护和保护的最佳做法。

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

  • 无法启动服务。
  • 每日 服务器保护>服务器备份 工作流失败。
  • 与以下者返回的存储集或客户端相关的不完整或误导性信息: mminfo 命令或在 NetWorker Management Console (NMC) 或 NetWorker Web 用户界面 (NWUI) 管理中查询或浏览存储集时。
  • 与无法找到存储集、客户端或卷相关的备份、恢复或克隆问题。
  • 与介质数据库相关的服务器守护程序日志或控制台中的错误:
nsrmmdbd WiSS code assertion error (st_nextrec: rec loop detected)
nsrmmdbd error, ss_clone_ensure_clone_eligibility: assertion, invalid parameters or code segment
nsrmmdbd XCHK ssid:saveset_short_ssid host:saveset_hostname name:saveset_name has a fragment with an invalid volid:saveset_volid
nsrmmdbd NSR warning WiSS code assertion error (ST_readvdir: directory read failed)
nsrmmdbd NSR critical Unexpected error reading long record directory: an invalid slot number
nsrmmdbd NSR warning partial record error, ssid: saveset_short_ssid saveset_long_ssid flags:0x00010101 size:0 files:0 tm:datetime cloneid
nsrmmdbd NSR notice media db must be scavenged
nsrmmdbd NSR critical media db scavenge failed
nsrmmdbd NSR warning Cannot scavenge path_to_mmvolume6 (Permission denied) - recover from backup media
nsrmmdbd NSR warning Cannot scavenge path_to_mmvolume6 (unknown error code) - recover from backup media
nsrmmdbd MDB warning can't fetch save set <saveset ID>
nsrmmdbd MDB warning Unable to fetch child save set <saveset ID> for cover set <saveset ID>
  • 介质数据库中的许多存储集突然丢失,或可用磁盘存储可用空间突然激增。
  • 软件无法过期或删除存储集,从而导致存储消耗快速。

Cause

与任何数据库一样,如果介质数据库的正常作有任何推断,则介质数据库可能会受到不同程度的损坏,例如。 

  • 意外关闭 nsrmmdbd 进程(核心转储、系统崩溃、重新启动或断电)。
  • 事务中断(外部安全软件干扰或磁盘空间耗尽)。
  • 逻辑内部问题(代码缺陷或未处理的情况)。
  • 直接干扰 NetWorker 管理的存储上的介质数据库文件或存储集文件。

通过以下一般做法,最好保护介质数据库免遭损坏:

  • 如果可能,请为 /nsr/mm 文件夹,这有助于防止其他进程出现磁盘空间耗尽等情况。此分区的大小应至少为媒体数据库大小的 3 倍;大型媒体数据库为 10 GB;对于任何安装,100 GB 应该足够。 
  • 确保每天完成服务器备份工作流,以便在发生灾难时可以备份介质数据库和关键灾难恢复资源( 引导数据库)。
  • 使用以下命令验证引导程序的位置: mminfo -B 命令。
  • 切勿允许另一台 NetWorker 服务器同时访问 NetWorker 服务器的存储卷,因为这可能会导致数据丢失。
  • 如果 NetWorker 服务器上安装了防病毒软件,则为 /nsr 目录中,以防止防病毒软件扫描、修改或删除 NetWorker 文件。 
  • 避免手动删除 NetWorker 存储中的任何文件以尝试释放空间。NetWorker 具有每天运行的空间回收例程,如果认为这些例程失败,应联系支持部门。
  • 一般而言,对于数据区规划,应将相同类型的数据保留在相同池中以便在需要时进行维护,例如 vProxy 存储集、文件系统存储集和单独池中的 Oracle 数据库存储集。
  • 请勿忽略与介质数据库错误相关的消息 - 如有疑虑,请联系支持部门。

请注意 NetWorker 的介质数据库和存储关系,并使用 需要扫描标记保护卷: 

  • 作为服务器备份工作流的一部分,NetWorker 每天运行到期过程。此作业将计算保留和依赖关系,并使超过其保留期且没有未过期依赖项的存储集过期。完成此作后,NetWorker 会尝试删除所有过期的磁盘卷存储集。此后,将针对每个卷运行空间回收作,从磁盘介质中删除没有相应介质数据库条目的存储集文件。这意味着,如果介质数据库损坏,或者您将数据库恢复到之前的时间点,有效数据可能会被删除。
  • 如果您认为任何磁盘卷存在问题,为确保不会删除有效数据,请确保卸载该卷并将其标记为“需要扫描”。这也适用于恢复到上一个时间点之后的卷(其中有效的存储集可能存在于恢复点之后创建的磁盘上,并且在恢复的数据库中没有条目)。 
  • “需要扫描”允许正常备份、恢复或克隆,但会阻止正常到期或删除 — 因此请确保仅将其用于保护被视为处于危险中的卷,并在恢复正常作时将其删除。必须卸载卷才能设置或删除此标记。在 NetWorker 服务器灾难恢复后,通常会将卷标记为“需要扫描”(nsrdr),以防止在灾难恢复情形中丢失不需要的数据。

Resolution

有多种方法可以尝试验证和纠正介质数据库问题。在尝试执行任何作之前,为了评估影响,请在之前和之后创建报告,以查看是否已删除存储集、卷、客户端或其他任何内容。
在命令行中,在主机输出的目录中,运行以下命令以比较该过程前后的介质数据库属性:

  • mminfo -C mminfo-C_pre.mmi
  • mminfo -X mminfo-X_pre.mmi
  • mminfo -ar "volid,type,location,pool,volume,state,volflags,written,savesets" -q family=disk -xc, > mminfo-vol_pre.mmi

完成维护后,将每个文件重新运行到单独的文件(例如 *_post.mmi) 并比较值。

nsrim - 日常服务器保护

每天运行服务器保护 > 服务器备份工作流,随之而来的是过期作。Expiration作运行 nsrim 这是 NetWorker 的本机维护实用程序。这也可以直接运行,但可能需要几分钟到几个小时,具体取决于服务器负载和媒体数据库大小:

nsrim -X > nsrim.out 2>&1

除非此过程无法每天运行,否则这不太可能更改任何内容。检查守护程序日志中是否存在 nsrim 每日完成。有关详细信息,请参阅:NetWorker:如何计划 NetWorker 联机文件和介质索引维护作

服务重新启动

重新启动 NetWorker 服务会强制执行各种启动检查,这可能会在守护程序日志错误消息中暴露问题,并可能更正任何问题。在停止服务之前,如果数据库问题看起来很严重,请确保有足够的可用空间,并且知道引导程序位置 (mminfo -B 输出)。理想情况下,运行 nsrmmdbasm -s /nsr/mm/mmvolrel_path > mm.xdr 首先尝试提取当前介质数据库副本。在重新启动服务之前,请从 /nsr/mm/mmvolrel 文件夹,因为以后出于取证或恢复目的可能需要它。有关详细信息,请参阅:如何使用 nsrmmdbasm 导出 NetWorker 介质数据库

导出并重新导入介质数据库。

此过程仅提取可行的媒体数据库记录,然后将其重新导入服务器而不停止服务,从而避免了完整的灾难恢复。但是,仅当服务器处于空闲状态时才应执行此作,并且不应在作业正在运行的情况下尝试执行此作。使用完整路径代替 mmvolrel(这可能因安装或作系统而异)

  1. 在开始之前,请在卸载后将所有磁盘卷标记为需要扫描。如果为托管磁盘卷的设备设置 了“自动介质管理 ”,则必须先禁用此功能。磁带卷不需要此步骤。 
    提醒:以下文章介绍如何将卷标记为“不需要扫描”;但是,它也可用于将卷标记为“需要扫描”。要执行此作,请按照说明作,但设置“需要扫描”而不是“不需要” NetWorker:如何将卷从“需要扫描”状态转移到“不需要扫描”状态
  2. 运行 mminfo 序言中描述的用于准备初步报告的命令。
  3. 检查介质数据库的大小 mmvolrel 文件夹和记录
  4. 确保无 nsrck开始, nsrim开始, nsrmmdbasm 进程正在运行;如果 MM 父文件夹中有任何大型文件、旧文件或最近未修改的文件,例如 mm/[alphanumerics]、移动或删除(如果它们未被任何进程锁定)。
  5. 将介质数据库解压缩到 XDR 文件中:如何使用 nsrmmdbasm 导出 NetWorker 介质数据库
  6. 将新文件的大小与 mmvolrel 文件夹 - 如果大小应相似。如果它很小(4 B 或几 KB),则命令失败。如果它较小 - 作为该过程的一部分,可能已删除损坏的记录。
  7. 通过在 NMC/NWUI 中将服务器 的状态 字段设置为 灾难恢复 或使用 nsradmin
  8. 使用 直接从介质数据库解压文件中恢复 nsrmmdbasm 命令再次: nsrmmdbasm -r -2 < mm.xdr
  9. 完成后,运行相同的命令 mminfo  如序言中所述,并比较 每个卷的存储集 值和 写入 值,确保所有卷都存在;同样 mminfo -C 值应相同。
  10. 如果存在任何差异,请记下并仔细考虑如何继续作,如果您对看到的结果没有信心,请联系支持部门:
    • 对于看起来运行状况良好的卷,您可以删除“需要扫描”标记并装载卷,因为如果 存储集 写入 值一致,则如果没有存储集从卷中删除,则不会有存储集删除的危险。 
    • 显示较少存储集写入 总数较低的卷应保留 “需要扫描 ”标记并运行扫描程序: scanner -i devicename 重新引入卷上发现的不再有记录的文件。一旦 scanner 已为每个卷完成,再次检查存储集计数,并删除 “需要扫描”标记。请参阅:NetWorker:如何将卷从“需要扫描”状态转移到“不需要扫描”状态
    • 确定后重新装载卷 scanner 已替换预期缺失的存储集。

NetWorker 服务器灾难恢复 (nsrdr)

执行的完整灾难恢复由 nsrdr 不仅恢复介质数据库,还恢复其他服务器元素,如资源数据库和作业数据库。在尝试继续执行此作之前,请参阅适用于您的版本的 《服务器灾难恢复和可用性最佳实践指南 》。
此命令预期存储节点处于联机状态且可联系才能完成。另请参阅:NetWorker:NetWorker 服务器灾难恢复 (NSRDR)
 

提醒:如有任何问题或疑虑,请始终联系支持部门,因为如果不使用“需要扫描”标记来保护具有可行存储集的文件系统,而这些存储集可能由于损坏或恢复到以前的时间点而没有介质数据库记录,则介质数据库的恢复可能会导致磁盘卷的数据丢失。

Affected Products

NetWorker

Products

Data Backup & Protection Software, NetWorker Family
Article Properties
Article Number: 000223518
Article Type: Solution
Last Modified: 02 فبراير 2026
Version:  2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.