数据库

 首页 > 数据库 > MongoDB > MongoDB数据库部署主从复制机制

MongoDB数据库部署主从复制机制

分享到:
【字体:
导读:
         摘要:副本集合(ReplicaSets),是一个基于主/从复制机制的复制功能,但增加了自动故障转移和恢复特性。一个集群最多可以支持7个服务器,并且任意节点都可以是主节点。所有的写操作都被分发到主节点,而读操作可以在任何节点上进行。环境:CentOS5.5x64md0110....

MongoDB数据库部署主从复制机制

副本集合(Replica Sets),是一个基于主/从复制机制的复制功能,但增加了自动故障转移和恢复特性。一个集群最多可以支持7个服务器,并且任意节点都可以是主节点。所有的写操作都被分发到主节点,而读操作可以在任何节点上进行。

环境:CentOS 5.5 x64

md01           10.0.0.11
md02           10.0.0.12
md03           10.0.0.14

把以上主机名对应IP 添加到hosts文件

方法一:设置优先级

启动各节点:
md01

    /elain/apps/mongodb/bin/mongod --rest --replSet elain/md01:27017 --master --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log
    md02
    /elain/apps/mongodb/bin/mongod --rest --replSet elain/md02:27017  --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log
    md03
    /elain/apps/mongodb/bin/mongod --rest --replSet elain/md03:27017  --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log

初始化节点:
md01:(登录其中任何一个节点操作皆可)

    mongo --port 27017
    > rs.initiate({
        _id : "elain",
        members : [
        {_id : 1, host : "md01:27017", priority:2},
        {_id : 2, host : "md02:27017", priority:3},
        {_id : 3, host : "md03:27017", priority:4},
        ]
        });


#priority 是设置优先级的,默认优先级为1,可以是1-1000的数字
注:通常在同一个交换机上,同一个网内,通常使用优先级来设置 副本集就已经足够使用了


方法二:添加仲裁节点(这里设置在md02):

启动各节点:
md01

    /elain/apps/mongodb/bin/mongod --rest --replSet elain/md01:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log
    md02
    /elain/apps/mongodb/bin/mongod --rest --replSet elain/md02:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log
    md03
    /elain/apps/mongodb/bin/mongod --rest --replSet elain/md03:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log

#启动仲裁节点
在md02上

    mkdir /elain/data/mongodb/arb
    /elain/apps/mongodb/bin/mongod --fork --rest --replSet elain --dbpath /elain/data/mongodb/arb --port 27015 --logpath /elain/logs/mongodb/mongodb.log

初始化节点:
md01:(登录其中任何一个节点操作皆可)

    > rs.initiate({
        _id : "elain",
        members : [
        {_id : 1, host : "md01:27017"},
        {_id : 2, host : "md02:27017"},
        {_id : 3, host : "md03:27017"},
        {_id : 4, host : "md02:27015", "arbiterOnly": true},
        ]
        });

#验证

    PRIMARY> rs.status()


也可浏览:http://10.0.0.11:28017/_replSet  查看状态
#设置从库可读(从库上执行)


    >rs.slaveOk();


查看副本集状态


    >rs.status()
    >user local;
    >rs.isMaster()
    >db.system.replset.find()


查看当前主库:


    >db.$cmd.findOne({ismaster:1});

MongoDB数据库部署主从复制机制
分享到:
MongoDB数据库服务器以及相关PHP扩展的安...
MongoDB数据库服务器以及相关PHP扩展的安装方法 刚接触mongoDB,一切从零开始。搞了一下午,搞定了安装,整理一下。 一.mongoDB的安装 我是在Linux下进行安装的,步骤如下: 1. 下载安装包 一定要注意自己的机器是32位还是64位,不然下来的包无法使用。我开始就是下错了包,安装后一执行就提示Floating poin...
使用Spring操作MongoDB数据库
使用Spring操作MongoDB数据库 Spring data 对MongoDB的操作也日趋成熟,只要配置好系统框架,其实后面的编码跟以前没什么区别,一样的实体,一样的查询。 使用Spring data 确保以下jar包被引用: spring-data-mongodb-1.0.0.RELEASE.jar spring-data-commons-1.2.0.RELEASE.jar aopalliance-1.0.0.jar comm...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……