mongodb主从复制小结

WBOY
WBOYオリジナル
2016-06-07 17:26:37774ブラウズ

在生产环境中单台数据库一般不能满足业务稳定性的需求,所以数据库主从复制架构在生产环境中很常见,用于主从复制也是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



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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。