4台机器安装mongodb后,把4台机器的mongod启动,然后通过mongo连接你要做主机的mongo。
如以192.168.10.111:27017为主节点
master.conf配置
processManagement:
fork: true
net:
bindIp: 127.0.0.1,192.168.10.110,10.9.0.1,14.17.97.226
port: 27017
storage:
dbPath: /mnt/raid5/server/data/mongodb
systemLog:
destination: file
path: "/mnt/raid5/server/logs/mongodb/mongodb.log"
logAppend: true
logRotate: rename
storage:
journal:
enabled: true
replication:
replSetName: rs01
其他主机上mongo配置一样只需修改一下bindIP
#mongo 192.168.10.111:27017
然后修改mongodb配置
>use admin
>cfg={ _id:"rs01", members:[ {_id:0,host:'192.168.10.111:27017',priority:5}, {_id:1,host:'192.168.10.110:29017',priority:3},{_id:2,host:'192.168.10.112:27017',priority:2},{_id:3,host:'192.168.10.114:27017',arbiterOnly:true}] }
>rs.reconfig(cfg)
错误
> rs.reconfig(cfg)
{
"ok" : 0,
"errmsg" : "replSetReconfig should only be run on PRIMARY, but my state is REMOVED; use the \"force\" argument to override",
"code" : 10107
}
解决
> rs.reconfig(cfg,{"force":true})
错误
> rs.reconfig(cfg)
2016-04-23T15:41:01.557+0800 E QUERY    Error: Could not retrieve replica set config: {
"info" : "run rs.initiate(...) if not yet done for the set",
"ok" : 0,
"errmsg" : "no replset config has been received",
"code" : 94
}
at Function.rs.conf (src/mongo/shell/utils.js:1017:11)
at Function.rs.reconfig (src/mongo/shell/utils.js:969:22)
at (shell):1:4 at src/mongo/shell/utils.js:1017
解决
rs.initiate(cfg)
数值越大优先级越高,即priority值最大的为主节点
设置优先级
>use admin
>config=rs.conf()
>config.members[0].priority=5
>rs.reconfig(config,{force:true})
关闭mongod
#./mongo
>use admin
>db.shutdownServer()
启动mongodb脚本:
start_mongo_master.sh
#!/bin/sh
su mongodb -c "numactl --interleave=all /server/env/mongodb/bin/mongod --config /server/env/mongodb/mongod.conf --httpinterface --rest"

设置mongo打开文件数和打开程序书限制
/etc/pam.d/login文件中添加以下一行:
session    required     /lib64/security/pam_limits.so    //添加了这个,在limits.conf中添加限制用户资源马上生效

/etc/security/limits.conf文件添加以下限制
mongodb         soft    nofile          65535
mongodb         hard    nofile          65535
mongodb         soft    nproc           65536
mongodb         hard    nproc           65536

mongodb告警
2016-05-05T15:24:01.461+0800 I STORAGE  [initandlisten] 
2016-05-05T15:24:01.461+0800 I STORAGE  [initandlisten] ** WARNING: Readahead for /mnt/raid5/server/data/mongodb_master is set to 2048KB
2016-05-05T15:24:01.461+0800 I STORAGE  [initandlisten] **          We suggest setting it to 256KB (512 sectors) or less
2016-05-05T15:24:01.461+0800 I STORAGE  [initandlisten] **          http://dochub.mongodb.org/core/readahead
解决:
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0   1000204886016   /dev/sda
rw   256   512  4096       2048      2097152000   /dev/sda1
rw   256   512  4096    4098048     33554432000   /dev/sda2
rw   256   512  4096   69634048       209715200   /dev/sda3
rw   256   512  4096   70043648    964339925504   /dev/sda4
rw   256   512  4096          0   1000204886016   /dev/sdc
rw   256   512   512         63    500096991744   /dev/sdc1
rw   256   512  4096  976752000    500097024000   /dev/sdc2
rw   256   512  4096          0   1000204886016   /dev/sdb
rw   256   512   512         63    500096991744   /dev/sdb1
rw   256   512  4096  976752000    500097024000   /dev/sdb2
rw   2048   512  4096          0    999925219328   /dev/md0
把/dev/md0的readahead设置成256就行了
#blockdev --setra 256 /dev/md0
记得在rc.local中添加blockdev --setra 256 /dev/md0,要不然他每次都会恢复默认值

mongodb告警
** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
 **        We suggest setting it to 'never'

** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
**        We suggest setting it to 'never'
解决:
/etc/rc.local中添加
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
这两行

自动备份数据库脚本
#!/bin/sh
host=192.168.10.110
port=27017
cmdexec="/server/env/mongodb/bin/mongodump" 
db="Bigdata"
outdbpath="/server/backup/wechat_backup/"
Date=`date +%Y%m%d%H`
$cmdexec -h $host --port $port -d $db -o $outdbpath$db
tar zcvf $outdbpath$db$Date.tar.gz  $db
rm -rf  $db
自动清理最近三天备份数据脚本
#!/bin/sh
## clean for 3 days before ,which file have tar.gz
find ./ -name "*.tar.gz" -mtime +2 -exec rm -r {} \;
只有一个主机做mongo
#mongo --port 29017
>use admin
>cfg={_id:"rs1",members:[{_id:0,host:'192.168.0.212:29017',priority:1}]}
>rs.initiate(cfg)

