MongoDB 主从备份mongodb
环境: centos 7 ,mongodb x86_64数据库
mongodb 官网下载页:https://www.mongodb.com/download-center#communitycentos
下载完毕,解压到指定的目录,我如今就把它放到/opt目录下(是绿色版的,不用安装)服务器
在bin/这个目录下,都是mongodb的相关工具,工具
经常使用 工具说明:spa
bsondump --将Bson格式的文件转储为Json 格式的数据3d
mongo --mongo客户端(用于链接mongodb)日志
mongod --mongodb数据加主服务器(用于启动mongo)server
mongodump --mongodb数据库备份工具blog
mongoimport --用于导入数据文件到mongodb
mongostore --恢复
只是简单列出几个。。。
mongodb是要指定数据库文件与日志文件的位置的,因此我在/home目录上建立三个data目录结构都同样的文件夹
注:mongodb 搭建主从备份 至少的服务器数据为3台,不然没法实现主从备份。 在此我就只使用同一台主机,指定不一样的端口与实现
三台 mongodb 服务器的主从备份 ,在如今生产中只要把IP改成真实的IP就OK
命令:
mongod --bind_ip server_ip --port 端口 --dbpath 数据文件保存路径 --logpath 日志文件/mongodb.log --replSet 服务器集群名称
三台mongo数据库服务器启动成功,
注:第一台启动的端口在:1000,数据文件保存 在/home/data1/db
第二台端口在:2000 数据文件保存 在/home/data2/db
第三台端口在3000 数据文件保存 在/home/data3/db
重点:最后那个参数 : --replSet [名字] 这个参数后面的名字 是要同样的,不然没法通信
服务器搭建成功,接下来就初始化配置:
使用 mongo --host ip --port 链接上服务对应的服务器
链接上三台mongoDB服务器并任意选一台初始化:
注:此时若是不进入初始化并配置是什么也作不了的如图:
提示 slaveOK= false
初始化命令:
rs.initiate()
初化成功,查看服务器状态:
查看服务器当前状态:
rs.status()
能够看到 "stateStr" : "PRIMARY" 看到此选项说明此服务器已经是主服务器,接下来要只要在此服务器中添加从服务器的IP与端口
在主服务器中添加副本集:
rs.add('从服务器IP:端口')
成功添加两台从服务器:
注:上面只要没报错就成功添加,也能够看到 左下角那个光标:Mserver:PRIMARY> 说明它是主服务器
至此:在主服务器中的配置结束 ,切换到从服务器中执行:rs.slaveOk() 这个命令就完成了
在主服务器初始化并成功添加从器后
在从服务器中执行:
rs.slaveOK()
最终结果:
注:只有主服务器才能写入数据,从服务器只能读,当主服务器 岩机 时,从服务器中随机有一台自动切换成主服务器,而岩机的那台
服务器修好后开机会自动切换为从服务器,并从主服务器中备份缺失的数据。