1. 下载mongodb

下载地址:https://www.mongodb.org/dl/linux/x86_64-rhel62

2. 解压
tar zxf mongodb-linux-x86_64-rhel62-v3.2-latest.tgz
mv mongodb-linux-x86_64-rhel62-3.2.5-20-g07e21d8/ /usr/local/mongodb

3. 添加环境变量
echo "export PATH=$PATH:/usr/local/mongodb/bin" > /etc/profile.d/mongodb.sh
source /etc/profile.d/mongodb.sh

4. 创建mongodb组和用户
groupadd -r mongod && useradd -s /sbin/nologin -g mongod -r mongod

5. 创建mongodb数据库目录和日志目录并添加权限(目录改变启动脚本也需改变)
mkdir -p /home/mongodb/mongodata/
mkdir -p /home/mongodb/mongolog
chown -R mongod:mongod /home/mongodb/mongodata
chown -R mongod:mongod /home/mongodb/mongolog

6. 系统环境设置:
vim /etc/security/limits.conf
* soft nproc 640000
* hard nproc 640000
* soft nofile 640000
* hard nofile 640000

vim /etc/profile && source /etc/profile
ulimit -n 640000
ulimit -u 640000

7. 添加mongodb配置文件,并编辑profile文件
vim /etc/mongod_27018.conf
logpath=/home/mongodb/mongolog/mongod.log
logappend=true
fork=true
port=27018
dbpath=/home/mongodb/mongodata
pidfilepath=/home/mongodb/mongolog/27018.pid
oplogSize=4096
maxConns=640000
directoryperdb=true
nojournal=true
master=true
# source=192.168.131.130:27018
bind_ip=192.168.131.128

vim /etc/rc.d/rc.sysinit
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

8. 添加mongodb启动脚本,并设置为自启动
vim /etc/init.d/mongodb
chmod +x /etc/init.d/mongodb
chkconfig --add mongodb
chkconfig mongodb on

#!/bin/sh
# chkconfig: 2345 93 18
# description:MongoDB

#默认参数设置
#mongodb 家目录
MONGODB_HOME=/usr/local/mongodb

#mongodb 启动命令
MONGODB_BIN=$MONGODB_HOME/bin/mongod

#mongodb 配置文件
MONGODB_CONF=/etc/mongod_27018.conf

#mongodb PID
MONGODB_PID=/home/mongodb/mongolog/27018.pid

#最大文件打开数量限制
SYSTEM_MAXFD=640000

#mongodb 名字
MONGODB_NAME="mongodb"
. /etc/rc.d/init.d/functions

if [ ! -f $MONGODB_BIN ]
then
echo "$MONGODB_NAME startup: $MONGODB_BIN not exists! "
exit
fi


start(){
ulimit -HSn $SYSTEM_MAXFD
$MONGODB_BIN --config="$MONGODB_CONF"
ret=$?
if [ $ret -eq 0 ]; then
action $"Starting $MONGODB_NAME: " /bin/true
else
action $"Starting $MONGODB_NAME: " /bin/false
fi

}

stop(){
PID=$(ps aux |grep "$MONGODB_NAME" |grep "$MONGODB_CONF" |grep -v grep |wc -l)
if [[ $PID -eq 0 ]];then
action $"Stopping $MONGODB_NAME: " /bin/false
exit
fi
kill -HUP `cat $MONGODB_PID`
ret=$?
if [ $ret -eq 0 ]; then
action $"Stopping $MONGODB_NAME: " /bin/true
rm -f $MONGODB_PID
else
action $"Stopping $MONGODB_NAME: " /bin/false
fi

}

