mongodb主从数据同步
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主从数据同步的更多相关文章
- 减少mysql主从数据同步延迟
网上给出的解决办法: 基于局域网的master/slave机制在通常情况下已经可以满足'实时'备份的要求了.如果延迟比较大,就先确认以下几个因素:1. 网络延迟2. master负载3. slave负 ...
- MongoDB 初始化数据同步
MongoDB初始化数据同步: 副本集中的成员启动之后,就会检查自身的状态,确定是否可以从某个成员那里进行同步.如果不行的话,尝试从其他成员那里进行完整的数据复制. 这个过程就是初始化同步(initi ...
- logstash-out-mongodb实现elasticsearch到Mongodb的数据同步
本文主要实现将Elasticsearch中的索引数据Index同步到Mongodb中的集合collection中. 0.前提 1)已经安装好源数据库:elasticsearch V2.X; 2)已经安 ...
- MySQL主从数据同步延时分析
一.MySQL数据库主从同步延迟 要了解MySQL数据库主从同步延迟原理,我们 ...
- mysql 主从数据同步配置
一主一从,单向同步 master 数据库的数据变更单向同步到 slave 数据库 互为主从,双向同步 master 数据库的数据变更同步到 slave 数据库,slave 数据库的数据边同步到 mas ...
- Mysql主从数据同步cheksum问题
做主从同步时出现问题,show slave status显示错误: Last_IO_Error: Got fatal error from master when reading data from ...
- 使用bind实现主从DNS服务器数据同步
一.bind简介 Linux中通常使用bind来实现DNS服务器的架设,bind软件由isc(www.isc.org)维护.在yum仓库中可以找到软件,配置好yum源,直接使用命令yum instal ...
- Docker环境下的Mysql8 实现主从数据库数据同步方案
本文记录下通过MySQL Replication在Docker环境下,通过多个容器 实现数据库主从配置. MySQL Replication就不多解释了,简单说就是MySQL非常出色的一个功能,该功能 ...
- Tapdata Real Time DaaS 技术详解 PART I :实时数据同步
摘要:企业信息化过程形成了大量的数据孤岛,这些并不连通的数据孤岛是企业数字化转型的巨大挑战.Tapdata Real Time DaaS 采用的CDC模式,具有巨大的优势,同时是一个有技术壁垒的活 ...
随机推荐
- ThinkCMF-smeta扩展字段
ThinkCMF - 添加文章功能 没有上传文件功能,为了扩展这一功能,在页面加入如下代码: <tr> <td> <div style="text-align: ...
- Cookie——Javascript
基本的cookie操作有三种:读取.写入.删除. var CookieUtil = { //根据cookie的name获取相应的value.它会在document.cookie字符串中查找cookie ...
- Bug管理工具之Mantis_配置篇
角色管理员.经理.开发人员.修改人员.报告人员.查看人员,权限从大到小递减.分配: My View Settings 'assigned' => '1', 'unassigned' => ...
- 从web编辑器 UEditor 中单独提取图片上传,包含多图片单图片上传以及在线涂鸦功能
UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码.(抄的...) UEditor是非常好用的富文 ...
- Wowza® Media Systems 使用配置手册。
准备 1,先安装Java:http://www.java.com/zh_CN/ 2,官网下载安装:http://www.wowza.com/pricing/installer ,需要输入用户名邮箱等信 ...
- PHP插入header('content-type:text/html;charset="utf-8')和error_reporting()
1.header PHP文件插入header("Content-type: text/html; charset=utf-8");相当于页面里面的<meta http-equ ...
- ASP.NET使用jQuery AJAX实现MD5加密实例
一个asp.net ajax例子,使用jquery,实现md5加密.在.NET 4.0,Visual Studio 2010上成功运行. 效果体验:http://tool.keleyi.com/t/m ...
- ArcGIS空间分析工具
1. 3D分析 1.1. 3D Features toolset 工具 工具 描述 3D Features toolset (3D 要素工具集) Add Z Information 添加 Z 信息 添 ...
- ARP投毒及其防御方法
1.攻击原理 ARP欺骗就是中间人欺骗pc机,告诉pc机它是服务器.再欺骗服务器,告诉服务器它就是pc机.以致获取服务器与pc机的会话信息. 中间人欺骗服务器时,会给服务器发一个报文,发之前把报文中的 ...
- sharepoint 修改AD密码
sharepoint 修改AD密码 下面是添加添加“空元素”代码: 第一个<CustomAction>是添加修改密码项目 第二个<CustomAction>是添加js修改脚本 ...