mongodb- 副本集(Ha方案)

*副本集(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 ( );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值