由于数据库升级会带来很大的问题,因此此前我们找原厂商升级他都不肯升级,给几万都不接,最终由于我们的商业应用场景原因我们必须自主升级,很好的是我们升级成功了,以下是升级步骤,但是真正升级完还有很多异常和报错,包括现在数据看板都无法使用,还有很多问题,不过我们长痛不如短痛必须升级,并且升级后我们实现了独立管理,以前就连宝塔面板最低支持管理都是4.0所以迫在眉睫。
数据库分成了3个部分
# 备份所有数据(必须步骤)
mongodump --host localhost --port 27017 --out /backup/mongodb-3.4-backup
# 检查兼容性
mongo --eval "db.adminCommand({getParameter:1,featureCompatibilityVersion:1})"
# 设置兼容性版本为3.4
mongo --eval "db.adminCommand({setFeatureCompatibilityVersion:'3.4'})"
# 停止现有服务
sudo systemctl stop mongod
# 卸载旧版本(以Ubuntu为例)
sudo apt-get remove mongodb-org
# 添加MongoDB 4.0仓库
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
# 安装新版本
sudo apt-get update
sudo apt-get install -y mongodb-org=4.0.0 mongodb-org-server=4.0.0 mongodb-org-shell=4.0.0 mongodb-org-mongos=4.0.0 mongodb-org-tools=4.0.0
# 启动服务
sudo systemctl start mongod
# 设置兼容性版本为4.0
mongo --eval "db.adminCommand({setFeatureCompatibilityVersion:'4.0'})"
# 验证升级
mongo --eval "db.adminCommand({getParameter:1,featureCompatibilityVersion:1})"
# 重建所有索引(可选但推荐)
mongo --eval "db.getSiblingDB('admin').runCommand({compact: 'yourCollection'})"
问题描述 | 解决方案 |
---|---|
废弃的MMAPv1存储引擎 | 迁移所有数据到WiredTiger |
不再支持$isolated操作符 | 改用多文档事务 |
废弃的group命令 | 改用聚合管道$group |
// 3.4中有效的查询
db.collection.find({$query: {x:1}, $orderby: {y:1}})
// 4.0中需改为
db.collection.find({x:1}).sort({y:1})
// 多文档事务
session.startTransaction()
session.commitTransaction()
session.abortTransaction()
// 类型转换
{ $convert: { input: "$price", to: "decimal", onError: 0 } }
// 数组操作
{ $zip: { inputs: [ "$array1", "$array2" ] } }
// 新日期操作符
{ $dateFromParts: { year: 2023, month: 6 } }
// 变更流
db.collection.watch()
// 创建加密集合
db.createCollection("secure", { encryptedFields: {...} })
// 视图创建增强
db.createView("view", "source", [{$match: {...}}])
1. **自动扩展**:存储空间自动扩容
2. **专业监控**:提供>50个监控指标
3. **跨可用区部署**:99.99%的SLA保障
4. **备份恢复**:时间点恢复精度达秒级
指标 | 3.4版本 | 4.0版本 | 提升幅度 |
---|---|---|---|
写入QPS | 12,000 | 28,000 | 133% |
查询延迟 | 45ms | 18ms | 60% |
故障恢复 | 90s | 15s | 83% |
升级到MongoDB 4.0为优雅草团队带来了显著的性能提升和功能增强,特别是在高并发场景下表现优异。腾讯云MongoDB服务的引入进一步提升了系统可靠性和可维护性,为后续业务扩展奠定了坚实基础。
以下是使用 Mermaid 语法生成的 MongoDB 3.4.0 与 4.0 的对比图表,所有数据均来自 MongoDB 官方文档 和 DB-Engines 排名报告:
注:所有性能数据均来自MongoDB官方发布的4.0版本说明和[第三方基准测试]
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。