天天看点

mongoDB集群之可复制集

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

优雅的关机:

第一种方式      use admin     db.shutdownServer()

第二种方式     mongod --shutdown -f mongodb.conf (service mongodb start)

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.remove("192.168.42.101:27019");  

-----------------------

添加仲裁节点,仲裁节点不存储数据

rs.addArb("121.40.42.216:27019")

-----------------------

    在每个节点运行 rs.status() 或 isMaster() 命令查看复制集状态;   测试数据复制集效果;   测试故障失效转移效果;     Tips: 只能在主节点查询数据 , 但如果想在副节点查询到数据需运行 rs.slaveOk();  

mongoDB集群之可复制集

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

mongoDB集群之可复制集
mongoDB集群之可复制集