Mongodb Replica Sets部署

来源:互联网 发布:口口网络用语什么意思 编辑:程序博客网 时间:2024/04/29 21:12

一,Mongodb Replica Sets部署

1.先建好几个目录,放置数据
     数据文件
    E:\MongoDB\data1
    E:\MongoDB\data2
    E:\MongoDB\data3
2.开始搭建,启动三个MongoDB Server
   

    mongod --replSet prod --port 27017 --dbpath e:\mongodb\data1 
    mongod --replSet prod --port 27027 --dbpath e:\mongodb\data2
    mongod --replSet prod --port 27037 --dbpath e:\mongodb\data3
3.进入其中一个mongodb中,完成相关的配置
replica_config = {_id: 'prod', members: [                          {_id: 0, host: 'localhost:27017'},                          {_id: 1, host: 'localhost:27027'},                          {_id: 2, host: 'localhost:27037'}]}#Now initiate the replica_configrs.initiate(replica_config);

4. rs.status()   //通过查看状态可知晓新增节点有以下过程


5.db.getMongo().setSlaveOk()  

6.ok,就可以了,

myrs:SECONDARY> db.bank.find()
{ "_id" : 0, "name" : "joe", "age" : "50", "score" : 99 }
{ "_id" : 1, "name" : "joe", "age" : "60", "score" : 99 }
{ "_id" : 2, "name" : "joe", "age" : "70", "score" : 99 }
{ "_id" : ObjectId("4ec3849baa5bff10ca03145b"), "computer" : "mac" }

可以看到数据已经同步过来。


7.新增replica set 节点,配置和启动如上述步骤。下面将新加节点192.168.8.207:28010加入复制集中。
rs1:PRIMARY> rs.add({_id:3,host:"hostlocal:27047"})
rs1.PRIMARY> rs.status() //通过查看状态可知晓新增节点有以下过程

 8.通过如下命令删除节点:

rs1:PRIMARY> rs.remove("hostlocal:27037")
rs1:PRIMARY> rs.status()


二,Sharding

1. 先建好几个文件夹

    E:\MongoDB\Data\shard\s1
    E:\MongoDB\Data\shard\s0
    E:\MongoDB\Data\shard\log
    E:\MongoDB\Data\shard\config

2.启动Shard Server

    1) mongod --shardsvr --port 20000 --dbpath e:\mongodb\data\shard\s0 --logpath e:\mongodb\data\shard\log\s0.log --directoryperdb    
    2) mongod --shardsvr --port 20001 --dbpath e:\mongodb\data\shard\s1 --logpath e:\mongodb\data\shard\log\s1.log --directoryperdb

3. 启动Config Server

    1) mongod --configsvr--port 30000 --dbpath e:\mongodb\data\shard\config --logpath e:\mongodb\data\shard\log\config.log --directoryperdb

4. 启动Route Process

    1) mongos --port 40000 --configdb localhost:30000 --logpath e:\mongodb\data\shard\log\route.log --chunkSize:1

5. 配置Sharding 

      1). 先连接DB
             MONGO ADMIN --port 40000

       2) db.runCommand({addshard:"localhost:20000"})

       3) db.runCommand({addshard:"localhost:20001"})

       4) db.runCommand({enablesharding:"test"})

       5) db.runCommand({ shardcollection:"test.users",key:{_id:1}})

6. 验证Sharding

     给test.users表插入测试数据
  1).use test
  2)  for(var i=1;i<=5000000;i++) db.users.insert({age:i,name:“fanfenghua”,addr:"SuZhou",country:"China"})
 
验证:
db.users.stats()

7.维护Sharding
1) 列出所有的Shard Server

   db.runCommand({listshards:1})

2) 查看sharding信息

   printShardingStatus()

3). 判断是否是sharding

    db.runCommand({isdbgrid:1})

8. 对现有的表执行sharding

       1) db.runCommand({ shardcollection:"test.users",key:{_id:1}})

9 新增Shard Server

     db.runCommand({addshard:"localhost:20002"})

10.移除Shard Server:

     db.runCommand({removeshard:"localhost:20002"})


    
 



原创粉丝点击