一、关于 MongoDB复制集
	1、什么是复制集  二、MongoDB复制集部署
	1、配置yum源 
mkdir -p /data/mongodb/mongodb{2,3,4}   //创建数据目录
cd /data
mkdir logs  
touch logs/mongodb{2,3,4}.log   //创建日志文件
cd logs/
chmod 777 *.log //赋予权限
cp -p /etc/mongod.conf /etc/mongod2.conf        //复制主配置文件
cp -p /etc/mongod.conf /etc/mongod3.conf
cp -p /etc/mongod.conf /etc/mongod4.conf
vi /etc/mongod2.conf    //依次修改主配置文件(注意文件的名称不一样)
	 mongod -f /etc/mongod.conf //进入对应的实列 mongod -f /etc/mongod2.conf mongod -f /etc/mongod3.conf mongod -f /etc/mongod4.conf 4、配置三个节点的复制集 
mongo   //进库
cfg={"_id":"kgcrs","members":[{"_id":0,"host":"192.168.80.100:27017"},{"_id":1,"host":"192.168.80.100:27018"},{"_id":2,"host":"192.168.80.100:27019"},{"_id":3,"host":"192.168.80.100:27020"}]} //将另外三个节点添加到复制集
rs.initiate(cfg)        //初始化复制集配置
rs.status() //查看复制集的状态
	 
rs.remove("192.168.80.183:27020")       //删除节点
rs.add("192.168.80.183:27020")      //添加节点
5、验证复制集 
use test
db.a.insert({"id":1,"name":"jack"})
db.a.find()
去其他节点依次查看验证 mongo -port 27018 show dbs 
	 三、MongoDB复制切换1、故障自动切换 mongod -f /etc/mongo.conf --shutdown //模拟了模拟故障点 mongdo -port 27018 //进入新的主节点 rs.status() //查看复制集状态 
	 mongdo -port 27018 //进入主节点 rs.stepDown(60,30) //交出主节点位置 rs.status() //查看状态 
	 四、MongoDB复制选举
	1、虚拟机还原重复上述安装mongoDB并添加多实例 
mongo   //进库
cfg={"_id":"kgcrs","members":[{"_id":0,"host":"192.168.80.100:27017","priority":100},{"_id":1,"host":"192.168.80.100:27018","priority":100},{"_id":2,"host":"192.168.80.100:27019","priority":0},{"_id":3,"host":"192.168.80.100:27020","arbiterOnly":true}]}       //指定复制节点给的属性(priority为100:标准节点,priority为0:被动节点,arbiterOnly:仲裁节点)
rs.initiate(cfg)        //初始化配置
rs.isMaster()   //查看个点节点属性
	 use local show collections //查看集合 
	 mongod -f /etc/mongod.conf --shutdown //模拟标准节点1故障 mongo --port 27018 //进入第二个准备节点验证是否被选举为主节点 
	 mongod -f /etc/mongod2.conf --shutdown //模拟标准节点2故障 mongo --port 27019 //进入被动节点验证,此时被动节点不能成为主节点 
	4、允许从节点读取数据 rs.slaveOk() //允许从节点读取数据 show dbs; //允许默认从节点读取数据 
	 rs.help() //查看 rs.printReplicationInfo() //查看复制集信息 
	 use local db.oplog.rs.stats() //查看操作复制操作的状态 
	 
use admin   //进入管理库
db.shutdownServer() //关闭注销复制集相关启动参数
vi /etc/mongod.conf //修改端口为27028并注释复制集参数
mongod -f /etc/mongod.conf      //单实例启动
mongodump --port 27028 --db local --collection 'oplog.rs'   //备份操作日志
mongo --port 27028
> use local
> db.oplog.rs.drop()    //删除日志文件
> db.runCommand( { create: "oplog.rs", capped: true, size: (2 * 1024 * 1024 * 1024) } ) //重新创建日志文件并且指定大小
> use admin
> db.shutdownServer()   //关闭节点服务
	方法二: mongod -f /etc/mongod.conf //重新启动 mongo //进入实例验证 
	 mongo --port 27018 //进入主节点 rs.stepDown() //放弃选举权 
	 五、部署认证复制vi /etc/mongod.conf vi /etc/mongod2.conf vi /etc/mongod3.conf vi /etc/mongod4.conf //依次打开安全认证模块 
	 
cd /usr/bin/    //进入bin目录
echo "kgcrs key"> kgcrskey1 //创建认证文件
echo "kgcrs key"> kgcrskey2
echo "kgcrs key"> kgcrskey3
echo "kgcrs key"> kgcrskey4
chmod 600 kgcrskey{1..4}    //更改权限
	四个实例依次进行重启 
	kgcrs:PRIMARY> use admin #身份登录验证 
	kgcrs:PRIMARY> rs.status() #可以查看数据库  | 
    



























