NetBackup™ for MongoDB 管理指南

Last Published:
Product(s): NetBackup (10.3)
  1. 使用 NetBackup 保护 MongoDB 的概述
    1.  
      关于使用 NetBackup 保护分片、副本集或独立 MongoDB 群集
    2.  
      使用 NetBackup 保护 MongoDB 数据
    3.  
      NetBackup for MongoDB 术语
    4.  
      限制
    5.  
      保护 MongoDB 的前提条件和最佳做法
  2. 验证适用于 NetBackup 的 MongoDB 插件的前提条件
    1.  
      操作系统和平台兼容性
    2.  
      配置 MongoDB 插件的前提条件
  3. 配置 NetBackup for MongoDB
    1.  
      关于 MongoDB 配置工具
    2.  
      手动创建 mongodb.conf 文件的前提条件
    3. 使用 mongodb.conf 文件为 MongoDB 配置备份选项
      1.  
        在 NetBackup 主服务器允许列表中包括配置文件路径
    4.  
      获取 MongoDB 节点的 RSA 密钥
    5. 在 NetBackup 中添加 MongoDB 凭据
      1.  
        关于凭据配置文件
      2.  
        如何在 NetBackup 中添加 MongoDB 凭据
      3.  
        关于保护数据的 MongoDB 角色
    6.  
      使用非 root 用户作为主机用户
    7. 管理备份主机
      1.  
        在 NetBackup 主服务器允许列表中包括 NetBackup 客户端
  4. 使用 NetBackup 备份 MongoDB
    1. 备份 MongoDB 数据
      1.  
        备份 MongoDB 群集
    2.  
      备份 MongoDB 群集的前提条件
    3. 为 MongoDB 插件配置 NetBackup 策略
      1.  
        使用 Web UI 为 MongoDB 群集创建 BigData 备份策略
  5. 使用 NetBackup 还原或恢复 MongoDB 数据
    1.  
      还原 MongoDB 数据
    2.  
      MongoDB 还原和恢复的前提条件
    3.  
      使用 NetBackup Web UI 在同一群集上还原 MongoDB 数据
    4.  
      使用 NetBackup Web UI 在备用群集上还原 MongoDB 数据
    5.  
      关于在备用客户端上以高可用性设置还原 MongoDB 数据
    6.  
      恢复过程完成后的手动步骤
  6. 故障排除
    1.  
      关于 NetBackup for MongoDB 调试日志记录
    2.  
      使用 NetBackup 保护 MongoDB 的已知限制
  7. 附录 A. 其他信息
    1.  
      添加和更新 MongodB 凭据的 MongodB 配置实用程序工作流程示例
  8.  
    索引

使用 mongodb.conf 文件为 MongoDB 配置备份选项

注意:

如果使用 MongoDB 配置工具,则不需要执行这些手动步骤。

NetBackup 使用默认选项备份 MongoDB 数据。要指定在备份操作过程中使用的自定义选项,对于 UNIX 系统,必须在 /usr/openv/var/global/ 目录中创建 mongodb.conf 文件,对于 Windows 主服务器,必须在 <Install_Dir>\NetBackup\var\global\ 中创建该文件。

小心:

文件名 mongodb.conf 区分大小写。

并不强制在 mongodb.conf 文件中指定所有选项。对于没有自定义值的选项,NetBackup 会使用默认值。

确保 mongodb.conf 文件使用 JSON 格式,并使用 bpcd_allowed_path 选项将 bp.conf 中的文件路径添加到允许列表。有关更多信息,请参见在 NetBackup 主服务器允许列表中包括配置文件路径

mongodb.conf 文件中的备份选项

可在 mongodb.conf 文件中指定以下备份选项及其值:

小心:

文件中的选项区分大小写。

选项

详细信息

application_servers

主配置服务器的完全限定域名 (FQDN)、主机名或短名称以及端口号,以及采用以下格式的 mongodmongos 端口:

clientFQDN_OR_hostname_OR_shortname:portnumber

确保 application_server 与 MongoDB 环境中使用的、且已使用 db.hostInfo() 命令进行验证过的主机名值相匹配。

例如,db.hostInfo() 显示的主机名值:

