关于: Galaxy 数据库的文章

MongoDB - 简化迁移到 Galaxy 数据库

使用 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_URITARGET_URIDB_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日

这篇文章有帮助吗?

Share your feedback

Cancel

谢谢!