一边搭建一边理解MongoDB的副本集
作者:链上研发-175405
时间:2017-01-04
副本集基本概念
副本集的意义在于冗余数据,提供数据库高可用性。副本集可以提供复制数据功能、特定场景下可以分担读写压力,提供延时备份的节点。。。
通过搭建一个最小副本集来了解副本集中的角色
直接进入实战环节,创建三个mongod进程,包含两个数据节点和一个仲裁者节点,这三个节点需要网络互通:
mkdir -p /data/node1
mkdir -p /data/node2
mkdir -p /data/arbiter
// 分别启动
mongod --replSet aha --dbpath /data/node1 --port 40001
mongod --replSet aha --dbpath /data/node2 --port 40002
mongod --replSet aha --dbpath /data/arbiter --port 40003
// 连接到node1
>rs.initiate({
"_id":"aha","members":[
{
"_id":0,"host":"server-1:40001"},
{
"_id":1,"host":"server-2:40002"},
{
"_id":2,"host":"server-3:40003","arbiterOnly":true}
]})
一个最小副本集就已经搭建好了,可以使用命令查看个节点状态(因为我早就搭好了,所以主机名等一些参数都不相符):
Thu Jan 05 2017 01:04:27 GMT+0900 (JST)>rs.status()
{
"set" : "kancolle",
"date" : ISODate("2017-01-04T16:04:34.978Z"),
"myState" : 2,
"term" : NumberLong(2),
"syncingTo" : "sagedeMac-mini.local:40001",
"heartbeatIntervalMillis" : NumberLong(2000),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(