mongoDB集群之可复制集

ps auxf|grep mongo |grep -v grep|xargs kill -9  杀死所有redis的进程

 

1:把下载的解压包解压到mongoha目录下,复制并且改写为node1。

注意:node2,node3是复制node1的

 

mongoDB集群之可复制集

 

mongoDB集群之可复制集

2:mkdir -p mongodb/{db,log} 创建2个目录

mongoDB集群之可复制集

3:在node1目录下执行 vim mgdb.conf  创建并配置为如下:

replication:
  replSetName: configRS
  oplogSizeMB: 50

storage:
    dbPath: "/usr/local/soft/mongoha/node1/db/"
systemLog:
    destination: file
    path: "/usr/local/soft/mongoha/node1/logs/mongodb.log"
net:
    port: 27017
    bindIp: 127.0.0.1,192.168.42.100
processManagement:
    fork: true
setParameter:
    enableLocalhostAuthBypass: false
 

mongoDB集群之可复制集

注:doPath和path路径不要写错了,不然会报fork有问题。

4:复制node1 为 node2 node3 

vim mgdb.conf 中的端口号分别为: port: 27018      port: 27019就行了 

mongoDB集群之可复制集

5:如果DB目录下有文件就先清除,再启动3个服务:

分别执行以下命令:

rm -rf /usr/local/soft/mongoha/node1/db/*
rm -rf /usr/local/soft/mongoha/node2/db/*
rm -rf /usr/local/soft/mongoha/node3/db/*


/usr/local/soft/mongoha/node1/bin/mongod --config /usr/local/soft/mongoha/node1/mgdb.conf &

/usr/local/soft/mongoha/node2/bin/mongod --config /usr/local/soft/mongoha/node2/mgdb.conf &

/usr/local/soft/mongoha/node3/bin/mongod --config /usr/local/soft/mongoha/node3/mgdb.conf &

6. 在主节点配置
 
1): 链接上 mongo --port 27017 
 
2): 在 primary 节点切换到 admin 库上运行可复制集的初始化命令,初始化可复制集,命令如下:
     注意:是一条一条的执行:
 
  use admin;
  

rs.initiate({
    _id: "configRS",
    version: 1,
    members: [{
        _id: 0,
        host: "192.168.42.100:27017"
    }]
});

rs.add("192.168.42.100:27018");  //有几个节点就执行几次方法
rs.add("192.168.42.100:27019");

  rs.add("192.168.42.101:27019"); // 其它的机器也是一样整
 
 
 
在每个节点运行 rs.status()isMaster()命令查看复制集状态;
 
测试数据复制集效果;
 
测试故障失效转移效果;
 
 
Tips:
只能在主节点查询数据,但如果想在副节点查询到数据需运行 rs.slaveOk();
 

 

启动时报错,大部分都是mgdb.conf的路径等有问题,赋值前面还得有个空格,如下:

mongoDB集群之可复制集

mongoDB集群之可复制集