MongoDB安装及复制集搭建

安装

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.2.6.tgz

tar zxvf mongodb-linux-x86_64-2.2.6.tgz

mv mongodb-linux-x86_64-2.2.6 mongodb

cd mongodb

mkdir log           # 添加日志文件目录

mkdir data        # 添加数据目录

mkdir conf        # 添加配置文件目录

mkdir arbiter   # 添加仲裁服务目录

配置文件

进入mongodb下的conf目录

新建mongod.conf

编辑mongod.conf,在其中添加如下内容:

# mongod.conf

logpath = /data/mongodb/log/mongod.log    # 日志输出目录

logappend = true                                                    # 如果为false日志会覆盖

fork = true                                                                # true为后台运行

quiet = true                                                              # 安静输出

port = 27017                                                            # 端口

maxConns = 1024                                                   # 最大连接数

directoryperdb = true                                            # 是否按数据库分目录存放数据

dbpath = /data/mongodb/data                          # 数据目录

autoresync = true                                                   # 如果从库与主库同步数据差得多,自动重新同步

oplogSize = 1024                                                     # 日志大小(单位M

replSet = replSet1                                                   # 复制集名称

rest = true                                                                # 开启简单的rest API

journal = true                                                           # 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里

fastsync=true                                                          # 从一个dbpath里启用从库复制服务,该dbpath的数据库是主库的快照,可用于快速启用同步

权限和分组

chown -R root.root mongodb

chmod -R 755 mongodb

启动服务

cd mongodb/bin/

./mongod -f /data/mongodb/conf/mongod.conf

启动仲裁服务

如果一个复制集里节点数小于3个则需要通过添加仲裁节点的方式使节点总数保持在3个或3个以上,否则当有节点掉电时无法竞选新的PRIMARY

cd mongodb/bin/

./mongod -replSet replSet1 -port 27018 -dbpath /data/mongodb/arbiter/ -logpath /data/mongodb/arbiter/arbiter.log -logappend -quiet -fork

停止服务

关闭MongoDB服务请进入mongo shell执行如下命令:

配置复制集

例如,已经按上述方法部署了3MongoDB服务:220.181.154.204220.181.154.205220.181.154.206

则打开任意一个MongoDB的客户端,按下述红色字体部分进行配置,其中'replSet1'为复制集名称,host对应复制集中各节点的地址和端口

cd mongodb/bin/

./mongo

cfg={_id:'replSet1',members:[

{_id:1,host:'220.181.154.204:27017'},

{_id:2,host:'220.181.154.205:27017'},

{_id:3,host:'220.181.154.206:27017'}]

};

rs.initiate(cfg);

出现下面信息则配置成功:

{

         "info" : "Config now saved locally.  Should come online in about a minute.",

         "ok" : 1

}

添加节点:

rs.add("220.181.154.204:27017");

添加仲裁节点:

rs.addArb("220.181.154.204:27018");

查看复制集状态:

rs.status();

设置从库可查询

 

通过shell查询从库可在从库shell中执行如下命令:

rs.slaveOk()

注:复制集中默认从库不可读写,想要查询从库必须对每个会话进行如上设置后才能查询

通过代码查询从库需在mongodb连接配置中进行如下配置:

<mongo:mongo

replica-set="220.181.154.204:27017,220.181.154.205:27017, 220.181.154.204:27018">

<mongo:options slave-ok="true"/>

</mongo:mongo>

注:以上所有红色字体部分请根据实际情况进行修改


转载于:https://my.oschina.net/zmf/blog/468490

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值