mongoDB系列之(二):mongoDB 副本集
副本集有以下特点:
1. 最小构成是:primary,secondary,arbiter,一般部署是:primary,2 secondary。
2. 成员数应该为奇数,如果为偶数的情况下添加arbiter,arbiter不保存数据,只投票。
3. 最大50 members,但是只能有 7 voting members,其他是non-voting members。
注意:配置mongo副本集的时候,不能先添加登陆授权用户,但是可以先修改端口号。
修改每一台机器的配置文件/etc/mongo.conf,增加副本集名称
#replSet=setname replSet=wangyunpeng
然后重起每一台mongo的服务
service mongod stopservice mongod start
此时再通过MongoVUE工具访问每一个mongo服务器里面的集合,会提示:cannot currently read from this replSet *****错误。
在其中一台数据的节点上登陆mongodb数据库
mongo 127.0.0.1:27017/admin
指定副本集的名字为wangyunpeng和数据节点、仲裁者
查看成功之后的机器信息
仲裁者的信息
配置玩副本集之后开始用户认证,需要配置两个用户,一个是系统用户,一个是数据库管理员用户。配置完之后,配置信息将同步到其他节点。
配置完用户验证之后,停掉副本集,先用openssl生成密码文件,
openssl rand -base64 741 > mongodb-keyfile
赋予权限600,文件才能被调用
chmod 600 mongodb-keyfile
保存好文件,修改所有者和所有组,
chown -R mongod:mongod mongodb-keyfile
然后在节点配置文件加入启动调用认证文件参数 vim /etc/mongo.conf,如:
keyFile = /data/mongo/mongodb-keyfile
然后将mongodb-keyfile逐一拷贝到每一个从的机器上,然后启动副本,只用经过密码文件认证的节点才能加入。数据库操作也需要密码认证,大大提高了安全性。
cd /data/mongo/ openssl rand -base64 741 > mongodb-keyfile chmod 600 mongodb-keyfile chown -R mongod:mongod mongodb-keyfile vim /etc/mongo.conf keyFile=/data/mongo/mongodb-keyfile
这样就不用修改/etc/mongo.conf文件的nuauth=false和auth=true也能行了,修改也没有错。