mongodb 4.0已经支持副本集级别的事务了,而且现在是稳定版.下一个版本4.2准备支持分片的事物.我因为数据库规模较小,暂时用不到分片的规模,于是就先升级到4.0版本.
提醒: mongo官方建议你不要把事务当救命稻草, 更多的时候要依赖良好的设计模式来减少使用多文档事务的机会,毕竟事务是会影响性能的.
先备份数据库,虽说升级后数据库会保留下来,但为了不要最后演变成删库闹剧.还是老老实实的备份数据库吧
mongodump --host 127.0.0.1:27017 --gzip --db db_name --username your_account --password 'your_password' --authenticationDatabase db_name -o your_bak_path
升级前检查/要求:
版本检查
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
设置版本兼容性信息
db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
mongodb3.6要求,如果你不满足这个条件(比如你是3.4版本),那么请先升级到3.6的版本.
兼容性检查,取消了一些特性,如果你当前的系统用到了这些特性,恐怕你要一些额外的工作,具体的兼容性检查信息在这里
由于我用的是ubuntu16.04我就用这个系统来演示.
添加mongodb的key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
创建源列表
echo "deb [ arch=amd64,arm6