mongodb主从部署超级简单:主启动时指定master标识,从启动指定slave标识和需要同步的对象(主的地址+端口)
读大于写;一般比例:8:1主从解决读写压力,主的备份。部署安装2个mongodb实例;分别为主服务器,和备服务器
mkdir -p /app/mongodb/cluster/master_mongodb/{log,db,install}wget -P /app/mongodb/cluster/master_mongodb/install/ https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.16.tgzcd /app/mongodb/cluster/master_mongodb/install/ && tar -xvzf mongodb-linux-x86_64-3.2.16.tgz && rm -rf mongodb-linux-x86_64-3.2.16.tgzmv mongodb-linux-x86_64-3.2.16 ../mongodb && cd /app/mongodb/cluster/cat > /app/mongodb/cluster/master_mongodb/mongodb/mongodb.conf << EOFdbpath=/app/mongodb/cluster/master_mongodb/dblogpath=/app/mongodb/cluster/master_mongodb/log/mongodb.logport=27017fork=truenohttpinterface=truebind_ip = 0.0.0.0EOF#####################################cp -a /app/mongodb/cluster/master_mongodb /app/mongodb/cluster/slave_mongodbcat > /app/mongodb/cluster/slave_mongodb/mongodb/mongodb.conf << EOFdbpath=/app/mongodb/cluster/slave_mongodb/dblogpath=/app/mongodb/cluster/slave_mongodb/log/mongodb.logport=27018fork=truenohttpinterface=truebind_ip = 0.0.0.0EOF
1. 开启master服务器:
/app/mongodb/cluster/master_mongodb/mongodb/bin/mongod --master -f /app/mongodb/cluster/master_mongodb/mongodb/mongodb.confmaster 标记自己是master服务器。port 指定自己的端口,默认是27017
2. 开启slave服务器:
/app/mongodb/cluster/slave_mongodb/mongodb/bin/mongod --slave --source=127.0.0.1:27017 -f /app/mongodb/cluster/slave_mongodb/mongodb/mongodb.conf slave: 标记自己是slave服务器。。source: 标记我需要同步的服务器是谁??? 指定的ip。port: 开启自己的端口,千万不能和master重复。
3.从节点常用选项:
only 指定某一个数据同步slavedelay 当主节点操作时,从节点延迟同步;秒级别延迟。 fastsync 以主节点的数据快照启动从节点同步。比如主节点数据完整,从节点是新库时候进行完整同步速度很快。 autoresync 如果住从节点不同步了,那么自动重新同步。oplogSize 主节点的oplog大小。
4.登录查看日志
登录master /app/mongodb/cluster/master_mongodb/mongodb/bin/mongo 127.0.0.1:27017查看日志:tail -f /app/mongodb/cluster/master_mongodb/log/mongodb.log登录slave/app/mongodb/cluster/slave_mongodb/mongodb/bin/mongo 127.0.0.1:27018查看日志:tail -f /app/mongodb/cluster/slave_mongodb/log/mongodb.log
5.默认情况下从是不支持读的。需要在从上面执行: rs.slaveOk()
> rs.slaveOk()> show dbs;local 0.000GBwangyunlong 0.000GB> db.printReplicationInfo();this is a slave, printing slave replication info.source: 127.0.0.1:27017 syncedTo: Thu Mar 28 2019 14:35:42 GMT+0800 (CST) 8 secs (0 hrs) behind the freshest member (no primary available at the moment)
6.主从常用命令:
db.runCommand({"isMaster":1}) #查询自己是不是master在丛库上查询主库地址use local;db.sources.find();#查看主从复制状态db.printReplicationInfo();mongoDB主从目前不推荐。可利用副本集实现。
Mongod主从复制 https://www.cnblogs.com/shiyiwen/p/5562758.htmlhttps://www.cnblogs.com/kevingrace/p/8184087.html