mongoDB3.0.2 升级操作
mongodb 升级到3.0.2
考虑到mongoDB 3.0推出不久,上个月还不想冒然进行升级,虽然性能说得很诱人。
现看到版本已到3.0.2,是到要升级的时候了。
开始在测试环境先做一个升级,没有问题后,再把生产环境升级到3.0.2
测试环境:
版本号:MONGODB 2.6.5
2台服务器,做成2个分片,每个分片有一个集群(1+1+1),
集群中有2台数据存储服务器+1台仲裁服务器
把仲裁服务器分别放在2台服务器中
host ip 端口信息 arbiterOnly
---------------------------------------------------------------------------------------
tm1 192.168.10.91 mongod shard1:28011
mongod shard1:28012 ------------ True
mongod shard2:28021
mongod config1:28010
mongs1:28000
mongs2:28001
tm2 192.168.10.93 mongod shard1:28013
mongod shard2:28022
mongod shard2:28023 ------------ True
mongod config:28010
mongod config2:28020
mongs2:28000
一、准备工作:
1.对 tm1 分片中的集群做升级:
1.配置新版本,建立新的目录
1.1 [192.168.10.93 服务器]
su - mongo
cd /opt/
tar -xvzf mongodb-linux-x86_64-enterprise-rhel57-3.0.2.gz
mv mongodb-linux-x86_64-enterprise-rhel57-3.0.2 mongodb3.0.2 #更改目录名称
mkdir -p /opt/mongodb3.0.2/data/shard13
mkdir -p /opt/mongodb3.0.2/data/shard22
mkdir -p /opt/mongodb3.0.2/data/shard23
mkdir -p /opt/mongodb3.0.2/logs
mkdir -p /opt/mongodb3.0.2/config
mkdir -p /opt/mongodb3.0.2/config2
1.2 先配置好3个节点及两个配置服务器的参数:
[mongo@tm2 bin]$ cat shard13_start.sh
numactl --interleave=all /opt/mongodb3.0.2/bin/mongod -f shard13.conf
[mongo@tm2 bin]$ cat shard22_start.sh
numactl --interleave=all /opt/mongodb3.0.2/bin/mongod -f shard22.conf
[mongo@tm2 bin]$ cat shard23_start.sh
numactl --interleave=all /opt/mongodb3.0.2/bin/mongod -f shard23.conf
#配置文件 (注意:配置文件中的冒号后面一定要有空格)
[mongo@tm2 bin]$ cat shard13.conf
systemLog:
destination: file
path: "/opt/mongodb3.0.2/logs/shard13.log"
logAppend: true
storage:
journal:
enabled: true
directoryPerDB: true
dbPath: "/opt/mongodb3.0.2/data/shard13"
processManagement:
fork: true
net:
#bindIp: 127.0.0.1
port: 28013
setParameter:
enableLocalhostAuthBypass: false
#分片服务器节点类型
sharding:
clusterRole: shardsvr #configsvr
replication
replSetName: shard1
同理,另外两个节点:shard22,shard23的配置文件,只是指定的文件目录,日志文件名,
集群名不一样而已。
systemLog.path: "/opt/mongodb3.0.2/logs/shard22.log"
storage.dbPath: "/opt/mongodb3.0.2/data/shard22"
replication.replSetName: shard2
1.3 两个配置服务器的启动文件及配置文件
[mongo@tm2 bin]$ cat configd_start.sh
numactl --interleave=all /opt/mongodb3.0.2/bin/mongod -f configsvr.conf
[mongo@tm2 bin]$ cat configd2_start.sh
numactl --interleave=all /opt/mongodb3.0.2/bin/mongod -f configsvr2.conf
[mongo@tm2 bin]$ cat configsvr.conf
systemLog:
destination: file
path: "/opt/mongodb3.0.2/logs/config.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: "/opt/mongodb3.0.2/config"
processManagement:
fork: true
net:
#bindIp: 127.0.0.1
port: 28010
setParameter:
enableLocalhostAuthBypass: false
sharding:
clusterRole: configsvr
[mongo@tm2 bin]$ cat configsvr2.conf
systemLog:
destination: file
path: "/opt/mongodb3.0.2/logs/config2.log"
logAppend: true
storage:
journal:
enabled: true
dbPath: "/opt/mongodb3.0.2/config2"
processManagement:
fork: true
net:
#bindIp: 127.0.0.1
port: 28020
setParameter:
enableLocalhostAuthBypass: false
sharding:
clusterRole: configsvr
#拷贝文件到 91服务器
[mongo@tm2 opt]$ scp mongodb-linux-x86_64-enterprise-rhel57-3.0.2.gz tm1:/opt/
1.2 [192.168.10.91 服务器]
su - mongo
cd /opt/
tar -xvzf mongodb-linux-x86_64-enterprise-rhel57-3.0.2.gz
mv mongodb-linux-x86_64-enterprise-rhel57-3.0.2 mongodb3.0.2 #更改目录名称
mkdir -p /opt/mongodb3.0.2/data/shard11
mkdir -p /opt/mongodb3.0.2/data/shard12
mkdir -p /opt/mongodb3.0.2/data/shard21
mkdir -p /opt/mongodb3.0.2/logs
mkdir -p /opt/mongodb3.0.2/config
同理,在91服务器中的各节点统计文件等不再列出。
二、升级步骤:
2.1 关闭 均衡器
mongo -port 28000
sh.stopBalancer()
sh.getBalancerState()
2.2.升级集群元数据(Upgrade the cluster’s meta data)
/opt/mongodb3.0.2/bin/mongos --configdb 192.168.10.91:28010,192.168.10.93:28010,192.168.10.93:28020 --port 28080 --logpath /opt/mongodb3.0.2/logs/mongos.log --upgrade
如果出现以下提示,说明升级成功:
<timestamp> I SHARDING [mongosMain] upgrade of config server to v6 successful
...
<timestamp> I - [mongosMain] Config database is at version v6
2.3.升级config server
升级完成mongos 后,对config server 进行升级操作。
方法:
2.3.1 逐个导出数据,
mongodump --out <exportDataDestination>
/opt/mongodb2.6.4/bin/mongodump --port 28010 -o /opt/backup/config2.6
connected to: 127.0.0.1:28010
2015-04-21T15:54:04.603+0800 all dbs
2015-04-21T15:54:04.604+0800 DATABASE: config to /opt/backup/config2.6/config
2015-04-21T15:54:04.680+0800 config.system.indexes to /opt/backup/config2.6/config/system.indexes.bson
2015-04-21T15:54:04.682+0800 19 documents
......
2.3.2 config server 关闭,
2.3.3使用 --storageEngine wiredTiger 参数打开 3.0版本
#文件参数如下:
[mongo@tm1 bin]$ cat configd_start.sh
numactl --interleave=all /opt/mongodb2.6.5/bin/mongod --configsvr --config configsvr.conf
[mongo@tm1 bin]$ cat configsvr.conf
dbpath = /opt/mongodb2.6.5/config
port = 28010
logpath = /opt/mongodb2.6.5/logs/config.log
logappend =true
fork = true
[mongo@tm1 bin]$ ./configd_start.sh
2.3.4 导入数据
mongorestore <exportDataDestination>
/opt/mongodb3.0.2/bin/mongorestore --port 28010 --dir /opt/backup/config2.6
2015-04-21T15:56:29.394+0800 building a list of dbs and collections to restore from /opt/backup/config2.6 dir
2015-04-21T15:56:29.408+0800 reading metadata file from /opt/backup/config2.6/config/changelog.metadata.json
......
2015-04-21T15:56:37.882+0800 finished restoring config.lockpings
2015-04-21T15:56:37.882+0800 done
2.4.升级各分片中的集群节点
2.4.1 关闭主节点:
可以通过replSetStepDown命令下架主节点。这个命令可以登录主节点使用
1.db.adminCommand({replSetStepDown : 1})
以下操作是把primary 切换到secondary,并关闭服务器,
/opt/mongodb2.6.4/bin/mongo -port 28022
shard2:PRIMARY>
shard2:PRIMARY> rs.stepDown()
2015-04-21T18:12:48.777+0800 DBClientCursor::init call() failed
2015-04-21T18:12:48.780+0800 Error: error doing query: failed at src/mongo/shell/query.js:81
2015-04-21T18:12:48.783+0800 trying reconnect to 127.0.0.1:28022 (127.0.0.1) failed
2015-04-21T18:12:48.784+0800 reconnect 127.0.0.1:28022 (127.0.0.1) ok
shard2:SECONDARY> rs.status()
{
"set" : "shard2",
"date" : ISODate("2015-04-21T10:12:56Z"),
"myState" : 2,
"members" : [
{
"_id" : 0,
"name" : "192.168.10.91:28021",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 9470,
"optime" : Timestamp(1429581793, 1),
"optimeDate" : ISODate("2015-04-21T02:03:13Z"),
"lastHeartbeat" : ISODate("2015-04-21T10:12:54Z"),
"lastHeartbeatRecv" : ISODate("2015-04-21T10:12:54Z"),
"pingMs" : 37,
"syncingTo" : "192.168.10.93:28022"
},
{
"_id" : 1,
"name" : "192.168.10.93:28022",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 13065,
"optime" : Timestamp(1429581793, 1),
"optimeDate" : ISODate("2015-04-21T02:03:13Z"),
"self" : true
},
{
"_id" : 2,
"name" : "192.168.10.93:28023",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 7865,
"lastHeartbeat" : ISODate("2015-04-21T10:12:54Z"),
"lastHeartbeatRecv" : ISODate("2015-04-21T10:12:56Z"),
"pingMs" : 0
}
],
"ok" : 1
}
shard2:SECONDARY> rs.status()
{
"set" : "shard2",
"date" : ISODate("2015-04-21T10:13:10Z"),
"myState" : 2,
"syncingTo" : "192.168.10.91:28021",
"members" : [
{
"_id" : 0,
"name" : "192.168.10.91:28021",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 9484,
"optime" : Timestamp(1429581793, 1),
"optimeDate" : ISODate("2015-04-21T02:03:13Z"),
"lastHeartbeat" : ISODate("2015-04-21T10:13:09Z"),
"lastHeartbeatRecv" : ISODate("2015-04-21T10:13:09Z"),
"pingMs" : 6,
"electionTime" : Timestamp(1429611174, 1),
"electionDate" : ISODate("2015-04-21T10:12:54Z")
},
{
"_id" : 1,
"name" : "192.168.10.93:28022",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 13079,
"optime" : Timestamp(1429581793, 1),
"optimeDate" : ISODate("2015-04-21T02:03:13Z"),
"infoMessage" : "syncing to: 192.168.10.91:28021",
"self" : true
},
{
"_id" : 2,
"name" : "192.168.10.93:28023",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 7879,
"lastHeartbeat" : ISODate("2015-04-21T10:13:08Z"),
"lastHeartbeatRecv" : ISODate("2015-04-21T10:13:08Z"),
"pingMs" : 0
}
],
"ok" : 1
}
shard2:SECONDARY> db.shutdownServer()
2.4.2 这时其它的次节点上升为主节点,把原主节点更换成 3.0版本的mongod 实例。
使用新的存储引擎方式启动(端口号不变):
mongod --storageEngine wiredTiger --dbpath <newWiredTigerDBPath>
这时主节点会把数据同步到新的3.0版本的实例中。
当同步完成后 状态值:"stateStr" : "STARTUP2" 会变成 "stateStr" : "STARTUP"。
当此次切换完成后,可以再切换一次,从 PRIMARY 切换成 STARTUP,再把 STARTUP 服务器
关掉,再重启3.0版本的服务器,这时数据库又会把 PRIMARY 服务器的数据,同步到 STARTUP 服务器
如果有多台startup只要关闭后,启动3.0版本即可。
shard1:PRIMARY> rs.status()
{
"set" : "shard1",
"date" : ISODate("2015-04-22T02:26:27Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "192.168.10.91:28011",
"health" : 1,
"state" : 5,
"stateStr" : "STARTUP2",
"uptime" : 2232,
"optime" : Timestamp(1429667867, 3),
"optimeDate" : ISODate("2015-04-22T01:57:47Z"),
"lastHeartbeat" : ISODate("2015-04-22T02:26:27Z"),
"lastHeartbeatRecv" : ISODate("2015-04-22T02:26:26Z"),
"pingMs" : 31,
"syncingTo" : "192.168.10.93:28013"
},
{
"_id" : 1,
"name" : "192.168.10.93:28013",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 71486,
"optime" : Timestamp(1429667867, 3),
"optimeDate" : ISODate("2015-04-22T01:57:47Z"),
"electionTime" : Timestamp(1429667221, 1),
"electionDate" : ISODate("2015-04-22T01:47:01Z"),
"self" : true
},
{
"_id" : 2,
"name" : "192.168.10.91:28014",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 1423,
"lastHeartbeat" : ISODate("2015-04-22T02:26:26Z"),
"lastHeartbeatRecv" : ISODate("2015-04-22T02:26:26Z"),
"pingMs" : 23
}
],
"ok" : 1
2.5 打开均衡器器
sh.setBalancerState(true)
到这里,mongodb3.0的升级完成。测试内容不再列举。
mongoDB3.0.2 升级操作相关推荐
- Mongodb2.6升级到Mongodb3.0.2笔记
2019独角兽企业重金招聘Python工程师标准>>> PS:升级到3版本的Mongodb以后,drop集合是可以直接释放磁盘空间的 停止老版本Mongodb >use adm ...
- 联想平板android版本升级,联想乐Pad A1平板安卓4.0升级操作详细教程
[天极网平板频道]你还记得乐PadA1千元普及风暴时的震撼感受吗?在这个夏天千元乐Pad A1一跃升级为安卓4.0系统,在这个炎炎夏天成功吃上冰激凌,给那些小乐粉丝们带来惊喜.联想乐Pad A1拥有7 ...
- 数据库应用----Mongodb 4.0 版本 基础操作---复制集,选举方法、部署认证 (二)
Mongodb 4.0 版本 基础操作-复制集,选举方法.部署认证 (二) 文章目录 Mongodb 4.0 版本 基础操作---复制集,选举方法.部署认证 (二) 一.MongoDB 复制集 二.部 ...
- windows 2003 下oracle从10.2.0.1升级到10.2.0.4
方法一: 1. 完全安装10.2.0.1 2. 安装完成后,停止所有的oracle服务,可以通过停止oracle 的window services或者使用以下命令来实现. emctl stop dbc ...
- Oracle 11.2.0.1 升级到 11.2.0.3 示例
Oracle 11.2.0.1 单实例升级到11.2.0.3. Oracle 升级的步骤都差不多. 先升级Oracle software,然后升级Oracle instance. Oracle 11. ...
- 从oracle10g 10.2.0.1 升级到10.2.0.4碰到的问题及解决
这两天做数据库的升级,从10.2.0.1升级到10.2.0.4,升级安装很顺利,但安装完成后再用常用用户连接数据库,出现如下提示错误: ORA-12514:TNS:监听程序当前无法识别连接描述符中请求 ...
- Oralce 9.2.0.6 到 9.2.0.8 升级 小结
13号,晚上加班,将2台数据库从9.2.0.6 升级到9.2.0.8. 因为之前有个小bug,9.2.0.6 的DataGuard中会经常不能识别备库的监听,造成Data Guard不能同步. Ora ...
- 更新无限无线连接更新服务器,02-H3C WBC560多业务无线控制器软件升级操作指导...
本文中的绿洲平台指的是WBC560多业务无线控制器中的本地绿洲. 1.1.1 软件升级方式简介 AC支持通过命令行进行软件升级和通过Web页面进行软件升级,命令行升级方式只能通过以太网口telnet ...
- Oracle RAC 10.2.0.5升级到11.2.0.4遇到的问题
最近有这个需求所以提前在家里的测试环境做了相关的测试,将Oracle RAC 10.2.0.5 for Linux升级到Oracle RAC 11.2.0.4,不对物理结构做任何变更,直接升级 ...
最新文章
- mysql 错误1930xc1_Mysql写入记录出现 Incorrect string value: '\xB4\xE7\xB1\xCA\xBC\xC7‘错误?(写入中文)...
- python开发工程师面试题-分析经典Python开发工程师面试题
- Windows 中 SQLite3 使用(1) -- 配置
- 店铺管理系统开发实践-领域模型
- c 语言冒泡排序,c 语言冒泡排序
- CSS使用Chrome进行取色
- 创建应用服务器连接客户端
- iis express8 自动关闭
- js 调用百度地图,并且定位用户地址,显示省市区街,经纬度
- 第三章 硅谷宠儿 Friendster (二)
- 平面变压器的设计(翻译)(5)
- DelayQueue延时队列操作实例
- 编程猫李天驰:让编程教育回归互联网
- cocos2d-x lua 框架中 self.super.ctor(self, app) 和 self.super:ctor(app) 的区别
- linux之bc命令使用详解_【原创】linux命令bc使用详解
- matlab solve 警告,当发出警告时令测试失败的插件
- 运放基本结构及频响(一)
- 1. 什么是ThingsBoard
- 计算机技术在多媒体教学中的作用,多媒体教学中的现状及作用
- mount USB Device(U disk) on crux based on vmware