Mongodb版本升级
<p>MongoDB版本控制</p><p><strong>1、稳定版本</strong></p>
<p>MongoDB的版本的形式X.Y.Z在那里X.Y 指的是一个版本系列或开发系列Z 指修订/补丁号。</p>
<p>如果Y是偶数,则X.Y指发布系列;例如, 4.0发行系列和4.2发行系列。发布系列 稳定且适合生产。</p>
<p>如果Y是奇数,则X.Y指一个开发系列;例如, 4.1开发系列和4.3开发系列。开发系列仅用于测试而不是生产。</p>
<p>例如,在MongoDB版本中4.0.12,4.0指的是发行系列,而.12指的是修订版。</p>
<p><strong>最新产品</strong></p>
<p>在发布一系列变化(例如4.0到4.2)通常标志着引进可能破坏向后兼容的新功能。</p>
<p><strong>补丁版本</strong></p>
<p>更改版本号(如4.0.11对4.0.12)一般标注错误修复和向后兼容的改变的释放。</p>
<p><strong>驱动程序版本</strong></p>
<p>MongoDB的版本编号系统与MongoDB驱动程序使用的系统不同</p>
<p> </p>
<p><strong>2、 MongoDB版本升级</strong></p>
<p>mongodb的稳定版本全部为偶数,例如:4.0、4.2</p>
<p> </p>
<p>mongoDB的升级必须是相邻版本升级,不能跳版本升级。例如:3.2->3.4->3.6,不能3.2直接升级3.6,这是因为相邻版本会有兼容,如果跳版本升级很容易出问题。</p>
<p> </p>
<p><strong>3、升级单实例</strong></p>
<p>步骤:</p>
<p>1、确认数据文件版本</p>
<p>2、安装新版本</p>
<p>3、替换老版本</p>
<p>4、更新数据文件版本</p>
<p> </p>
<p><strong>3.1、连接mongodb确认版本:</strong></p>
<div class="cnblogs_code">
<pre>rs0:PRIMARY> db.adminCommand( { getParameter: <span style="color: rgba(128, 0, 128, 1)">1</span>, featureCompatibilityVersion: <span style="color: rgba(128, 0, 128, 1)">1</span> } )</pre>
</div>
<p>featureCompatibilityVersion 字段可看到版本号</p>
<p> </p>
<p><strong>3.2、安装新版本:</strong></p>
<p>下载对应的新版本安装包,安装新目录</p>
<p>此处安装省略</p>
<p> </p>
<p><strong>3.3、启动新版本替换老版本</strong></p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">kill</span> -<span style="color: rgba(128, 0, 128, 1)">9</span> <span style="color: rgba(128, 0, 128, 1)">26181</span>; mongod -f /usr/local/mongodb/data/<span style="color: rgba(0, 0, 0, 1)">mdb1.conf
about to fork child process, waiting </span><span style="color: rgba(0, 0, 255, 1)">until</span> server is ready <span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> connections.
forked process: </span><span style="color: rgba(128, 0, 128, 1)">31107</span><span style="color: rgba(0, 0, 0, 1)">
child process started successfully, parent exiting</span></pre>
</div>
<p> </p>
<p>查看进程状态</p>
<div class="cnblogs_code">
<pre># <span style="color: rgba(0, 0, 255, 1)">ps</span> -ef | <span style="color: rgba(0, 0, 255, 1)">grep</span> mongo</pre>
</div>
<p> </p>
<p><strong>3.4、更新新版本数据文件:</strong></p>
<div class="cnblogs_code">
<pre>> db.adminCommand( { getParameter: <span style="color: rgba(128, 0, 128, 1)">1</span>, featureCompatibilityVersion: <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> } )
{ </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">featureCompatibilityVersion</span><span style="color: rgba(128, 0, 0, 1)">"</span> : { <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">version</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">4.2</span><span style="color: rgba(128, 0, 0, 1)">"</span> }, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ok</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> } #查看兼容性版本
</span>> db.adminCommand( { setFeatureCompatibilityVersion: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">4.4</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> } ) #修改兼容性版本
{ </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ok</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> }
</span>> db.adminCommand( { getParameter: <span style="color: rgba(128, 0, 128, 1)">1</span>, featureCompatibilityVersion: <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> } )
{ </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">featureCompatibilityVersion</span><span style="color: rgba(128, 0, 0, 1)">"</span> : { <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">version</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">4.4</span><span style="color: rgba(128, 0, 0, 1)">"</span> }, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ok</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span> }</pre>
</div>
<p> </p>
<p>到此升级就完成了。</p>
<p> </p>
<p><strong>集群升级步骤</strong></p>
<p>1、先升级从节点,从节点全部升级完毕在升级主节点</p>
<p>2、主节点升级,先把主节点降为从节点,然后升级</p>
<p>使用并使用rs.stepDown()命令让主节点降级,集群会选举出新的节点作为主节点。</p>
<div class="cnblogs_code">
<pre>rs0:PRIMARY><span style="color: rgba(0, 0, 0, 1)"> rs.stepDown()
{
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ok</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">$clusterTime</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">clusterTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> : Timestamp(<span style="color: rgba(128, 0, 128, 1)">1598524885</span>, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">),
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">signature</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> : {
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hash</span><span style="color: rgba(128, 0, 0, 1)">"</span> : BinData(<span style="color: rgba(128, 0, 128, 1)">0</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">AAAAAAAAAAAAAAAAAAAAAAAAAAA=</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">),
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">keyId</span><span style="color: rgba(128, 0, 0, 1)">"</span> : NumberLong(<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">)
}
},
</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">operationTime</span><span style="color: rgba(128, 0, 0, 1)">"</span> : Timestamp(<span style="color: rgba(128, 0, 128, 1)">1598524885</span>, <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">)
}
rs0:SECONDARY</span>></pre>
</div>
<p> </p>
<p>更新完成,执行的维护操作一定是在业务低峰期执行,以免影响到业务。</p><br><br>
来源:https://www.cnblogs.com/stayed/p/13578882.html
頁:
[1]