restart() {

stop
sleep 2
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $prog
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
esac

9. 启动mongodb,创建数据库用于测试
# service mongodb start
# mongo IP:PORT
> use test;
> db.doubi.insert({"name":"tutorials yiibai"})

10. 创建从服务器,步骤同上,更改配置文件
# vim /etc/mongod_27018.conf
logpath=/home/mongodb/mongolog/mongod.log
logappend=true
fork=true
port=27018
dbpath=/home/mongodb/mongodata
pidfilepath=/home/mongodb/mongolog/27018.pid
oplogSize=4096
maxConns=640000
directoryperdb=true
nojournal=true
slave=true
source=主ip:端口
bind_ip = 本机ip

11. 其他同主服务器一样配置即可,然后开启服务验证
出现Error: listDatabases failed:{ "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 }
说明从服务器不允许读写,可以执行以下命令解决。
> rs.slaveOk();

12. 从服务器需要注意更改端口号和启动脚本

logpath=/home/mongodb/mongolog/mongod.log
logappend=true
fork=true
port=27018
dbpath=/home/mongodb/mongodata
pidfilepath=/home/mongodb/mongolog/27018.pid
oplogSize=4096
maxConns=640000
directoryperdb=true
nojournal=true
#master=true
slave=true
source=117.78.1.xx:27018

13. 开启zabbix自定义监控mongodb
vim /usr/local/zabbix/etc/zabbix_agentd.conf
265行
UnsafeUserParameters=1
UserParameter=MongoDB.Status[*],/bin/echo "db.serverStatus().$1" | /usr/local/mongodb/bin/mongo localhost:30001 | grep -w "$2" |cut -d, -f1|cut -d: -f2

UserParameter=MongoDB.exist[*],/bin/echo "db.serverStatus()" | /usr/local/mongodb/bin/mongo localhost:30000 |tail -3|head -1|cut -d: -f1|grep -o ok

UserParameter=MongoDB.exist[*],/bin/echo "db.serverStatus()" |mongo localhost:30000 |tail -3|grep -o ok
ok

重启agentd
套用模板
服务端验证:
/usr/local/zabbix/bin/zabbix_get -s 10.124.156.251 -k MongoDB.Status[*]

mongodb主从数据同步的更多相关文章

  1. 减少mysql主从数据同步延迟

    网上给出的解决办法: 基于局域网的master/slave机制在通常情况下已经可以满足'实时'备份的要求了.如果延迟比较大,就先确认以下几个因素:1. 网络延迟2. master负载3. slave负 ...

  2. MongoDB 初始化数据同步

    MongoDB初始化数据同步: 副本集中的成员启动之后,就会检查自身的状态,确定是否可以从某个成员那里进行同步.如果不行的话,尝试从其他成员那里进行完整的数据复制. 这个过程就是初始化同步(initi ...

  3. logstash-out-mongodb实现elasticsearch到Mongodb的数据同步

    本文主要实现将Elasticsearch中的索引数据Index同步到Mongodb中的集合collection中. 0.前提 1)已经安装好源数据库:elasticsearch V2.X; 2)已经安 ...

  4. MySQL主从数据同步延时分析

    一.MySQL数据库主从同步延迟                                                              要了解MySQL数据库主从同步延迟原理,我们 ...

  5. mysql 主从数据同步配置

    一主一从,单向同步 master 数据库的数据变更单向同步到 slave 数据库 互为主从,双向同步 master 数据库的数据变更同步到 slave 数据库,slave 数据库的数据边同步到 mas ...

  6. Mysql主从数据同步cheksum问题

    做主从同步时出现问题,show slave status显示错误: Last_IO_Error: Got fatal error from master when reading data from ...

  7. 使用bind实现主从DNS服务器数据同步

    一.bind简介 Linux中通常使用bind来实现DNS服务器的架设,bind软件由isc(www.isc.org)维护.在yum仓库中可以找到软件,配置好yum源,直接使用命令yum instal ...

  8. Docker环境下的Mysql8 实现主从数据库数据同步方案

    本文记录下通过MySQL Replication在Docker环境下,通过多个容器 实现数据库主从配置. MySQL Replication就不多解释了,简单说就是MySQL非常出色的一个功能,该功能 ...

  9. Tapdata Real Time DaaS 技术详解 PART I :实时数据同步

      摘要:企业信息化过程形成了大量的数据孤岛,这些并不连通的数据孤岛是企业数字化转型的巨大挑战.Tapdata Real Time DaaS 采用的CDC模式,具有巨大的优势,同时是一个有技术壁垒的活 ...

随机推荐

  1. MySQL max_allowed_packet设置及问题

    MySQL根据配置文件会限制server接受的数据包大小. 有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败. 查看目前配置 show VARIABLES like ...

  2. loadrunner录制回放常见问题及解决办法

    1.录制错误    1)录制本机 WebTours 或录制本地网站无法打开    当 使 用 Vista 以 后 的 操 作 系 统 时 , 会 出 现 该 问 题 . 这 是 由 于 在 本 地Wi ...

  3. asp.net web常用控件FileUpload(文件上传控件)

    FileUpload控件的主要中能:向指定目录上传文件,该控件包括一个文本框和一个浏览按钮. 常用的属性:FileBytes,FileContent.FileName.HasFile.PostedFi ...

  4. ContentTools – 所见即所得(WYSIWYG)编辑器

    Content Tools是一个用于构建所见即所得编辑器(WYSIWYG)的 JavaScript 库.ContentTools 所见即所得的编辑器只需要几个简单的步骤就可以加入到任何的 HTML 页 ...

  5. Rainyday.js – 使用 JavaScript 实现雨滴效果

    Rainyday.js 背后的想法是创建一个 JavaScript 库,利用 HTML5 Canvas 渲染一个雨滴落在玻璃表面的动画.Rainyday.js 有功能可扩展的 API,例如碰撞检测和易 ...

  6. .Net资源总结

    源码文档见官方群(以下为7.4更新内容) 逆天工具 CDN 资源库 国内 Bootstrap中文网开源项目免费 CDN 服务 360网站卫士常用前端公共库CDN服务 百度静态资源公共库 新浪云计算CD ...

  7. CART(分类回归树)

    1.简单介绍 线性回归方法可以有效的拟合所有样本点(局部加权线性回归除外).当数据拥有众多特征并且特征之间关系十分复杂时,构建全局模型的想法一个是困难一个是笨拙.此外,实际中很多问题为非线性的,例如常 ...

  8. iOS自动化编译

    最近研究了一下iOS的自动化编译,目的是为了简化测试和开发的同学沟通协调的次数,实现测试同学可以随时从网页操作编译SVN最新源码并打包ipa进行测试. 具体思路是通过从配置文件读取需要编译的项目配置列 ...

  9. 基于XMPP的IOS聊天客户端程序

    简介:XMPP协议是一种基于Socket长连接.以XML格式进行基本信息交换.C/S S/S多种架构的聊天协议 XMPPServer 基于XMPP协议的服务端(例如eJabber.OpenFire) ...

  10. [Android]Activity跳转传递任意类型的数据、Activity为SingleTask时代替StartActivityForResult的解决方案

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4389674.html 需求:在ActivityA跳转到Acti ...