最近,一个客户遇到一个问题,MongoDB数据库服务器上mongod版本是5.0.1,而mongodump版本是4.0.1,在使用mongodump备份时异常报错无法备份。在排除备份命令问题后,将mongodump版本更新到100.5.4之后,使用该版本mongodump可以对5.0.1正常备份。
一、问题现象
mongod版本
mongodump版本
使用4.0.9r版本mongodump对5.0.1的mongod进行备份时提示报错
二、问题分析
查看发起备份的用户,是root权限,认证数据库是admin,尝试使用用户名密码能够成功登录mongo,说明用户名密码没问题。在测试环境中,使用4.0.1 mongodump对4.0.1的mongod进行备份能够正常执行;同时,100.5.4版本的mongdump也能对5.0.1版本的mongod进行备份。猜测:可能是跨大版本的4.0.1版本的mongodump不能对5.0.1版本的mongod进行备份。在对4.0.1的mongodump升级之后,再次发起备份,发现能够正常备份。
三、问题处理
对4.0.1版本的mongodump进行升级,升级后的版本是100.5.4,并进行备份测试。
4.0.1版本mongodump升级之前对5.0.1版本mongod的备份报错
4.0.1版本mongodump升级之后,400.5.4对5.0.1版本mongod的备份成功完成
四、总结
可以看得出来,mongodb跨大版本之间改动比较大,在mongodb日常维护中,例如:升级、备份、迁移,要考虑mongod和对应工具的版本是否匹配,起码要求大版本要保持一致。