"hostname" : "<hostname_value>:<port>"

警告:

不要输入充当 MongoDB 仲裁节点的节点。

alternate_config_server

辅助配置服务器或备用配置服务器的完全限定域名 (FQDN)、主机名或短名称以及端口号。只能为一个群集添加一个备用配置服务器。

对于值,请使用以下格式:

clientFQDN_OR_hostname_OR_shortname:portnumber

确保 alternate_config_server 与 MongoDB 环境中使用的、且已使用 db.hostInfo() 命令进行验证过的主机名值相匹配。

例如,db.hostInfo() 显示的主机名值:

"hostname" : "<hostname_value>:<port>"

如果与主配置服务器的连接失败,则使用第一个活动的备用配置服务器。

对于分片 MongoDB 群集,必须在备用配置服务器上运行 mongodmongos 进程。

必须为每个 application_servers 条目分别输入 alternate_config_server 值。

cleanup_time_in_min

指定时间(分钟),在此时间后将清理失效快照或由于已取消作业而创建的 oplogstore

该值必须是整数。

free_space_percentage_snapshot

指定卷组上可用于创建快照的可用空间的百分比。仅在执行完全备份时使用此选项。

默认值(如果未指定)为 20%。该值必须介于 0 和 100 之间。请勿使用百分比符号 (%)。

例如,运行 vgdisplay 命令以验证 "Free PE / Size" 字段的值。free_space_percentage_snapshot 值是数据路径所在卷组的 Free PE / Size 百分比。

根据备份操作期间 MongoDB 实例的数据更改率以及卷组上的可用空间来调整 free_space_percentage_snapshot 值。

例如,当:

  • 数据更改率为 250 MB

  • 卷组具有 1 GB Free PE / Size

  • 数据更改率为可用 PE/大小的 25%

然后,将 free_space_percentage_snapshot 的最小值指定为 25%。

可用空间快照百分比值太低可能会导致快照(以及后续备份)失败。

可用空间快照百分比值太高可能会减少卷组上的可用空间量。

有关更多信息和标准做法,请参考 Linux 手册页以了解 lvcreate 命令。

data_channel_tls

使用此参数可禁用或启用 MongoDB 群集和备份主机之间的数据通道加密。

例如,使用 "data_channel_tls": false 禁用数据通道加密。

默认情况下,NetBackup 备份主机与精简客户端 (mdbserver) 之间的所有通信都是通过 TLS 信道进行的。您可以禁用此 TLS,将数据从精简客户端 (mdbserver) 移动到备份主机,以提高性能。

注意:

禁用此选项时,控制数据和敏感数据(如凭据)仍通过 TLS 信道传输。

logdir

在 MongoDB 节点上生成精简客户端 (mdbserver) 日志的位置。

默认位置为 /tmp。如果提到了目录路径,但该目录在服务器上不存在,则 NetBackup 会创建一个目录。

loglevel

指定日志记录级别。

默认值为 3。

有关日志记录级别值,请参考以下选项:

  • ESERROR = 1

  • ESWARN = 2

  • ESINFO = 3

  • ESDEBUG = 4

  • ESTRACE = 5

  • ESCRITICAL = 6

max_log_mbsize

指定 NetBackup 精简客户端日志文件的最大文件大小(以 MB 为单位)。

默认大小是 10 MB。每天创建新的日志文件,或者现有日志文件超出最大大小。创建日志文件不会影响正在进行的作业,并且在 mdbserver 执行的下一个作业期间会进行日志回转。

30 天后将清理日志。

max_streams

注意:

此参数仅适用于分片 MongoDB 群集。

定义每个备份主机的并行数据流数。最小值为 32。

如果未定义 max_streams,则默认值为每个备份主机 32 个并行数据流。

在 mongodb.conf 文件中添加以下条目:

max_streams:
      {
       "global_default":<set_value>,
       "<backup_host>":<set_value>
      }

其中:

  • global_default

    所有备份主机的并行数据流的默认上限。

  • backup_host

    设置指定的备份主机的并行数据流上限。

    backup_host 必须与备份策略中指定的内容相同。如果有多个备份主机,则可以针对所有备份主机重复此条目。如果未指定备份主机,则使用 global_default 值。

