当前位置:Gxlcms > mysql > mongodb主从复制小结

mongodb主从复制小结

时间:2021-07-01 10:21:17 帮助过:29人阅读

在生产环境中单台数据库一般不能满足业务稳定性的需求,所以数据库主从复制架构在生产环境中很常见,用于主从复制也是Mongodb最常用的一种架构方式。这种方式非

在生产环境中单台数据库一般不能满足业务稳定性的需求,所以数据库主从复制架构在生产环境中很常见,用于主从复制也是Mongodb最常用的一种架构方式。这种方式非常灵活,可用于备份、故障恢复、读扩展等,从而提高数据处理性能和冗余,常用架构模式是一主一从、一主多从、双主。今天我们主要对MONGODB的主从架构做一小结。


环境说明:

系统:CentOS6.4_x64

主(Master):192.168.2.2

从(Slave):192.168.2.3


一、安装与基础配置

#cd /usr/local

#tar -zxvf mongodb-linux-x86_64-2.2.6.tgz

#mv mongodb-linux-x86_64-2.2.6.tgz mongodb


mongodb配置文件在 /usr/local/mongodb/conf

主从数据库目录都在 /usr/local/mongodb/data

日志目录都在 /usr/local/mongodb/logs


#mkdir -p /usr/local/mongodb/conf

#mkdir -p /usr/local/mongodb/data

#mkdir -p /usr/local/mongodb/logs


二、一主一从配置

关键点:

1)、在数据库集群中要明确的知道谁是主服务器,主服务器只有一台。

2)、从服务器需要知道自己的数据源,也就是对于自己来说主服务器是谁。

3)、master用来确定主服务器,slave来控制从服务器, source确定从服务的数据源。

192.168.2.2 主

conf下新建一文件mongodb.conf

添加如下:

port=27017

fork=true

logpath=/usr/local/mongodb/logs/mongodb.log

logappend=true

dbpath=/usr/local/mongodb/data

maxConns=1024

master=true

oplogSize=2048


192.168.2.3 从

port=27017

fork=true

logpath=/usr/local/mongodb/logs/mongodb.log

logappend=true

dbpath=/usr/local/mongodb/data

maxConns=1024

slave=true

source=192.168.2.2:27017

autoresync=true


三、启动MONGODB

[root@localhost ~]# echo "PATH=$PATH:/usr/local/mongodb/bin" >> /etc/profile

[root@localhost ~]# source /etc/profile

[root@localhost ~]# mongod -f /usr/local/mongodb/conf/mongod.conf

先启主再启从

观察一下主的日志mongodb.log


五、思考与补充:

1、如何指定要同步的库

默认是同步所有的库,如果需要指定只同步某个库,可以在从库的配置文件中进行指定

方法:only=test

意思就是只同步TEST库

2、从库上还可设置的其他参数


slavedelay 从节点设置主数据库同步数据的延迟(单位是秒)

fastsync 从节点以主数据库的节点快照为节点启动从数据库

autoresync 如果不同步则自动从新同步数据库

3、从服务器上查看同步状态

>db.printReplicationInfo()

this is a slave, printing slave replication info.

source: 192.168.2.2:27017

syncedTo: Thu Apr 17 2014 01:38:02 GMT-0700 (PDT)

= 10 secs ago (0.04hrs)

4、备份与恢复

任何数据库都需要备份与恢复,这个你懂的。

备份:

>mongodump -h dbhost -d dbname -o dbdirectory

-h:MongDB所在服务器地址,例如:192.168.2.2,当然也可以指定端口号:192.168.2.2:27017

-d:需要备份的数据库实例,例如:test

-o:备份的数据存放位置,例如:/data/dump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。


恢复:

>mongorestore -h dbhost -d dbname --directoryperdb dbdirectory

-h:MongoDB所在服务器地址

-d:需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2

--directoryperdb:备份数据所在位置,例如:/data/dump/test,这里为什么要多加一个test,而不是备份时候的dump,自己查看提示吧!

--drop:恢复的时候,先删除当前数据,,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,谨慎使用!

5、监控

可以使用mongodb自带28017端口进行图形化监控

wKioL1NPlZHgKibdAAJAnTPNoNw564.jpg



本文出自 “滴水穿石孙杰” 博客,请务必保留此出处

人气教程排行