一:安装部署mongodb
下载可到https://www.mongodb.com/try/download/enterprise
下载需要的版本,本文使用的mongodb-linux-x86_64-rhel70-3.2.22.tgz
主服务器:10.11.110.167
创建文件夹/usr/local/mongodb/把taz包放入其中,解压
命令
tar -zxvf mongodb-linux-x86_64-rhel70-3.2.22.tgz
如下图:得到mongodb-linux-x86_64-rhel70-3.2.22
把mongodb-linux-x86_64-rhel70-3.2.22里边文件全部移动到/usr/local/mongodb/目录下,
看文件夹内是否有data和logs文件夹,如果没有就创建data,logs文件夹并在logs内创建mongodb.log文件(用来保存mongodb的日志)
进入/bin目录,创建***.conf文件(也可以叫做mongod.conf,如果是一个服务器的两个Mongodb建议这个文件用不同的名字),本服务器起名为master.conf文件
下文为master.conf文件内容
dbpath = /usr/local/mongodb/data #数据文件保存地址
port = 27017 #此mongo的端口号,可以自定义
bind_ip = 0.0.0.0 #改为0.0.0.0 #如果写127.0.0.1的话,其他服务器连不上
logpath = /usr/local/mongodb/logs/mongodb.log #数据库日志保存路径
source = 10.20.25.247:27017 # 这是需要同步另一个服务器数据的地址,下文会提到
master = true #标识为主库,如果不写下边的slave就只是主库,不能互为主从
slave = true #标识为从库,如果不写上边边的master就只是从库库,不能互为主从,从库只有读权限,没有写权限,所以master = true,slave = true都要加上
从服务器:10.20.25.247
同上边步骤同路径部署,在bin创建***.conf文件(也可以叫做mongod.conf),本服务器起名为slave.conf文件
slave.conf内容如下
dbpath = /usr/local/mongodb/data #数据文件保存地址
port = 27017 #此mongo的端口号,可以自定义
bind_ip = 0.0.0.0 #改为0.0.0.0 #如果写127.0.0.1的话,其他服务器连不上
logpath = /usr/local/mongodb/logs/mongodb.log #数据库日志保存路径
source = 110.11.110.167:27017 # 这是需要同步另一个服务器数据的地址,上文提到过
master = true #标识为主库,如果不写下边的slave就只是主库,不能互为主从
slave = true #标识为从库,如果不写上边边的master就只是从库库,不能互为主从,从库只有读权限,没有写权限,所以master = true,slave = true都要加上
二:启动mongodb
进去10.11.110.167 服务器进入cd /usr/local/mongodb/bin/目录下
执行
nohup mongod --config master.conf &
nohup mongod --config mongod.conf & #如果文件名是mongod.conf就这样写
nohup /mongod --config mongod.conf --source=10.11.110.167:27017 &
nohup mongod --config mongod.conf --source=10.11.110.167:27017 &
#如果想通过命令设置source就这样写
二:测试
我使用连接工具分别链接10.11.110.167:27017和10.20.25.247:27017的mongo数据库
分别创建数据库llxz,在数据库中创建user集合,分别在两边添加数据,都能更新到两一个数据库,并且关闭10.11.110.167数据库服务,另一个10.20.25.247可以正常使用,再启动启动10.11.110.167服务mongo,数据会被同步过来