• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mongoDB single db convert to replicaSet

mysql 搞代码 4年前 (2022-01-09) 16次浏览 已收录 0个评论

mongoDB single db convert to replicaSet 以下以2.0.2为例 : 1. 修改主节点配置 # 其他配置不变 # 增加配置,例如 noauth = true oplogSize = 31280 journal = true journalCommitInterval = 40 2. 重启mongodb mongo 127.0.0.1:4321/admin db.shutdownServe

mongoDB single db convert to replicaSet

以下以2.0.2为例 :

1. 修改主节点配置

# 其他配置不变

# 增加配置,例如

noauth = true

oplogSize = 31280

journal = true

journalCommitInterval = 40

2. 重启mongodb

mongo 127.0.0.1:4321/admin

db.shutdownServer()

# 增加启动项 –replSet=set_name

mongod –replSet=set_name -f mongod.conf

3. 初始化,假如我想让192.168.10.10:4321这个库的优先级比较高,一直处于primary角色.

use admin

rs.initiate({

“_id” : “digoal”,

“version” : 1,

“members” : [

本文来源gao!daima.com搞$代!码网

{

“_id” : 0,

“host” : “192.168.10.10:4321”,

“priority” : 2

}

]

})

4. 新增local.system.profile

如果开启了profile参数,转换成replicaSet后会报错,需要增加system.profile的collection

连接到primary以及slave执行

use local

db.createCollection( “system.profile”, {capped:true , size:4000000})

一般需要在所有数据库都创建,所以

show dbs

然后进入库去执行. 如

use test

db.createCollection( “system.profile”, {capped:true , size:4000000})

5. 启动SLAVE

mongod –replSet=set_name -f mongod.conf

6. 重新配置主节点rs.conf

use admin

rs.reconfig({

“_id” : “digoal”,

“version” : 1,

“members” : [

{

“_id” : 0,

“host” : “192.168.10.10:4321”,

“priority” : 2

},

{

“_id” : 1,

“host” : “192.168.10.11:4321”

}

]

})

7. 等待recover完成

8. Slave节点新增local.system.profile

use local

db.createCollection( “system.profile”, {capped:true , size:4000000})

9. 新增其他slave

小结, 因为单节点的mongoDB转成replicaSet时需要初始化local数据库,如果local设置得比较大的话可能导致初始化耗时比较长.

因此建议上线的时候就配置成单节点的replicaSet。

看了德哥的打消了我一个顾虑就是,不需要所有replica set配置好,再初始化,只需要单个配置修改,初始化了,从节点可以逐个加进来,重新配置即可。

自己的步骤:

1.登录现有mongodb

db.runCommand(“shutdown”)或者db._adminrunCommand(“shutdown”)

2.配置文件修改auth选项:noauth = true

添加key文件,权限400即可,并在配置文件中写入keyFile路径以及replSet,oplogSize到配置文件,或者直接写明参数启动

示例:mongod –replSet rs1/192.168.173.234:20001 –keyFile /mongodb1.8/key/r1 –fork –port 20001 –dbpath /mongodb1.8/data1/ –logpath=/mongodb1.8/RS.log

3.登录其他两个节点,相继启动

在其中一个节点mongo 192.168.173.234:20001/admin

config_rs1 = {_id: 'rs1', members: [

… {_id: 0, host: '192.168.173.234:20001', priority:1}, –成员IP 及端口,priority=1 指PRIMARY

… {_id: 1, host: '1ip:20002'},

… {_id: 2, host: '2ip:20003'}]

… }

rs.initiate(config_rs1);

rs.status()

rs.isMaster()


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mongoDB single db convert to replicaSet

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址