设为首页 收藏本站
查看: 1150|回复: 0

[经验分享] mongodb主从模式部署

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-2-15 11:08:49 | 显示全部楼层 |阅读模式
mongodb部署采用主从模式,主节点为:peiwo-turn4,从节点为peiwo-proxy
1、创建部署用户与部署路径、日志、数据存放路径
在peiwo-proxy主机上执行以下操作
groupadd mongodb
useradd -g mongodb -d /usr/local/mongodb mongodb
mkdir -p /data0/mongodb/logs  #日志文件存放路径
mkdir -p /data0/mongodb/data/master #数据文件存放路径
mkdir -p /data0/mongodb/pid #pid文件存放路径
mkdir -p /usr/local/mongodb/etc #配置文件存放路径
日志、数据存放路径授权:chown -R mongodb.mongodb /data0/mongodb

在peiwo-turn4主机上执行以下操作
groupadd mongodb
useradd -g mongodb -d /usr/local/mongodb mongodb
mkdir -p /data1/mongodb/logs  #日志文件存放路径
mkdir -p /data1/mongodb/data/master #数据文件存放路径
mkdir -p /data1/mongodb/pid #pid文件存放路径
mkdir -p /usr/local/mongodb/etc #配置文件存放路径
日志、数据存放路径授权:chown -R mongodb.mongodb /data1/mongodb

2、下载软件并解压
curl -O http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.3.tgz && tar -zxvf mongodb-linux-x86_64-1.6.3.tgz -C /usr/local/mongodb

3、在/usr/local/mongodb/etc下新增配置文件
peiwo-turn4主机配置文件如下:master.conf
dbpath=/data1/mongodb/data/master
logpath=/data1/mongodb/logs/master.log
pidfilepath=/data1/mongodb/pid/master.pid
directoryperdb=true
logappend=true
port=21000
master = true
source=10.144.160.124:21000
oplogSize=100
fork=true
noprealloc=true


peiwo-proxy主机配置文件如下:slave.conf
dbpath=/data0/mongodb/data/slave
logpath=/data0/mongodb/logs/slave.log
pidfilepath=/data0/mongodb/pid/slave`.pid
directoryperdb=true
logappend=true
port=21000
slave = true
source=10.144.145.235:21000
oplogSize=100
fork=true
noprealloc=true
autoresync=true

4、启动/停止/进程查看
登陆mongodb服务器,切换到mongodb用户:su - mongodb
启动进程:./start.sh
停止进程:想结束mongodb,可以killall mongod,或者./mongo在控制台中,use admin  ,然后db.shutdownServer()来结束mongodb服务器。直接kill -9会使mongo非正常退出,可能会造成数据损坏问题。
查看进程运行状态:./ps.sh
查看日志:./taillog.sh
登陆mongodb客户端:./connect.sh




主从日常运维命令:


1、如果发现主从不同步,从上手动同步
db.runCommand({"resync":1})
2、状态查询
db.runCommand({"isMaster":1})  

3、在丛库上查询主库地址
> use local;
switched to db local
> db.sources.find();
{ "_id" : ObjectId("5551769ddf22026a698a271d"), "host" : "10.144.145.235:21000", "source" : "main", "syncedTo" : Timestamp(1431510735, 1) }

4、查看各Collection状态
db.printCollectionStats();

5、查看主从复制状态
db.printReplicationInfo();

6、测试主从
在主服务器新建数据库
mongo --port 21000
>show dbs
>use elaindb
>db.blog.save({title:"new article"})
在从服务器上查看同步数据
mongo --port 21000
在从库插入数据的操作 会提示 not master
> use elaindb;
switched to db elaindb
> db.blog.find();
{ "_id" : ObjectId("4e9174b48443c8ef12b30c56"), "title" : "new article" }
查看主从同步信息:
> db.printReplicationInfo();
this is a slave, printing slave replication info.
source:   10.0.0.11:27001
         syncedTo: Sun Oct 09 2011 18:37:12 GMT+0800 (CST)
                 = 19 secs ago (0.01hrs)

>db.printSlaveReplicationInfo();
此为同步过来的数据,测试成功


7、Slave 顶替 Master
如果主服务器 10.144.145.235宕机了,
此时需要用 10.144.160.124机器来顶替 master 服务,

步骤如下:
停止 10.144.160.124 进程(mongod)
kill -2 `ps -ef|grep mongod|grep -v grep|awk '{print $2}'`
#删除 10.144.160.124 数据目录中的 local.*
rm -rf /data1/mongodb/data/master//local.*
#以--master 模式启动 10.144.160.124



附录二、切换Master/Slave 角色
切换主库10.144.145.235和从库10.144.160.124 的角色

步骤如下:(命令略)

用fsync 命令暂停 主库 上的写操作,
关闭 从库 上的服务
清空 从库 上的local.*文件
用-master 选项重启 从库 服务
在 从库 上执行一次写操作,初始化oplog,获得一个同步起始点
关闭 从库 服务,此时 从库 已经有了新的local.*文件
关闭 主库 服务,并且用 从库 上新的local.*文件来代替 主库 上的local.*文件(建议先压缩再COPY)
用-master 选项重启 从库 服务
在启动slave的选项上加一个-fastsync 选项来重启 主库 服务


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-178145-1-1.html 上篇帖子: mongodb用户权限配置 下篇帖子: mongodb在secondary不能直接获取primary的信息解决方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表