DBAtlas · 数据库运维图谱

MongoDB replica set 安装(3 个成员、keyfile 和授权)

MongoDB难度: 中级耗时: 60–90 分钟

从零搭建一个三成员的 MongoDB 8.0(或 7.0)replica set:官方软件源、XFS 数据目录、按内存设置的 WiredTiger cache、成员间 keyfile 认证、授权、管理员和应用用户、read/write concern、failover 测试和连接字符串;最终得到一个凭密码访问、可在丢失单个成员时不中断服务的 replica set。如果数据量或写入负载将超出单台服务器,请参阅 sharded cluster 指南;已有 set 的日常运维、备份和加固见其他 MongoDB 指南。

架构: 3 台服务器(1 primary + 2 secondary),承载数据的成员为奇数

开始之前

  • 所有服务器使用相同且已更新的操作系统;时间已通过 NTP(chrony)同步。成员之间的时钟偏差会导致会话和 oplog 问题。
  • 内存和 CPU 与表单中的值一致(WiredTiger cache 根据该值计算)。已配置 swap,但容量较小。
  • 数据目录(…)位于单独的磁盘/LV 上,格式化为 XFS,以 noatime 挂载并在 fstab 中持久化。ext4 与 WiredTiger 搭配可能导致性能问题。
  • 每个服务器名在所有服务器和应用服务器上都能解析(DNS 或 /etc/hosts)。replica set 配置中使用名称而不是 IP。
  • 服务器之间的 … 端口已开放;应用网络可以访问这些端口。该端口未被其他服务占用。
  • 服务器可以通过 HTTPS 访问 repo.mongodb.org 和 pgp.mongodb.com,或已配置内部镜像。
  • 没有操作系统自带的 mongodb 软件包,也没有旧的 MongoDB 安装。
  • 可以从第一台服务器以 root(或有 sudo 权限的用户)向其他服务器执行 scp(用于复制 keyfile)。否则请通过安全方式手工传送该文件。
  • 已以 root 或 sudo 权限登录;维护窗口和服务器快照(回退)计划已准备好。

指南阶段

  • 操作系统准备(所有成员) — Hostname:… · 系统更新和所需工具 · 名称解析(/etc/hosts) · 内核参数(sysctl) · 应用 sysctl 设置 · Transparent Huge Pages:为 8.0 开启 …
  • 安装 MongoDB 软件(所有成员) — 添加 MongoDB … 软件源 · 添加 MongoDB … 软件源 · 安装 MongoDB · 准备数据目录 · SELinux 策略和标签
  • Keyfile(成员间认证) — 创建 keyfile · 将 keyfile 复制到其他成员 · Keyfile 权限:…
  • 配置 — mongod.conf:… · 检查 systemd 设置 · 在防火墙中开放端口
  • 启动服务(所有成员) — 启用并启动 mongod
  • 初始化 replica set 并创建用户 — 检查到其他成员的访问 · rs.initiate · 创建管理员用户 · 创建应用用户 · 默认 read/write concern
  • 验证和 failover 测试 — Replica set 状态 · 写入/读取测试 · 计划内 failover 测试(rs.stepDown) · 应用连接字符串
  • 安装后工作 — 日志轮转 · 测试 logrotate · 规划备份(必需) · 接入监控 · 安全:TLS 和访问控制
按您的环境打开分步计划 →