您的 MongoDB 服务器上安装什么?
- 来自 MongoDB 官方软件源的 MongoDB Community 8.0
- 已开启认证,admin 数据库中有一个名为 yonetici、拥有 root 角色的用户
- 27017 端口允许远程连接(bindIp 0.0.0.0)
- mongosh 命令行,以及 mongodump 和 mongorestore 等数据库工具
- 设置在 /etc/mongod.conf,数据在 /var/lib/mongodb,日志在 /var/log/mongodb/mongod.log
- 防火墙只开放 22 和 27017 端口,并为 SSH 配有 fail2ban
MongoDB 需要多大的配置?
MongoDB 的生产环境说明没有给出 RAM 数值,但解释了缓存:WiredTiger 使用“(RAM 减 1 GB) 的一半”和 256 MB 中较大的那个。也就是说,1 GB 时是 256 MB,2 GB 时是 512 MB,4 GB 时是 1.5 GB。同一份说明要求每个 mongod 两个核心,所以这套安装从 2 个核心起步。经验上,试用用 1 GB,生产环境从 2 GB RAM 起步。缓存会自动跟随 RAM,在面板中升级配置时,您的数据和 IP 地址保持不变。
| 用途 | 配置 | 价格 | 选择 |
|---|---|---|---|
| 入门 | 1 GB RAM · 2 vCore · 25 GB NVMe | $3.08/月 | |
| 中等 | 2 GB RAM · 2 vCore · 40 GB NVMe | $4.51/月 | |
| 强劲 | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/月 |
适合谁?
- 基于文档数据库的 Node.js、Python、Go 或 Java 项目
- 应用在别处运行、希望数据库独占一台服务器的人
- 用 mongodump 把现有 MongoDB 数据迁到自己服务器的人
- 开发和测试需要远程 MongoDB 的开发者
下单之后会发生什么?
- 设定配置并完成付款。
- 服务器启动后,MongoDB 会自行安装。在我们的真实服务器测试中,这大约用了 3 分钟。
- 在面板的“概览”标签页中,复制“连接地址”“登录名”和“密码”三行。
- 按下面的格式写出您的连接字符串:mongodb://yonetici:PASSWORD@IP:27017/?authSource=admin
- 为您的应用另建一个用户,yonetici 拥有 root 角色,留作管理用。
每台服务器都包含
- 价格含每日备份
- 不限流量
- 完整 root 权限
- 之后可升级或降配 RAM 和 CPU,并扩大磁盘
- 位置:Istanbul · IST-1。
须知
- 下单即表示您接受 MongoDB 的 Server Side Public License(SSPL)条款。
- 27017 端口对互联网开放。要加以限制,请运行 ufw delete allow 27017/tcp,再运行 ufw allow from YOUR_IP to any port 27017。
- 连接不带 TLS:密码受到保护,但数据没有加密。对敏感数据,请使用 SSH 隧道,或通过 net.tls 设置您自己的证书。
- 这是单机版 mongod。事务和变更流只在副本集上可用,所以如果需要,请自己在 mongod.conf 中开启复制。
- MongoDB 来自它自己的软件源,保持在 8.0 分支。更新用 apt 进行。
MongoDB 常见问题
如何连接我的 MongoDB 服务器?
您的连接字符串是 mongodb://yonetici:PASSWORD@IP:27017/?authSource=admin。mongosh、MongoDB Compass 和各种驱动都可以用它连接。安装时的密码只包含字母和数字,所以不需要 URL 编码。
MongoDB 需要多少 RAM?
MongoDB 没有官方的最低 RAM 数值。经验上,试用 1 GB 即可,生产环境从 2 GB 或更多起步比较好。WiredTiger 缓存在 1 GB 时是 256 MB,在 4 GB 时是 1.5 GB,您常用的数据和索引最好能放进去。
这台服务器上的事务和变更流能用吗?
MongoDB 只在副本集和分片集群上提供它们,而这套安装是单机 mongod。如果需要,请在 mongod.conf 中设置复制和密钥文件,然后运行 rs.initiate() 启动只有一个成员的副本集。
我的 MongoDB 连接是加密的吗?
安装后 MongoDB 连接不带 TLS:密码受到保护,但数据以未加密的方式传输。对敏感数据,请用 ssh -L 27017:127.0.0.1:27017 root@IP 打开 SSH 隧道,使用“概览”标签页中“用户名”下显示的 SSH 密码,然后连接 127.0.0.1。
如何备份 MongoDB?
您的服务器每晚备份,保留最近 7 天,费用已包含在价格中。mongodump 也已安装:用 mongodump --uri 做一份转储,再用 mongorestore 恢复。
如何迁移我现有的 MongoDB 数据?
在旧服务器上用 mongodump 做转储,通过 SFTP 把文件复制到新服务器,再用 mongorestore --uri 导入。如果您是从较旧的版本迁来,请先阅读 MongoDB 的升级说明。