注意:

此选项设置每个备份主机的并行数据流数上限。备份或恢复作业可能并不会使用所有可用数据流。

mdb_progress_loglevel

用于打印有关还原到活动监视器的文件的进度日志记录信息。

默认值为 0(关闭)。

要启用,请设置 "mdb_progress_loglevel": 1

注意:

启用此选项可能会增加恢复时间。

mdbserver_location

指定在执行 MongoDB 备份和还原操作所需的 MongoDB 节点上复制精简客户端 (mdbserver) 二进制文件的位置。

将文件复制到包含需要保护的数据的服务器,并在备份操作完成后删除这些文件。

复制文件的默认位置为 /tmp

注意:

不要指定装入路径或高级别 Linux 目录,因为这可能会导致目录权限发生冲突。例如,避免将路径指定为 /root、/etc、/usr、/bin、/home 等。

mdbserver_port

备份主机使用该端口与 MongoDB 节点上运行的 NetBackup 精简客户端 (mdbserver) 相连接。

默认值为 11000

此值是一个字符串。

mdbserver_port_range

当多个 mongod 实例在一个 MongoDB 节点上运行时,使用此参数。

通过此选项,可在备份和还原操作的范围内使用下一个可用端口(如果现有端口正在使用中)。

通过此选项,可以通过部署多个 NetBackup 精简客户端 (mdbserver) 来同时在不同的端口上运行多个备份作业。

输入值 "mdbserver_port_range":range_value,其中 range_value 是用于定义可使用的端口号范围的整数。例如,如果将 range_value 添加为 10,并且将 mdbserver_port 定义为 12000,则使用的端口范围是 12000 至 12009。

默认值为 10。

根据 MongoDB 主机上同时备份的 mongod 实例数更改此值。

mdbserver_timeout_min

定义在终止 NetBackup 精简客户端 (mdbserver) 进程之前等待的时间(分钟)。

默认值是 300(分钟)。

如果备份时段需要更多时间,请将该值设置为大于 300 分钟。

理想情况下,在插件终止或备份完成后终止 mdbserver

mongos_port

mongos 进程用于通信的端口。

这是分片 MongoDB 群集的必需参数。

必须为每个 application_serversalternate_config_server 条目指定此值

此值是一个字符串。

oplog_location

对于差异增量式备份,请指定自定义目录来存储 MongoDB oplog 文件。

该位置存储在备份映像中。

默认位置为 /tmp/oplogstore

确保在此位置有足够的可用空间来存储增量式备份的 oplog 数据。

snapshot_mount_path

在 MongoDB 节点上指定路径,以便在完全备份期间装入 LVM 快照。

默认路径为 /tmp

注意:

确保在 MongoDB 凭据文件中配置的 HostUsermongodb.conf 文件中提及的所有路径都具有读取和写入权限。

如果未添加所有选项,则会在日志中添加有关缺少的选项的条目。默认值用于未提及的选项,备份操作将继续。

mongodb.conf 文件内容的示例
{
  "application_servers": {
    "FQDN_primary_configuration_server_1:port": {
      "alternate_config_server": [
        {
          "hostname:port": "FQDN_alternate_configuration_server_1:26051",
          "mongos_port": "26051"
        }
      ],
      "mongos_port": "26052"
    },
    "FQDN_primary_configuration_server_2:port": {
      "alternate_config_server": [
        {
          "hostname:port": "FQDN_alternate_configuration_server_2:26053",
          "mongos_port": "26053"
        }
      ],
      "mongos_port": "26054"
    }
  },
  "mdbserver_location": "/path/to/store/mdbserver/",
  "logdir": "/path/to/store/logdir/",
  "mdbserver_port": "21020",
  "loglevel": 5,
  "max_log_mbsize": 4,
  "oplog_location": "/path/to/store/oplog/",
  "free_space_percentage_snapshot": "25",
  "mdb_progress_loglevel": 1,
  "snapshot_mount_path": "/path/to/mount/snapshot/",
		"max_streams":
			{
					"global_default":2,
					"FQDN_backup_host_1":1
			}
}