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 服务器灾难恢复 (nsrdr) 后,通常会将卷标记为“需要扫描”,以防止在灾难恢复情形中丢失不必要的数据。
Resolution
有多种方法可以尝试验证和纠正介质数据库问题。在尝试执行任何操作之前,为了评估影响,请在之前和之后创建报告,以查看是否已删除存储集、卷、客户端或其他任何内容。
在命令行中,在主机输出的目录中,运行以下命令以比较该过程前后的介质数据库属性:
除非此过程无法每天运行,否则这不太可能更改任何内容。检查守护程序日志以了解 nsrim 每日完成情况。
此命令预期存储节点处于联机状态且可联系才能完成。
在命令行中,在主机输出的目录中,运行以下命令以比较该过程前后的介质数据库属性:
- 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
nsrim - 日常服务器保护
每天运行服务器保护 > 服务器备份工作流,随之而来的是过期操作。到期操作运行 nsrim,这是 NetWorker 的本机维护实用程序。这也可以直接运行,但可能需要几分钟到几个小时,具体取决于服务器负载和媒体数据库大小:
nsrim -X > nsrim.out 2>&1
除非此过程无法每天运行,否则这不太可能更改任何内容。检查守护程序日志以了解 nsrim 每日完成情况。
服务重新启动
重新启动 NetWorker 服务会强制执行各种启动检查,这可能会在守护程序日志错误消息中暴露问题,并可能更正任何问题。在停止服务之前,如果数据库问题看起来很严重,请确保有足够的可用空间,并且知道引导程序位置(mminfo -B 输出)。理想情况下,先运行 nsrmmdbasm -s nsr/mm/mmvolrel_path > mm.xdr,以尝试提取当前介质数据库副本。在重新启动服务之前,请创建 mmvolrel 文件夹的副本,因为以后取证或恢复目的可能需要它。导出和重新导入介质数据库
此过程仅提取可行的媒体数据库记录,然后将其重新导入服务器而不停止服务,从而避免了完整的灾难恢复。但是,仅当服务器处于空闲状态时才应执行此操作,并且不应在作业正在运行的情况下尝试执行此操作。使用完整路径代替 mmvolrel(这可能因安装或操作系统而异)- 在开始之前,请在卸载后将所有磁盘卷标记为需要扫描。如果为托管磁盘卷的设备设置 了“自动介质管理 ”,则必须先禁用此功能。磁带卷不需要此步骤。
- 运行序言中所述的 mminfo 命令以准备初步报告。
- 检查介质数据库 mmvolrel 文件夹的大小并记录
- 确保 nsrck、 nsrim、 nsrmmdbasm进程均未运行;如果 MM 父文件夹中有任何大型文件、旧文件或最近未修改的文件(如 MM[字母数字]),请移动或删除它们(如果它们未被任何进程锁定)。
- 运行以下命令以解压介质数据库:nsrmmdbasm -s mmvolrel > mm.xdr
- 将新文件的大小与 mmvolrel 文件夹的大小进行比较 - 如果大小应该相似。如果它很小(4 B 或几 KB),则命令失败。如果它非常小 - 作为该过程的一部分,可能已删除损坏的记录。
- 通过在 NMC/NWUI 中或使用 nwadmin 将服务器的状态字段设置为灾难恢复,使服务器准备好恢复其介质数据库。
- 再次使用 nsrmmdbasm 命令直接从介质数据库解压文件中恢复:nsrmmdbasm -r -2 < mm.xdr
- 完成后,按照前导码中所述运行相同的 mminfo,并比较每个卷的 存储集 和 写入 值,确保所有卷都存在;同样 ,mminfo -C 值也应相同。
- 如果存在任何差异,请记下并仔细考虑如何继续操作,如果您对看到的结果没有信心,请联系支持部门:
- 对于看起来运行状况良好的卷,您可以删除“需要扫描”标记并装载卷,因为如果 存储集 和 写入 的值一致,则如果似乎没有从卷中删除任何存储集,则不会有存储集删除的危险。
- 显示较少存储集或写入 总数较低的卷应保留 “需要扫描 ”标记,并运行 scanner: scanner -i devicename 以重新引入在卷上找到的不再有记录的文件。完成每个卷的扫描后,再次检查存储集计数,并删除 “需要扫描”标记。一旦您确信 扫描程序 已替换预期缺失的存储集,请重新装载卷。
nsrdr
nsrdr 执行的完整灾难恢复不仅恢复介质数据库,还恢复其他服务器元素,如资源数据库和作业数据库。在尝试继续执行此操作之前,请参阅适用于您的版本的 《服务器灾难恢复和可用性最佳实践指南 》。此命令预期存储节点处于联机状态且可联系才能完成。
提醒:如有任何问题或疑虑,请始终联系支持部门,因为如果不使用“需要扫描”标记来保护具有可行存储集的文件系统,而这些存储集由于损坏或恢复到以前的时间点可能没有介质数据库记录,则介质数据库的恢复可能会导致磁盘卷的数据丢失。
Affected Products
NetWorkerProducts
Data Backup & Protection Software, NetWorker FamilyArticle Properties
Article Number: 000223518
Article Type: Solution
Last Modified: 08 Apr 2024
Version: 1
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.