博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongodb- 副本集(Ha方案)
阅读量:5018 次
发布时间:2019-06-12

本文共 1995 字,大约阅读时间需要 6 分钟。

*副本集(Replica Set)?

副本集就是有自动故障恢复功能得主从集群。

主从集群和副本集最大的区别就是副本集没有固定的“主节点”;整个集群会选出一个“主节点”,当其挂掉后,又在剩下的从节点中选中其他节点为“主节点”,副本集总有一个活跃点(primary)和一个或多个备份节点(secondary)。

 以三个节点为例:

节点1:

Mongodb Home:D:\mongodb\mongodb-win32-i386-2.0.4

HOST:localhost:10001

Log File:D:\mongodb\logs\node1\logs.txt

Data File:D:\mongodb\dbs\node1

节点2:

Mongodb Home:D:\mongodb\mongodb-win32-i386-2.0.4

HOST:localhost:10002

Log File:D:\mongodb\logs\node2\logs.txt

Data File:D:\mongodb\dbs\node2

节点3:

Mongodb Home:D:\mongodb\mongodb-win32-i386-2.0.4

HOST:localhost:10003

Log File:D:\mongodb\logs\node3\logs.txt

Data File:D:\mongodb\dbs\node3

启动节点1:

          打开dos窗口

 mongod --dbpath D:\mongodb\dbs\node1 --logpath D:\mongodb\logs\node1\logs.txt --logappend --port 10001 --replSet java2000_wl/localhost:10002  --master

 

启动节点2:

   mongod --dbpath D:\mongodb\dbs\node2 --logpath D:\mongodb\logs\node2\logs.txt --logappend --port 10002 --replSet java2000_wl/localhost:10001

启动节点3:  

     mongod --dbpath D:\mongodb\dbs\node3 --logpath D:\mongodb\logs\node3\logs.txt --logappend --port 10003 --replSet java2000_wl/localhost:10001,localhost:10002

          

初始化节点(只能初始化一次):

   随便登录一个节点,以10001为例

   mongo localhost:10001/admin

 db.runCommand({

 "replSetInitiate":{
  "_id":"java2000_wl",
  "members":[
   {
     "_id":1,
     "host":"localhost:10001",
      "priority":3
   },
   {
     "_id":2,
     "host":"localhost:10002",
     "priority":2
   },
   {
     "_id":3,
     "host":"localhost:10003",
      "priority":1
   }
  ]
 }
});

 

参数解释:

--replSet  指定副本集  后面紧跟着副本集的名称

--logappend 日志文件末尾添加

--port 指定端口号

db.runCommand({})  初始化副本集

初始化文档:

"_id":"java2000_wl",  指副本集的名称

 "members":[...]  副本集的服务器列表  每个列表有个

               "_id": 每个服务器的唯一id, 

              "host" 指定服务器的主机,

              "priority"设置优先级,默认优先级为1,可以是1-1000的数字

测试:

1.查询当前主库

   登录10002

   mongo localhost:10002

 db.$cmd.findOne ( {ismaster: 1 } );

 

 当前主库是10001

2.关闭10001服务Dos命令窗口,  登录10002查询当前主库

   mongo localhost:10002

 db.$cmd.findOne ( {ismaster: 1 } );

 当前主库是10002

其他命令:

查看副本集状态rs.status ( )

user local;

rs.isMaster ( )

 db.system.replset.find ( )

设置从库可读(在从库secondary上执行)

rs.slaveOk ( );

转载于:https://www.cnblogs.com/yangjin-55/archive/2012/07/26/2786521.html

你可能感兴趣的文章
设计模式之: 代理模式
查看>>
python输出日期时间
查看>>
js 闭包
查看>>
软件测试中的80/20原则
查看>>
创新工场首席布道师-蔡学镛思考”面向对象”
查看>>
Spring Boot 揭秘与实战(五) 服务器篇 - 其他内嵌服务器 发表于 2017-01-03 | Spring框架 | Spri...
查看>>
c#创建目录和文件夹,数据写入并生成txt文件
查看>>
appfabric缓存的实现与设置主要主机
查看>>
常用的Linux操作
查看>>
函数练习题
查看>>
Maven安装配置
查看>>
Leetcode#118. Pascal's Triangle(杨辉三角)
查看>>
python操作redis
查看>>
lintcode142 O(1)时间检测2的幂次
查看>>
中国游戏路在何方?
查看>>
2.11 alert\confirm\prompt
查看>>
【剑指offer】面试题 23. 链表中环的入口节点
查看>>
PHP的单例模式
查看>>
【转】js/jquery中刷新iframe方法(兼容主流)
查看>>
【Windows程序设计】第一个Windows程序
查看>>