现在mongo内存使用,mongodb3.2版本以上才有
storage:
    journal:
        enabled: true
        commitIntervalMs: 500
    directoryPerDB: true
    dbPath: "/server/env/mongodb-linux-x86_64-3.2.8/database"    
    engine: wiredTiger    
    wiredTiger:
        engineConfig:
            directoryForIndexes: true
            cacheSizeGB: 10
        collectionConfig:
            configString: "type=lsm"
        indexConfig:
            configString: "type=lsm"

mongodb实现一主两从一个仲裁者相关推荐

  1. 一主两从的环境,如果主库挂了,如何选举一个从库作为主库?

    一主两从的环境,如果主库挂了,如何选举一个从库作为主库? 如图: 如果M挂了,怎么从S1和S2中选举一个从库作为主库? 传统复制的解决方法 (1)查看从库状态: S1:show slave statu ...

  2. MongoDB副本集(一主一备+仲裁)环境部署

    https://www.cnblogs.com/kevingrace/p/7881496.html, https://blog.csdn.net/com_it/article/details/8470 ...

  3. mysql一主两从_MySQL 网络延迟参数设置建议

    点击上方"数风云"关注我们吧! 文/毛思平 近期投产的MySQL数据库集群偶尔出现节点被逐出集群的情况,怀疑是网络抖动导致的.查询官方文档发现,MySQL 8.0.13版本引入集群 ...

  4. 一台服务器上使用docker安装redis6.0.10一主两从以及哨兵模式

    查看redis官网,发现新版稳定为:redis6.0.10 先决条件: 服务器使用我的阿里云服务器:CentOS 7.6 64位 安装docker环境:https://blog.csdn.net/we ...

  5. 设计模式之简单化_Mediator中介者模式_只有一个仲裁者

    前言 博主github 博主个人博客http://blog.healerjean.com 1.解释 想象一个乱糟糟的开发小组的工作状态,组员之间虽然在一起协同工作,但是意见难以统一,总是相互指挥,导致 ...

  6. 感谢题主给我一个反思失败的机会。

    作者:袁力 链接:https://www.zhihu.com/question/26551354/answer/33199798 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  7. MySQL:一主两从架构(读写分离)

    文章目录 1. 主从同步原理 1.1 基本原理 1.2 具体步骤 2. 开始一主两从配置 2.1 服务器规划 2.2 环境需要 2.3 配置master 2.4 配置slave1 2.5 配置slav ...

  8. 基于 Docker 搭建 MySQL 一主两从复制

    在Docker中搭建MySQL 一主两从复制 搭建环境 Centos 7.5 64位 MySQL 5.7.13 Docker 1.13.1 接下来,我们将会在一台服务器上安装docker,并使用doc ...

  9. ADG架构搭建4 -- 搭建一主两备ADG架构

    本文接该系列文章的上一篇:ADG架构搭建3 – 一主一备ADG主备切换 前言 请先参照文章<ADG架构搭建1–Oracle安装>完成第三台服务器的Oracle安装. 本文将完成的ADG架构 ...

最新文章

  1. python应该怎么自学-我是一个毫无基础的菜鸟,想自学Python,该怎么入手?
  2. Bear and Strings
  3. ITK:读未知的图像类型
  4. rocketmq批量消费
  5. java shiro实例_spring+shiro 整合实例代码详解
  6. Java实验9 T6.将对象和数组存储在dat文件中
  7. jquery ajax get 数组参数
  8. hdu1865 1sting
  9. 批量生成横断面_批量生动生成填充图案的边界线
  10. 修改MAC地址的方法(未测试)
  11. wincc版本升级_wincc组态软件下载
  12. hdu 6202 cube cube cube
  13. 子网掩码是什么,IP段的24是什么写法(CIDR写法,斜杠记法斜线记法)
  14. 一文简单理解反向代理和正向代理模型
  15. AlexNet模型详细分析
  16. 【Linux】SSH相关命令
  17. 安全研究 # 课题:二进制成分分析(Binary SCA)
  18. pycharm重命名后无法运行(报错: can‘t open file......No such file or directory)
  19. 【教程】Chrome浏览器添加迅雷下载支持
  20. 拉普拉斯特征映射(Laplacian Eigenmaps)

热门文章

  1. java程序模拟手机
  2. Maple: 矩阵转置
  3. 【MySQL数据库】 - 复杂查询(二)
  4. 英特尔芯片漏洞比想象中更严重:控制计算机无需密码
  5. 智慧工厂是什么 智慧工厂方案举例 智慧工厂案例
  6. iphoneipad图标尺寸
  7. VO,DTO,BO,POJO,PO的概念介绍
  8. Stimulsoft Reports.Java 2022.2.3 Crack
  9. ImageNet中英文类别对照
  10. Linux下RTL8723BE无线网卡驱动问题解决方法(转载)