NetBackup™ for MongoDB 管理指南
使用 NetBackup 保护 MongoDB 的已知限制
下表列出了使用 NetBackup 保护 MongoDB 的已知限制:
表:已知限制
|
限制 |
解决方法 |
|---|---|
|
在包含多个 mongos 进程的高可用性分片 MongoDB 群集中,启动还原和恢复操作之前,应只运行配置服务器副本集 (CSRS) 映像的还原目标上的 mongos 进程。 在启动还原和恢复操作之前,手动停止群集中的任何其他 mongos 进程。 恢复后,重新配置 mongos 服务以指向恢复的群集。 如果除了一个节点外,所有其他节点上的 mongos 进程都未关闭,则其他 mongos 进程可能会与还原和恢复操作冲突,从而导致无法通过连接到 mongos 访问还原的数据。 |
如果 mongos 进程在启动还原和恢复之前未关闭,则必须在恢复后手动关闭无效的 mongos 进程,然后重新启动群集中所有恢复的 mongod 和 mongos 进程。 |
|
必须使用配置文件的绝对路径启动 MongoDB 进程。此外,也必须对证书文件和 CA 文件使用绝对路径。还必须为 CA 文件、PEM 文件和密钥文件指定绝对路径。 |
N/A |
|
如果在备份期间存在的身份验证类型发生更改,并且您运行的恢复作业需要不同的身份验证,则恢复过程可能会失败。 |
确保恢复期间使用的身份验证类型与备份期间使用的类型相同。 |
|
运行备份后,如果重命名卷组或逻辑卷,则后续备份可能会失败。 |
无 |
|
在恢复期间,确保仅选择一个完全备份映像及其相关的后续增量式映像。如果选择多个映像,恢复可能会失败,因为还原的数据可能会损坏。 |
无 |
|
恢复 MongoDB 群集后,仅已还原节点的群集信息可用。 |
恢复过程完成后,手动将辅助节点添加到群集。 有关更多信息,请参考以下文章:add-members-to-the-replica-set |
|
在备份过程中,如果 MongoDB 导入操作正在运行,则可能会变得无响应。避免在备份或还原过程中执行 MongoDB 导入操作。 |
无 |
|
在还原过程中,将显示 The restore was successfully initiated 弹出窗口,但还原作业并未启动。 在 Web UI 中的“源客户端”和“目标客户端”中输入应用程序服务器时,会发生此问题。 |
确保正确输入“源客户端”和“目标客户端”。“源客户端”必须是应用程序服务器,而“目标客户端”必须是备份主机。 |
|
如果您的环境具有 DNAT,请确保备份主机或还原主机以及所有 MongoDB 节点都位于同一专用网络中。 |
无 |
|
NetBackup for MongoDB 插件不支持命令行 bprestore 选项 -w 和 -print_jobid。 |
无 |
|
不支持从备份主机进行 MongoDB 还原。MongoDB 的所有还原操作都必须从 NetBackup 主服务器启动。 |
N/A |
|
如果还原作业提交未显示还原作业,请检查目标节点上是否安装了 MongoDB 插件。 |
无 |
|
如果将 MongoDB 数据库还原到非 LVM 位置,然后尝试从该非 LVM 位置创建备份,备份将失败。 |
将数据还原到 LVM 位置,然后尝试对已还原的数据创建备份。 |
|
在数据路径文件夹中,NetBackup for MongoDB 插件不支持硬链接或软链接。不要添加指向不同逻辑卷或非逻辑卷中位置的任何硬链接或软链接。 如果数据路径文件夹中包含硬链接或软链接,则 NetBackup 无法确保备份时数据保持一致。在还原过程中,硬链接或软链接将创建为文件夹,而不是链接。 |
无 |
|
在 MongoDB 还原和恢复过程中取消子还原作业时,不会立即删除精简客户端 (mdbserver)。精简客户端将在下一次还原操作后删除。 |
无 |
|
MongoDB 还原失败并显示错误 2850。 |
查找以下一个或多个可能的解决方案:
|
|
恢复后,MongoDB 分片节点无法手动重新启动,而且 MongoDB 日志中显示以下错误: NoSuchKey: Missing expected field "configsvrConnectionString" |
在出现问题的 MongoDB 分片上,以维护模式启动 MongoDB,然后在管理数据库中的 system.version 集合上运行以下方法: use admin
db.system.version.deleteOne
( { _id: "minOpTimeRecovery" } )
|
|
在包含一个或多个副本集的还原和恢复操作中,副本集成员将使用 rs.config() 提供的默认 "cfg.members[#].host" 值还原到副本集。 如果以前将此值更新为非默认值,则还原和恢复完成后,可能需要更新此值(例如,从短名称更新为 FQDN),以与原始配置相匹配。 |
解决方法:
|
|
备份作业失败,并显示以下错误代码:
|
对于同一 MongoDB 群集,确保增量式备份的备份时段各不相同。对于同一 MongoDB 群集的增量式备份,备份时段不得相互重叠。 确保为 mdbserver 位置、oplog 位置和快照装入位置设置了相应权限。有关更多信息,请参见使用非 root 用户作为主机用户。 在分片 MongoDB 群集环境中,112 错误可能表示 mongos 进程未在备份策略中定义的客户端上运行。 错误 112 也可能表示,在 BigData 策略中添加多个备份主机时使用的是相同主机名。对于运行备份操作的多个备份主机,请使用唯一的主机名。 |
|
还原和恢复操作完成后,如果尝试停止并重新启动 mongod 或 mongos 服务(service mongod stop 或 service mongod restart),则命令将失败。 使用 service 或 systemctl 命令(而未使用直接命令)将 mongod 或 mongos 进程作为服务启动时,将发生此错误。 |
解决方法: 使用备用方法停止 mongod 或 mongos 服务。例如,mongod -f /etc/mongod.conf --shutdown 或 kill <PID>。停止服务后,可以再次使用 service 或 systemctl 命令。 注意: 如果在还原和恢复之后停止服务,则关闭 mongod 或 mongos 进程时,将保留 .pid 或 .sock 文件。如果 mongod 或 mongos 服务在关闭后未启动,则必须删除这些文件。 .sock 文件的默认位置为 /tmp .pid 文件的默认位置为 /var/run/mongodb/ |
|
如果在 .bashrc 中添加生成输出的命令,备份操作将失败。 备份失败,错误为 6646,并显示以下错误: 错误:无法与服务器通信。 |
确保 .bashrc(echo 或任何其他输出生成命令)未生成任何输出。shell 为非交互式时,输出不应返回 STDERR 或 STDOUT。 |
|
选择两个完全备份映像并尝试还原到这两个完全备份映像之间的时间点映像时,将还原最新的完全备份映像。 |
解决方法: 在还原和恢复操作期间,不要选择多个完全备份映像。 要实现有效的时间点恢复,请确保运行持续时间较短的差异增量式备份。 |
|
在活动监视器中看不到还原作业进度。 |
解决办法: 对于使用非主服务器作为还原主机的复合还原作业,必须使用“更新任务列表”按钮才能在活动监视器中显示还原作业进度。 |
|
备份失败并显示以下错误: (6625) 备份主机未获得授权,无法完成操作,或其无法与应用程序服务器建立连接。 |
解决方法: 在安装 MongoDB 的服务器上,确保未在 运行 sudo service sshd restart 命令。 |
|
备份失败并显示以下错误: (6646) 无法与服务器通信。 |
解决方法: 确保备份主机可以访问在 由于以下原因,复制 MongoDB 服务器上的精简客户端文件时可能会出现错误:
|
|
mdbserver 日志中显示以下错误: error-sudo: sorry, you must have a tty to run sudo |
解决方法:
|
|
即使在运行 mklogdir 命令后,也不会在 Flex 容器上创建 nbaapireq_handler 日志文件夹。 |
解决方法: 将 Flex Appliance 从版本 8.1.2 升级到 8.2 并将 Flex 介质服务器用作备份主机时,为记录 MongoDB 插件还原日志,会在 /usr/openv/netbackup/logs/ 目录中创建 nbaapireq_handler 文件夹。 |
|
free_space_percentage_snapshot 参数所描述的快照大小必须根据 MongoDB 群集大小进行设置,并且必须足够大。如果不满足这些条件,备份将失败,并显示以下错误: invalid command parameter (20) |
根据 MongoDB 群集验证 free_space_percentage_snapshot 值。 |
|
备份失败并显示以下错误: (13) 介质服务器上的文件读取失败 |
确保满足以下条件:
|
|
MongoDB 配置工具中缺少 mdb_progress_loglevel 参数。 |
要修改 mdb_progress_loglevel 参数,请在 MongoDB 配置工具创建 有关更多信息,请参考《MongoDB 管理指南》。 |
|
快照未删除,并且显示失效的 mdbserver 实例。这种情况可能会导致备份时出现 Cannot lstat 错误以及备份部分成功。 |
在 mongodb.conf 文件中更改以下参数的配置设置:
设置这些值后,可在计划的下一次完全备份或增量式备份之前清除失效快照和失效的 mdbserver 实例。 |
|
如果备份主机的 NetBackup 版本低于 8.3,但主服务器和介质服务器的 NetBackup 版本为最新,则在各种场景中可能会显示以下无效错误代码: 13302、13303、13304、13305、13306、13307、13308、13309、13310、13311、13312、13313、13314、13315 |
解决方法: 如果在实际场景和建议的操作中显示无效错误代码,请参考以下对应的实际错误代码列表:
有关详细信息和建议的操作,请参考《NetBackup 状态码参考指南》。 |
|
对于导入的 MongoDB 备份映像,可能会禁用 NetBackup Web UI 中的“还原”按钮。 |
解决办法: 如果将映像导入到最初用于备份这些映像的同一 NetBackup 主服务器,请使用下列方法之一:
如果将映像导入到其他 NetBackup 主服务器,而不是最初用于备份这些映像的主服务器,请使用 bprestore 命令运行还原操作。 |
|
在备用的分片 MongoDB 群集上,恢复操作失败。显示以下错误: 找不到配置参数。(6661) |
在备用群集恢复过程中出现此问题,因为恢复前检查无法在 解决办法: 在启动恢复过程之前,请更新 例如: 现有 "application_servers":
{
"original.mongodb.cluster.com:26050":
{
"alternate_config_server":
[
{
"hostname:port": "alt.mongodb.cluster.com:26000",
"mongos_port": "26001"
}
],
"mongos_port": "26051"
}
}
建议更新为 "application_servers":
{
"original.mongodb.cluster.com:26050":
{
"mongos_port": "26051"
},
"alt.mongodb.cluster.com:26000":
{
"mongos_port": "26001"
}
}
|
|
MUI 工具显示以下错误: 无法删除配置。 |
推荐的操作:
解决方法: 从 /usr/openv/var/global 中手动删除 <hostname-port>.conf 文件。 |
|
如果在 MongoDB 上启用了基于证书的身份验证,差异增量式备份将失败,并显示错误 6709:无法运行命令。 |
解决办法: 请参考
|