欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mongodb主从复制小结

程序员文章站 2022-06-14 15:37:13
...

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

mongodb主从复制小结



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