MongoDB 创建副本集测试

160 阅读1分钟

1. 安装虚拟机 安装linux系统

2. 安装MongoDB

    (1) 下载地址 : www.mongodb.com/download-ce…

    (2) 在 /usr/local 中解压 : tar -xzvf mongodb-*****.tgz\

             重命名解压包 : mv mongodb-**** mongodb

    (3) 创建目录 : mkdir -p /data/db\

    (4) 设置环境变量 : vi /etc/profile : 最后一行 : export PATH=/usr/local/mongodb/bin:$PATH\

3. 启动 : mongo --nodb

4. 创建副本集 : replicaSet = new ReplSetTest({"nodes":3}) // 创建3个副本集成员 可以看到新创建的三个端口 

     如 20000 20001 20002

5. 启动副本集 : replicaSet.startSet()

6. 初始化副本集 : replicaSet.initiate() // 

7. 启动后切换另一个命令窗口,开启MongoDB : mongo --nodb

8. 连接一个端口创建mongo实例 : conn1 = new Mongo("localhost:20000")

9. 进入数据库 : primaryDB = conn1.getDB("test")

10. 看是否主节点 : primaryDB.isMaster()

11. 如果显示 : {"primary" : true} // 说明是主节点 如果没有文档中也会显示哪个接口为主节点 以同样的方式连接就行

12. 如果是主节点可以用js进行写操作 : primaryDB.coll.insert({"name" : "hbw"})

13. 可以读取写好的信息 : primaryDB.coll.find()

14. 重新连接一个从节点 : 

      conn2 = new Mongo("localhost:20001")

       secondaryDB = conn2.getDB("test")

       读取信息 : secondaryDB.coll.find()

       如无法读取可以先设置 : conn2.setSlaveOk()

       然后就可以读取到主节点再coll文档中插入的信息了

      但是如果在从节点执行插入操作,会报错,可以查询报错信息 : secondaryDB.runCommand({"getLastError":1})

      说明只有主节点拥有写权限,而从节点只有查权限

15. 但是如果将主节点关闭或是某种原因导致主节点不可用,就会根据大多数(超过一半)的原则选取新的主节点,可以参照上面的      步骤查询新的主节点,关闭主节点的命令为 : primaryDB.adminCommand({"shutdown" : 1})