MongoDB 特殊从节点

特殊从节点

简单介绍

arbiter节点:
主要负责选主过程中的投票,但是不存储任何数据,也不提供任何服务

hidden节点:
隐藏节点,不参与选主,也不对外提供服务。

delay节点:
延时节点,数据落后于主库一段时间,因为数据是延时的,也不应该提供服务或参与选主,所以通常会配合hidden(隐藏)

一般情况下会将delay+hidden一起配置使用

配置延时节点(一般延时节点也配置成hidden)

# 查看节点配置
my_repl:PRIMARY> rs.conf()
......
		{
			"_id" : 3,
			"host" : "10.0.50.61:28020",
			"arbiterOnly" : false,
			"buildIndexes" : true,
			"hidden" : false,
			"priority" : 1,	// 选主权重,数值越大,权重越高
			"tags" : {
				
			},
			"slaveDelay" : NumberLong(0),	// 延时的秒数
			"votes" : 1
		}
	],
......
my_repl:PRIMARY>

# 在线修改命令可以修改节点配置,命令结构如下
cfg=rs.conf() 		//定义配置为cfg变量
cfg.members[2].priority=0 //定义权重为0,不参与选主
cfg.members[2].hidden=true	//隐藏节点,不参与业务,应用端是看不到的
cfg.members[2].slaveDelay=120	//延时节点,单位秒(根据实际需求计算)
cfg.members[3].votes=0		//投票数为0
rs.reconfig(cfg)    	//重新加载配置

# 小细节:members[2] 括号内的数字,并不是对应rs.conf()查到的“_id”值,而是按照从上倒下,起始数字为0,数出来的结果。


# 把28020节点修改成 delay + hidden节点
my_repl:PRIMARY> cfg=rs.conf() 
my_repl:PRIMARY> cfg.members[3].priority=0
0
my_repl:PRIMARY> cfg.members[3].hidden=true
true
my_repl:PRIMARY> cfg.members[3].slaveDelay=120
120
my_repl:PRIMARY> cfg.members[3].votes=0
0
my_repl:PRIMARY> rs.reconfig(cfg)
{
	"ok" : 1,
	"operationTime" : Timestamp(1603521419, 1),
	"$clusterTime" : {
		"clusterTime" : Timestamp(1603521419, 1),
		"signature" : {
			"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
			"keyId" : NumberLong(0)
		}
	}
}
my_repl:PRIMARY> rs.conf()



取消以上配置
cfg=rs.conf() 
cfg.members[3].priority=1
cfg.members[3].hidden=false
cfg.members[3].slaveDelay=0
rs.reconfig(cfg)    
配置成功后,通过以下命令查询配置后的属性
rs.conf(); 

副本集其他操作命令

查看副本集的配置信息
admin> rs.conf()
查看副本集各成员的状态
admin> rs.status()
++++++++++++++++++++++++++++++++++++++++++++++++
--副本集角色切换(不要人为随便操作)
admin> rs.stepDown()
注:
admin> rs.freeze(300) //锁定从,使其不会转变成主库
freeze()和stepDown单位都是秒。
+++++++++++++++++++++++++++++++++++++++++++++
设置副本节点可读:在副本节点执行
admin> rs.slaveOk()
eg:
admin> use app
switched to db app
app> db.createCollection('a')
{ "ok" : 0, "errmsg" : "not master", "code" : 10107 }

查看副本节点(监控主从延时)
admin> rs.printSlaveReplicationInfo()
source: 192.168.1.22:27017
    syncedTo: Thu May 26 2016 10:28:56 GMT+0800 (CST)
    0 secs (0 hrs) behind the primary

OPlog日志(备份恢复章节)
posted @ 2022-05-20 00:05  oldSimon  阅读(247)  评论(0编辑  收藏  举报