MongoDB的Master-Slave主从模式配置及主从复制要点解析_MongoDB

主从配置
mongodb的master-slave模式配置方式如下
1.keyFile
生成key_file

 openssl rand -base64 741 > mongo_key

将mongo_key 分别置于master 和 slave mongodb user可以access的地方。
设置权限

chmod 700 mongo_key

设置

onwer chown mongodb:nogroup mongo_key

2.master配置
编辑/etc/mongodb.conf, 设置如下

master = true
keyFile = /path/to/mongo_key

3.slave 配置

slave = true
source = <ip of master>
only = bookstore
keyFile = /usr/local/bookstore/mongo_key

如果只同步一个db,配置only项,如果多个DB需同步,注释掉only项。
以上设置完毕后即可启动master和slave了,如果配置有误会启动失败,比如key_file权限不正确,具体错误可以查看/var/log/mongodb/mongodb.log。如无误,即可在master上修改一些记录进行验证了。
4.配置更改
master-slave配置比较简单,但要修改已经运行正确的配置缺不是想象的那么简单。例如要更改master地址,或者去除only配置。因为mongodb启动时,会将配置写入DB中,master的配置在local DB的slaves表中, slave的配置在local DB的sources表中。如果单独更改conf文件,直接重启会失败,log中显示和DB中的配置冲突。如果直接修改local DB,修改会很快被覆盖。
5.操作办法
取消slave配置重启。即注释掉slave = true这一行。
手动修改sources表,例如更改master 的ip或者去除only 项。
修改conf文件,打开slave = true,并修改其他项,例如更改master 的ip或者去除only 项。
再次重启mongodb。
6.其他问题
手动强制同步:
如果slave因为特殊原因和master不同步,需要手动强制同步,方法为在slave上运行如下命令:

use admin
db.runCommand( { resync: 1 } )

如果数据落后较多,则需要较长时间。

主从同步要点解析
主服务器和从服务器必须开启安全认证:--auth, 主服务器和从服务器的admin数据库中必须有全局用户, 然后主服务器的local数据库和从服务器的local数据均有名为repl且密码相同的用户名。
注:local:本地数据库 这个数据库不会同步,主要存放同步的信息。在MongoDB2.0.2版本测试时,从服务器的admin数据库中没有全局用户时也能进行复制(Deven:我们就是采用这个方式,
从服务器admin数据库没有建立用户),尽管admin中无用户,客户端连接此服务器不进行验证(即--auth参数失效),但从服务器的--auth必须指定。既然启用了--auth,就应该在从服务器的admin中增加一个用户。

首先要在master的local数据库中创建名为repl的账户,并设置密码;
从服务器上和master一样 创建名为repl的账户,并设置和master上一样的密码;
然后创建一个全局账户(管理账户,开启同步即可)
1.创建一个全局账户

> use admin
switched to db admin
> db.addUser("root","zhuima")
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "root", "roles" : [ "root" ] }

2.分别在master/slave的local数据库下创建一个名为repl的账户,并设置密码相同

> use local
switched to db local
> db.addUser("repl","zhuima")
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "repl", "roles" : [ "dbOwner" ] }

3.master配置文件

[root@redis ~]# sed -e '/^$/d;/^#/d' /etc/mongodb.conf
bind_ip = 192.168.58.30
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
logpath = /var/log/mongodb/mongodb.log
dbpath =/mydata/data
journal = true
auth = true# 开启认证模式
master = true          # 指定该mongodb为master模式

4.slave配置文件

[root@localhost ~]$ sed -e '/^$/d;/^#/d' /etc/mongodb.conf
bind_ip = 192.168.58.10
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
logpath = /var/log/mongodb/mongodb.log
dbpath = /mydata/data
journal = true
auth = true  # 开启认证模式
slave = true  # 指定该mongodb为slave模式
source = 192.168.58.30:27017  # 指定master服务器

5.检查同步情况

> db.printReplicationInfo()
this is a slave, printing slave replication info.
source:  192.168.58.30:27017
 syncedTo: Fri Jul 18 2014 10:22:31 GMT+0200 (CEST)
 = 22 secs ago (0.01hrs)  # 这个是指延迟时长

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索mongodb
, 主从模式
Master-Slave
mongodb master slave、mongodb slave、mongodb slavedelay、mongodb 设置slave ok、master slave,以便于您获取更多的相关知识。

