1、下载MongoDB安装文件:mongodb-linux-x86_64-3.2.1.tgz(版本随意);
2、解压安装MongoDB:tar -zxvf mongodb-linux-x86_64-3.2.1.tgz -C /指定路径 (我的路径:/app/hems/mongo/)
3、复制两份数据实例,并重命名(搭建主--从--仲裁)结构,并新建conf、data、log目录,结构如下图:
4、data目录下 新建 db1、db2、db3目录(存放各自数据库文件)
5、log目录下 新建mongod1.log、 mongod2.log、mongod3.log文件(作为各自数据库的日志存放文件)
6、conf目录下,新建mongo1.conf、mongo2.conf、mongo3.conf 文件配置mongo数据库信息
具体配置如下(配置含义百度不赘述):
mongo1.conf(mongo2.conf、mongo3.conf 文件配置只是端口号不同(60002 60003))
replSet = shard1
port = 60001
dbpath = /app/hems/mongo/data/db1
logpath = /app/hems/mongo/log/mongod1.log
logappend = true
fork = true
oplogSize = 30720
7、通过配置文件分别启动数据库
进入mongodb_1\bin 目录,执行命令:numactl --interleave=all mongod --config /app/hems/mongo/conf/mongo1.conf
进入mongodb_2\bin 目录,执行命令:numactl --interleave=all mongod --config /app/hems/mongo/conf/mongo2.conf
进入mongodb_3\bin 目录,执行命令:numactl --interleave=all mongod --config /app/hems/mongo/conf/mongo3.conf
启动完成;
8、配置主、从、仲裁节点
进入mongodb_1\bin 目录,执行命令:
#连接到主节点
./mongo --port 60001
#连接admin库
use admin
#配置角色
config={_id:'shard1',members:[{_id:0,host:'127.0.0.1:60001'},{_id:1,host:'127.0.0.1:60002'}]}
rs.initiate(config)
rs.addArb("127.0.0.1:60003")
#修改主节点优先级:
config=rs.conf();
config.members[0].priority = 2;
rs.reconfig(config);
副本集搭建完成;
9、测试
登陆主节点(60001端口),进入mongodb_1\bin 目录,执行命令:
./mongo --port 60001
use admin;
db.shutdownServer();
登陆从节点(60002端口),进入mongodb_2\bin 目录,执行命令:
./mongo --port 60002
#查看角色信息是否已经从Secondary转变成primary
rs.stauts()