环境:Linux
mongo版本:3.6.x
主服务器:192.168.7.1
从服务器:192.168.7.2
mongodb安装路径: /opt/mongodb
步骤:
主服务器(192.168.7.1):
1.创建数据库
首先在主服务器上正常创建数据库,并为数据库创建密码(安全考虑,因为主从备份的时候,mongo数据库是需要支持外网访问的,如果未设置密码,你的数据库就是在网络上裸奔了)。创建的大概过程就是,先不用鉴权启动数据库,登录进去,为admin数据库创建管理账号:
db.createUser({user: "admin",pwd: "adminPwd",roles: [{ role: "userAdminAnyDatabase", db: "admin" }]})
然后创建自己的数据库(假设为testdb)
use testdb;
db.createUser({user: "test",pwd: "testdbpwd",roles: [{ role: "readWrite", db: "testdb" }]})
好了,主服务器上数据库已建好。要实现主从备份,我们需要生成一个key.该key就相当于一个凭证。主服务器上启动的时候设置需要该凭证,从服务器上需要携带该凭证才能从主服务器上备份数据。
2.生成key
cd /opt/mongdb
openssl rand -base64 512 mongodb.key (key的范围是0-1024),如果key值过大,则无法启动
同时需要限制key的权限,chmod 400 mongodb.key.
3.编辑配置文件
vi mongod.conf
port = 2217 #mongo 数据库的端口
logpath = /opt/mongodb/logs/mongodb.log #日志路径。
#pidfilepath=/var/run/mongodb/mongodb.pid
dbpath=/data/db
master = true #确定我是主服务器
source = 192.168.7.1 #主服务器的ip地址,从服务器需要连接该source
bind_ip = 127.0.0.1,192.168.7.1 #mongo数据库绑定的ip。此处即表示支持本地及外网ip访问
#fork = true
logappend = true
auth = true #表示开启鉴权
keyFile = /opt/mongodb/mongodb.key #指定key文件路径
4.启动mongo:
nohup mongod --config /opt/mongodb/mongodb.conf &
可在 /opt/mongodb/logs/mongodb.log 查看启动日志。
ps:
1.日志目录需要提前创建好:mkdir /opt/mongodb/logs(可自行定义)
2.数据存放目录需要创建好 mkdir /data/db (可自行定义)
至此,主服务器配置启动完成。
从服务器(192.168.7.2):
将主服务器上的mongodb.key 下载过来。
创建数据存放目录:
mkdir /data/db
编辑配置文件:
vi /opt/mongdb/mongdb.conf
port = 2217 #端口号
logpath = /opt/mongodb/logs/mongodb.log #日志位置
#pidfilepath=/var/run/mongodb/mongodb.pid #PID 位置
dbpath=/data/db #数据存放位置
slave = true #模式 确定我是从服务器
source = 192.168.7.1:2217 #规定从属于哪个ip 注意:ip是主服务器的
#fork = true #设置后台运行
logappend = true #日志输出格式
#auth = true #开启认证
keyFile = /opt/mongodb/mongodb.key #指定key.该key与主服务器的key一致。
syncdelay = 60
启动从服务器上的mongo
nohup mongod --config /opt/mongodb/mongdb.conf
从服务器上mongo启动,就会主动从主服务器上备份数据了。