视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mongoDBsingledbconverttoreplicaSet
2020-11-09 16:07:44 责编:小采
文档


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" : [

{

"_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()

下载本文
显示全文
专题