MongoDB - 简化迁移到 Galaxy 数据库
使用 Docker 镜像将 MongoDB 数据库迁移到 Galaxy 数据库的分步指南,包括在迁移后创建新用户以增强安全性和访问控制。
在使用此 Docker 镜像之前,请确保您拥有以下内容
- 在您的机器上安装 Docker。
- 准备并测试源和目标 MongoDB URI。
- 如果适用,在 MongoDB Atlas 上配置 IP 白名单。
此过程不应用于 MongoDB 分片集群。
以以下格式获取源 MongoDB URI:mongodb+srv://<username>:<password>@<source-cluster>
以以下格式从 Galaxy 数据库团队获取 MongoDB 目标 URI:mongodb://<username>:<password>@<destination-host>:<port>

使用以下命令运行迁移容器
将 SOURCE_URI、TARGET_URI 和 DB_NAME 替换为您自己的实际值。
我们建议在迁移后为数据库专门创建一个新用户,以增强安全性和访问控制。
数据库迁移:执行数据库迁移,确保所有数据都成功传输到新环境。
连接到目标数据库:使用我们关于连接到 MongoDB 的指南。
选择数据库:选择已迁移的数据库(例如,使用 example_db_name)。
创建新用户:为该数据库创建一个新的用户。例如
将 <new-secure-password> 替换为新用户的密码。
验证新用户:确保新用户已成功创建
现在,您可以在 Meteor 应用中使用类似这样的 URI
mongodb://newuser:pass@destination-host-01.mongodb.net:27017,destination-host-02.mongodb.net:27017,destination-host-03.mongodb.net:27017/example_db_name?replicaSet=NameOfYourReplicaSet&readPreference=secondary
为您的用户使用安全的密码。
仅分配必要的权限。
定期审查用户权限。
检查连接详细信息和权限。
查看日志以查找错误。
为了有效地管理您的 MongoDB 集群,Galaxy 数据库团队会在您的集群中设置多个 MongoDB 用户
admin@admin:具有管理员权限的初始用户。
galaxyadmin@admin:自动化所需的的技术用户。
galaxybackup@admin:用于执行备份的用户。
galaxymonitor@admin:用于监控的用户。
请勿删除这些用户.
要设置 oplog 用户,请配置 MongoDB 副本集
使用我们的指南连接到您的数据库。
打开您的控制台并运行
oplog 用户必须在 admin 数据库中创建,并具有对 local 数据库的读取权限。
您的新 MongoDB 连接字符串将为
mongodb://oplogger:PasswordForOplogger@mongo-1.example.com,mongo-2.example.com,mongo-3.example.com/local?authSource=admin&replicaSet=replicaSetName
确保在末尾包含 authSource=admin。
对于无停机时间迁移,请联系我们的团队:support@meteor.com.
本文档提供了使用 Docker 将 MongoDB 数据库迁移到 Galaxy 数据库的全面指南,以及迁移后创建和管理用户的最佳实践。
先决条件
在使用此 Docker 镜像之前,请确保您拥有以下内容
- 在您的机器上安装 Docker。
- 准备并测试源和目标 MongoDB URI。
- 如果适用,在 MongoDB Atlas 上配置 IP 白名单。
此过程不应用于 MongoDB 分片集群。
分步指南
获取 MongoDB URI
以以下格式获取源 MongoDB URI:mongodb+srv://<username>:<password>@<source-cluster>
以以下格式从 Galaxy 数据库团队获取 MongoDB 目标 URI:mongodb://<username>:<password>@<destination-host>:<port>

运行 Docker 容器
使用以下命令运行迁移容器
docker run --rm \
-e SOURCE_URI="" \
-e TARGET_URI="" \
-e DB_NAME="example_db_name" \
meteor/galaxy-mongodb-migrate:202409101534
将 SOURCE_URI、TARGET_URI 和 DB_NAME 替换为您自己的实际值。
示例
docker run --rm \
-e SOURCE_URI="mongodb+srv://username:password@source-cluster.mongodb.net" \
-e TARGET_URI="mongodb://username:password@destination-host-01.mongodb.net:27017,destination-host-02.mongodb.net:27017,destination-host-03.mongodb.net:27017/admin?replicaSet=replicaSetName" \
-e DB_NAME="example_db_name" \
meteor/galaxy-mongodb-migrate:202409101534
为数据库创建用户
我们建议在迁移后为数据库专门创建一个新用户,以增强安全性和访问控制。
推荐步骤
数据库迁移:执行数据库迁移,确保所有数据都成功传输到新环境。
连接到目标数据库:使用我们关于连接到 MongoDB 的指南。
选择数据库:选择已迁移的数据库(例如,使用 example_db_name)。
创建新用户:为该数据库创建一个新的用户。例如
db.createUser({
user: "newuser",
pwd: "<new-secure-password>",
roles: ["readWrite"]
})
将 <new-secure-password> 替换为新用户的密码。
验证新用户:确保新用户已成功创建
db.getUsers()
现在,您可以在 Meteor 应用中使用类似这样的 URI
mongodb://newuser:pass@destination-host-01.mongodb.net:27017,destination-host-02.mongodb.net:27017,destination-host-03.mongodb.net:27017/example_db_name?replicaSet=NameOfYourReplicaSet&readPreference=secondary
安全注意事项
为您的用户使用安全的密码。
仅分配必要的权限。
定期审查用户权限。
故障排除
检查连接详细信息和权限。
查看日志以查找错误。
用户
为了有效地管理您的 MongoDB 集群,Galaxy 数据库团队会在您的集群中设置多个 MongoDB 用户
admin@admin:具有管理员权限的初始用户。
galaxyadmin@admin:自动化所需的的技术用户。
galaxybackup@admin:用于执行备份的用户。
galaxymonitor@admin:用于监控的用户。
请勿删除这些用户.
为 Oplog 创建 MongoDB 用户
要设置 oplog 用户,请配置 MongoDB 副本集
使用我们的指南连接到您的数据库。
打开您的控制台并运行
db.createUser({
user: "oplogger",
pwd: "PasswordForOplogger",
roles: [{ role: "read", db: "local" }]
})
oplog 用户必须在 admin 数据库中创建,并具有对 local 数据库的读取权限。
您的新 MongoDB 连接字符串将为
mongodb://oplogger:PasswordForOplogger@mongo-1.example.com,mongo-2.example.com,mongo-3.example.com/local?authSource=admin&replicaSet=replicaSetName
确保在末尾包含 authSource=admin。
支持
对于无停机时间迁移,请联系我们的团队:support@meteor.com.
本文档提供了使用 Docker 将 MongoDB 数据库迁移到 Galaxy 数据库的全面指南,以及迁移后创建和管理用户的最佳实践。
更新于:2024年10月9日
谢谢!