主从复制集群

主从复制是 MongoDB 数据库一种特性,它通过数据备份来提高数据库的容灾能力

但是由于主从复制并不能自动实现故障转移的特性,MongoDB 在 1.6 版本开发了新的复制模式:Replicate Sets;MongoDB 建议不要再使用 Master-Slave 模式对数据进行备份

启动主节点(Master)的服务器

mongod --dbpath /data/master --port 10000 --master

启动从节点(Slave)的服务器

mongod --dbpath /data/slave --port 10001 --slave --source localhost:10000 \
--atuh --keyFile=/tmp/mongo-keyfile

测试主从复制(Master-Slave)是否生效,打开 Master 数据库,插入一条测试语句:

db.test.find();
db.test.insert({host”:“1000});
db.test.find();

使用 mongo localhost:10001 打开 Slave 数据库,运行 db.test.find() 会发现查询出来的数据与从 Master 数据库中查询的数据相同;

运行 db.test.insert({"girl":"lili"}); 则会显示 not master。这是因为主从复制模式只允许从 Master 数据库更新数据,而不允许从 Slave 数据库更新数据。正因此,当 Master 发生故障时,从节点无法转换为主节点的劣势就暴漏了出来