mongodb4.2升级到5.0版本,升级到6.0版本, 升级到7.0版本案例

今天一客户想把自己当前使用的mongodb数据库4.2版本升级到7.0版本。难道mongodb能直接跳跃升级吗? 经过几经查找资料,貌似真不行呀。确定升级流程如下:

  1. 还得从mongo4.2升级到5.0。
  2. 其次再从5.0升级到6.0。
  3. 最后再从6.0升级到7.0。
    开始升级之前将数据进行备份 这一步很重要,数据无价。
    在正式开始升级前需要了解一下在 MongoDB 中,featureCompatibilityVersion 用于指示数据库的功能兼容性版本。在进行升级时,需要确保 featureCompatibilityVersion 版本是升级目标版本的兼容值。

查看当前数据库的featureCompatibilityVersion版本

db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

设置数据库的featureCompatibilityVersion版本

db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )

上面表示设置数据库featureCompatibilityVersion版本为5.0

MongoDB 4.2升级到5.0版本

首先停止数据库,使用5.0版本的mongod命令执行如下升级操作 需要加参数 --upgrade

mongod.exe --dbpath=D:\mongodb_data\mongodb\4.2\data   --upgrade

执行完成后,从日志中看到exitCode编码是0表示升级成功,此时可以用5.0版本的Mongodb数据指向4.2的数据目录。
升级到5.0后 启动数据库,使用mongo命令连上数据库设置featureCompatibilityVersion版本号为5.0,即完成了4.2升级到5.0的工作。操作命令如下:

db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )

这里感觉挺鸡肋的,为啥都执行了–upgrade操作了 不能自动改为setFeatureCompatibilityVersion为升级的目标版本吗? 需要手动操作一遍。如果不手动操作这一步,升级到6.0将会报错:

UPGRADE PROBLEM: Found an invalid featureCompatibilityVersion document (ERROR: Location4926900: Invalid featureCompatibilityVersion document in admin.system.version: { _id: \"featureCompatibilityVersion\", version: \"4.2\" }. See https://docs.mongodb.com/master/release-notes/4.4-compatibility/#feature-compatibility. 
:: caused by :: Invalid value for featureCompatibilityVersiondocument in admin.system.version, found 4.2, expected '4.4' or '4.9' or '5.0.See https://docs.mongodb.com/master/release-notes/4.4-compatibility/#feature-compatibility.). If the current featureCompatibilityVersion is below 4.4, see the documentation on upgrading at https://docs.mongodb.com/master/release-notes/4.4/#upgrade-procedures."}}
MongoDB 5.0升级到6.0版本

首先停止数据库,使用6.0版本的mongod命令执行如下升级操作 需要加参数 --upgrade

mongod.exe --dbpath=D:\mongodb_data\mongodb\4.2\data   --upgrade

执行完成后,从日志没有出现异常错误表示升级成功,此时可以用6.0版本的Mongodb数据指向4.2的数据目录.最后用命令行工具mongo或者mongosh验证一下6.0版本是否升级成功,不要忘记需要手工更改setFeatureCompatibilityVersion版本号为6.0

db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )
MongoDB 6.0升级到7.0版本

首先停止数据库,使用同样逻辑的方法把7.0版本的mongod命令执行如下升级操作 需要加参数 --upgrade

mongod.exe --dbpath=D:\mongodb_data\mongodb\4.2\data   --upgrade

执行完成后,从日志中没出现异常错误表示升级成功,此时可以用7.0版本的Mongodb数据指向4.2的数据目录.最后用命令行工具mongo或者mongosh验证一下7.0版本是否升级成功,同样的不要忘记需要手工更改setFeatureCompatibilityVersion版本号为7.0

db.adminCommand( { setFeatureCompatibilityVersion: "7.0", confirm: true } )

7.0更改版本号需要价confirm:true参数 不然会产生报错:

errmsg" : "Once you have upgraded to 7.0, you will not be able to downgrade FCV and binary version without support assistance. 
Please re-run this command with 'confirm: true' to acknowledge this and continue with the FCV upgrade.

以上一系列的操作将数据库从4.2版本成功升级到7.0版本特此记录一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/727824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国家积极推进长城国家文化公园建设

长城脚下,文化绽放——国家积极推进长城国家文化公园建设 在中华大地的北方,横亘着一条巨龙,它见证着中华民族的沧桑岁月,承载着我们的民族记忆,它就是——长城。这座千年的雄关,不仅是中国的象征&#xf…

WPF —— TextBox 控件详解

TextBox控件是WPF中最基本的文字输入控件。它允许最终用户在一行、对话输入、或多行编写,就像是个编辑器。 关于TextBox常用的属性 FontFamily 字体样式 宋体 楷体等 FontWeight 字体粗细 , Bold加粗 FontStyle 字体样式 斜体和…

Git Cherry-Pick命令详解:轻松选取与移植提交

前言 在Git版本控制系统中,git cherry-pick是一个非常实用的功能,它允许开发人员选择性地将某一个或多个提交(commit)从一个分支复制到另一个分支,从而实现了对特定改动的精确移植。这对于重现特定补丁、回溯修复bug、…

【软件测试】测试工具推荐

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 本…

[Unity实战]使用NavMeshAgent做玩家移动

其实除了Character Controller, Rigidbody,我们还可以使用NavMeshAgent去做。这么做的好处是能避免玩家去莫名其妙的地方(毕竟基于烘焙过的导航网格),一般常见于元宇宙应用和mmo。 根据Unity手册,NavMeshAgent 也有和…

Stringbuffer 和 Stringbuilder 的区别是什么?

StringBuffer 和 StringBuilder 是 Java 中用于处理字符串的两种常用类,它们都允许我们修改字符串,即进行字符串的拼接、插入和删除等操作。尽管两者都提供了可变字符串的功能,但它们之间有一些关键的区别,特别是在线程安全性和性…

学c++对Python有帮助吗?

学习C对Python编程确实有帮助,尽管这两种语言在许多方面有很大的不同。以下是学习C可能对Python编程产生帮助的几个方面: 理解底层概念:C是一种更接近硬件的编程语言,它要求程序员更深入地理解内存管理、指针、数据类型等底层概念…

【在线普法】无端遭受他人殴打,反击抵抗时不慎致滋事者受伤住院,这样的行为是否构成正当防卫?

反击滋事者致其受伤 是否承担民事责任 无端遭受他人殴打,反击抵抗时不慎致滋事者受伤住院,这样的行为是否构成正当防卫?是否应承担民事责任?近日,重庆市九龙坡区人民法院审结了一起健康权纠纷案,认定本案中…

第二十三章 javascript请求方式Ajax

文章目录 一、Ajax的概念二、Ajax的使用使用流程xhr 状态码:xhr.readyStatehttp 状态码:xhr.status 三、发送数据的数据格式 - Content-Type四、其他1. POST和GET的区别2. AJAX的兼容问题3. 个别设备中ajaxGet请求的缓存问题4. XMLHttprequest常见事件 一…

Dubbo分布式服务框架:原理深度解析与实战应用探索(一)

本系列文章简介: 在本系列文章中,我们将深入探索Dubbo分布式服务框架的原理和实战应用。我们将从Dubbo的架构设计开始,详细解析其内部的工作原理和核心组件。我们将探讨Dubbo的服务治理机制、负载均衡策略、容错机制等,并通过实际…

Linux:文件权限详解及修改方法

文章目录 1、Linux文件权限1.1、如何查看到文件权限1.2、ll命令介绍 2、权限分类2.1、文件权限2.2、文件夹权限 3、权限修改3.1、修改文件/文件夹权限1)chmod指令2)chmod指令符号 3.2、修改文件/文件夹所属用户3.3、修改文件/文件夹所属群组 4、参考 1、…

