[KB 103072功能解说] 升级到MongoDB 3.6时的其他注意事项
* 本文由赛捷软件(上海)有限公司翻译完成,未经授权不得转载。如需转载,请先联系相应版块的版主取得授权。
产品
Sage X3 12
Sage X3 11
Sage X3 PU9
Sage X3
国家
北美
英国和爱尔兰
类别
数据和数据库
数据库软件
描述
当升级到V12 P20(Syracuse 12.5)、V11 P15(Syracuse 11.19)或PU9(Syracuse 9.19)时,MongoDB 3.6被列为必须安装的组件,所以必须升级到这个版本。
本文档为在线帮助http://online-help.sageerpx3.com ... ade-to-MongoDB.html(所有版本的说明相同)提供了补充说明。
重要提示:这些说明是假设你已经在使用MongoDB 3.4了。如果没有,那么你需要通过MongoDB的每个主要版本进行升级。例如,如果你正在使用MongoDB 3.0,你就需要升级到3.2,接着再升级到3.4,然后才能升级到3.6。
解决方法
请先看一下这些说明
1. 当安装新的 mongodb 版本时,“mongodb.conf”文件会被这个文件的新的默认版本取代。因此,你应该在尝试升级前确认你有这个文件的副本。升级后,你应该重新编辑mongodb.conf的新版本,以纳入之前修改过的参数。
2. 在升级之前,建议使用“MongoDump”命令提取所有“Syracuse”数据库数据,这将允许你在需要时快速重新创建这些数据。
3. 如果MongoDB存储引擎目前是MMAPv1,建议你在MongoDB 3.4的时候升级到WiredTiger,以便于迁移。
4. 按照 http://online-help.sageerpx3.com ... ade-to-MongoDB.html 网站上的补丁说明,将你的 MongoDB 安装升级到 3.6 版本,同时注意以下附加说明:
5. 在进行备份或升级之前,不要忘记关闭任何使用该MongoDB实例的Syracuse服务器。
对于单节点的MongoDB安装
a. 运行Sage提供的MongoDB安装程序,在提示时选择 "修改安装 "选项。
b. 你应该可以选择与原始版本相同的端口和是否使用SSL加密连接等选项。
c. 如果使用SSL加密,那么请在提示时输入正确的口令短语,这点很重要。这个口令短语不经过安装程序的验证,所以会接受无效的口令短语(但在安装过程中会出现错误)。如果你记不清这个口令短语,请查看现有的 mongodb.conf 文件,并查找 "PEMKeyPassword "这个参数的值
注意:一旦安装成功完成之后,MongoDB的Windows服务名称就从“MongoDB for Sage EM - NODE0”更改为了“Safe X3 MongoDB NODE0”
d. 检查新的mongodb.conf文件,如有必要,可以添加或更改任意参数。
将单节点MongoDB安装存储引擎转换为WiredTiger
如果原来的数据库使用的是MMAPv1,那么这个步骤会将磁盘存储引擎保留为MMAPv1,但是你可能希望考虑将其转换为WiredTiger存储引擎(基本步骤参见https://docs.mongodb.com/v3.6/tu ... ndalone-wiredtiger/)。
——使用mongodump导出数据库
——停止Syracuse服务
——停止MongoDB服务
——将 "data "目录重命名为不同的名称,例如 "data_MMAP"
——创建一个新的"data "目录
——启动MongoDB服务
——使用mongorestore重新导入数据
——重启Syracuse服务,并执行测试
对于副本集MongoDB的安装
尽管你将使用 Sage 提供的安装介质,但是升级副本集的步骤可从 https://docs.mongodb.com/manual/ ... pgrade-replica-set/ 网站获取。
在升级主节点之前,针对每个辅助节点,执行这个流程
a. 运行Sage提供的MongoDB安装程序,在提示时选择 "修改安装 "选项。
b. 你应该可以选择与原始版本相同的端口和是否使用SSL加密连接等选项。
c. 如果使用SSL加密,那么请在提示时输入正确的口令短语,这点很重要。这个口令短语不经过安装程序的验证,所以会接受无效的口令短语(但在安装过程中会出现错误)。如果你记不清这个口令短语,请查看现有的 mongodb.conf 文件,并查找 "PEMKeyPassword "参数的这个值
注意:一旦安装成功完成之后,MongoDB的Windows服务名称就从“MongoDB for Sage EM - NODE0”更改为了“Safe X3 MongoDB NODE0”
d. 检查新的mongodb.conf文件,如有必要,可以添加或更改任意参数。
重要:你至少需要为你刚刚更新的MongoDB重新添加副本集配置,并重新启动MongoDB服务。
当你将所有节点升级到3.6后,如果你发现节点无法正确同步的问题。当你完成转换到wiredTiger的步骤后,应该可以解决这个问题(见下文)。
将副本集MongoDB安装存储引擎转换为WiredTiger
重要:如果原来的数据库使用的是MMAPv1,那么这个过程将使磁盘存储引擎保持为MMAPv1,但是你必须转换为WiredTiger存储引擎(基本步骤参见https://docs.mongodb.com/v3.6/tu ... ica-set-wiredtiger/)。
如果你没有这样做,那么Syracuse服务将无法启动,你将在Syracuse日志中看到以下一个或两个错误。
——orm.mongodb 错误更新数据库锁“errmsg”:“这个MongoDB部署不支持可重试写入。请在你的连接字符串中添加retryWrites=false。”
——报错:此MongoDB部署不支持可重试写入。请将retryWrites=false添加到你的连接字符串中。MongoError:此MongoDB部署不支持可重试写入。请在你的连接字符串中添加retryWrites=false。
要采取的步骤:
——使用mongodump导出数据库
——停止Syracuse服务
首先,在次要构件上这个过程,一旦所有次要构件都更新了,就把主要构件降级("rs.stepDown(")),并更新该降级的构件。
——停止MongoDB服务
——将 "data "目录重命名为不同的名称,例如 "data_MMAP"
——创建一个新的"data "目录
——启动MongoDB服务
一旦所有构件都升级完毕
——重启Syracuse服务,并执行测试 |