MongoDB在1.6版本对开发了新功能replica set,这比之前的replication功能要强大一些,增加了故障自动切换和自动修复成员节点,各个DB之间数据完全一致大大降低了维护成本。auto shard 已经明确说明不支持replication paris,建议使用replica set,replica set故障切换完全自动。
Replica Sets的结构非常类似一个集群,其中一个节点出现故障,其他节点马上会将业务接过来,无需停机操作。
部署Replica Sets
1. 创建数据库文件存储路径:
mkdir -p /data/data/r0
mkdir -p /data/data/r1
mkdir -p /data/data/r2
2. 创建日志文件路径
mkdir -p /data/log
3. 创建主从key文件,用于标识集群的私钥的完整路径,如果各个实例的key file内容不一致,则程序将不能正常使用。
mkdir -p /data/key
echo "this is rs1 super secret key" >/data/key/r0
echo "this is rs1 super secret key" >/data/key/r1
echo "this is rs1 super secret key" >/data/key/r2
chmod 600 /data/key/r*
4. 启动3个实例
mongod --replSet --KeyFile /data/key/r0 --fork --port 28010 --dbpath /data/data/r0 --logpath=/data/log/r0.log --logappend
mongod --replSet --KeyFile /data/key/r1 --fork --port 28011 --dbpath /data/data/r1 --logpath=/data/log/r1.log --logappend
mongod --replSet --KeyFile /data/key/r2 --fork --port 28012 --dbpath /data/data/r2 --logpath=/data/log/r2.log --logappend
5. 配置及初始化Replica Sets
# mongo -port 28010
> config_rs1 ={_id:'rs1',members:[ {_id:0,host:'localhost:28010',priority:1}, {_id:1,host:'localhost:28011'}, {_id:2,host:'localhost:28012'} ] }
>rs.initiate(config_rs1); 初始化配置
6. 查看复制集的状态
> rs.status()
还可以用isMaster查看Replica Sets的状态
rs1:PRIMARY> rs.isMaster()
MongoDB的Replica Sets的介绍和部署
最新推荐文章于 2024-11-19 20:31:39 发布