首先:mongodb主从部署是用来做什么的?
主从部署中有主节点,从节点之分,一个主节点对应对多个从节点;每个节点对应一个端口号;而每个端口号下对应一个服务和多个数据库;
在修改主节点所对应的数据库时,从节点会自备份主节点中的数据;
所以mongodb主从部署可以看做是用来备份的,使mongodb具备了容错,故障恢复等性能。
一。创建节点
1.1创建主节点master,以11011端口为例:
首先命令行切换之mongodb的bin目录,执行mongod操作,如图
需要注意的是路径中的文件夹事先都要创建好,命令不会自动创建目录;
命令行中所输入的命令所代表的意思
--dbpath:数据库DB路径(注意:文件夹必须先创建,不然命令会失败)
--master:主节点--logpath:日志log路径
--slave:从节点
--source:附属于哪一个主节点
1.2之后创建两个slave从节点11012和11013,以11012端口为例:如图
2.测试是否创建成功:
2.1首先连接到端口号为11011的服务
命令行切换至mongodb的bin目录,创建一个测试数据库,然后创建一个测试表再随便插入数据:
如图:
此时主数据库已经被修改,(当然删除和更新操作也都会备份的)
2.2切换至端口号为11012和11013的服务,查看里面的数据库和表以及表里面的内容,可以看到也已经更新了,如图
至此,mongodb实现了备份的功能。
注:从节点不能执行crud操作
不过以上功能要想使用的话每次都要把每个服务启动一遍,不然部署的服务是不能使用的,从节点不会克隆主节点内容;
二。如果想让服务每次自动启动的话,可以安装服务:
命令基本上与上面相同:不过要加上install命令和指定服务名称serviceName,默认服务名称serviceDisplayName
2.1创建master节点并安装服务:
同上,先将命令行切换至mongodb的bin目录:
之后执行命令:
mongod -install -master -dbpath d:\mongodb\db\11011\data -logpath d:\mongodb\db\11011\log\mongodb.log -port 11011 -serviceName mongodb11011 -serviceDisplayName mongodb11011
此时:可以在window服务中看到名称为mongodb11011的服务;
启动此服务,以后该服务便会自启动。
2.2创建从节点并安装服务:
mongodb -install -slave -source localhost:11011 -dapath d:\*\* -logpath d:\*\*\mongodb.log -port 11012 -serviceName mongodb11012 -serviceDisplayName mongodb11012
mongodb -remove -serviceName mongodb11012
其他参数
--only 从节点配置,只复制特定某个数据库
--autoresync从节点配置,如果主节点与从节点数据不同,则自动重新同步。配置这个节点可以给运行了一段时间的主节点加上一个新节点,则这个新节点会把之前的主节点数据全部同步过来,而不是从现在这个时间同步。
--slavedelay从节点配置,从数据库延迟同步主数据库的时间
--fastsync从节点配置,以主节点的数据库快照启动从节点,可以加快启动速度。
--oplogsize主节点配置,主节点oplog大小,主节点会把数据库操作的日志写在oplog中,从节点参考 oplog做复制操作,可以根据自身情况调节日志大小。如果不指定oplogsize大小,mongod将指配5%的可用磁盘空间给他,32位机最小是 50M,64位机最小是1G。