时间: 2024-09-19 20:30:58

MongoDB的Master-Slave主从模式配置及主从复制要点解析_MongoDB的相关文章

MYSQL的master/slave数据同步配置的例子

我的测试环境.基本上数据是瞬间同步,希望对大家有帮助 redhat 9.0 mysql3.23.57 mysql数据同步备份 A服务器: 192.168.1.2 主服务器master B服务器: 192.168.1.3 副服务器slave A服务器设置 #mysql –u root –p mysql>GRANT FILE ON *.* TO backup@192.168.1.3 IDENTIFIED BY '1234'; mysql>\exit 上面是Master开放一个账号backup密码1

基于 CentOS Mysql 安装与主从同步配置详解

CentOS Mysql 安装 Mysql (Master/Slave) 主从同步 1.为什么要使用主从同步 1.如果主服务器出现问题,可以快速切换到从服务器提供的服务 2.可以在从服务器上执行查询操作,降低主服务器的访问压力 3.可以在从服务器上执行备份,以避免备份期间影响主服务器的服务 注意:一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从服务器查询,实时性要求高的数据仍然需要从主服务器获得. Window 数据库主从(Master/Slave)同步安装与配置详解 2. Cent

MongoDB 主从复制实例讲解_MongoDB

主从复制可以用来做数据库的备份,故障恢复,读写分离. 本实验使用Mongodb 3.2版本,我们先查看一下mongod的帮助 [root@localhost mongodb]# mongod --help .....省略 Master/slave options (old; use replica sets instead): --master master mode --slave slave mode --source arg when slave: specify master as <s

MySql 5.7.18 数据库主从(Master/Slave)同步安装与配置详解

MySql复制的优点: 1.如果主服务器出现问题,可以快速切换到从服务器提供的服务 2.可以在从服务器上执行查询操作,降低主服务器的访问压力 3.可以在从服务器上执行备份,以避免备份期间影响主服务器的服务 注意:一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从服务器查询,实时性要求高的数据仍然需要从主服务器获得. 1.测试环境 操作系统 :Windows 7 32位操作系统(安装双数据库端口分别为3306.3308) 数据库版本:MySQL 5.7.18 主机A:192.168.1.

mysql(master/slave)主从复制原理及配置图文详解_Mysql

1 复制概述       Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.

redis 学习笔记(3)-master/slave(主/从模式)

类似mysql的master-slave模式一样,redis的master-slave可以提升系统的可用性,master节点写入cache后,会自动同步到slave上. 环境: master node: 10.6.144.155:7030 slave node: 10.6.144.156:7031   一.配置 仅需要在slave node上修改配置: 找到slaveof这行,参考下面的修改(填上master node的Ip和端口就完事了) slaveof 10.6.144.155 7030 另

MongoDB Master Slave role switchover

测试环境:MASTER(A):172.16.3.176/opt/mongodb/bin/mongod --master --config /opt/mongodb/conf/mongodb1.conf --oplogSize=256config:[root@db5 data1]# cat /opt/mongodb/conf/mongodb1.conf port=5281fork=truelogpath=/var/log/mongodb1.loglogappend=truedbpath=/home

PGPool-II master/slave mode using caveat

PGPool-II的master/slave模式类似load balance模式.只不过master/slave是与PGPool-II以外的第三方复制软件结合使用的.(如当前支持的slony和stream replication) PGPool会将需要复制的SQL发到Master数据库,不需要复制的SQL符合条件的情况下将可能被分发到Slave数据库以达到负载均衡的效果. 以下是Master/Slave mode使用注意事项: 1. 临时表的DDL,DML操作必须在Master库完成(PGPoo

单机版的Mysql主从数据库配置

原 单机版的Mysql主从数据库配置 发表于6年前(2009-04-30 08:49)   阅读(3067) | 评论(2) 9人收藏此文章, 我要收藏 赞0 环 境mysql-5.0.22 解压版.(Copy 成两份 ,master,slave)windowsXP一.Master的设置1.配制my.ini   [client]   port = 3308   [mysqld]    port           =3308    server-id    = 1    binlog-do-db