AI产品摄影丨香水

AI电商产品拍摄丨(可指定产品) 均为概念图 可换产品 可指定产品,可换logo 工具:StartAI 搭配“手机摄影”风格使用效果更佳哦 咒语:anha perfume in bottle on stone surface, in the style of everyday american…

和为K的子数组

题目: 使用前缀和的方法可以解决这个问题,因为我们需要找到和为k的连续子数组的个数。通过计算前缀和,我们可以将问题转化为求解两个前缀和之差等于k的情况。 假设数组的前缀和数组为prefixSum,其中prefixSum[i]表示从数组起始位…

JQuery的基础笔记

前言: j --> JavaScript Query --> 查询 jquery的入口函数 等DOM结构渲染完毕即可执行内部代码 相当于原生js的DOMContentLoaded 不同于原生js中的load是等一切加载完毕再执行 用法:(推荐第二种) $(document).ready(…

分段线性化问题探析

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all; gn10;tn1; x_pfsdpvar(1, t…

vue3基础教程(3)——引入ui框架iview(viewui)

博主个人微信小程序已经上线:【中二少年工具箱】。欢迎搜索试用 正文开始 专栏简介1. 下载iview2.更新资源3.引入插件4.运行项目 专栏简介 本系列文章由浅入深,从基础知识到实战开发,非常适合入门同学。 零基础读者也能成功由本系列文章入门…

认识事物的几个阶段 GPU学习

1. GPT的说法 认识事物的过程通常可以分为以下几个阶段: 1. 感知阶段: 这是认识事物的第一步,通过感官(视觉、听觉、触觉、味觉、嗅觉)接收外界信息。感知是对外部世界的直接观察和感受。 2. 注意阶段:…

底层day2作业

思维导图 作业: 1.使用ADC采样光敏电阻数值,如何根据这个数值调节LED灯亮度 连接硬件:将光敏电阻与单片机的ADC引脚连接,将LED灯与单片机的PWM引脚连接。初始化:在程序中初始化ADC和PWM模块,并设置相应的…

大数据分析技术工程师CCRC-BDATE

大数据分析技术工程师介绍 大数据始于科技之美,归于创造价值。大数据时代,“谁用好数据,谁就能把握先机、赢得主动”。当下数据驱动的电信、社交媒体、生物医疗、电子政务商务等行业都在产生着海量的数据,随着大规模数据关联、交叉…

@ResponseStatus

目录 概述: 用途: 参数: 注意事项: 自定义异常类: 底层原理: 概述: 在 Spring MVC 中,我们有很多方法来设置 HTTP 响应的状态码其中最直接的方法:使用 ResponseSt…