Mongodb增加节点及节点信息

### Mongodb增加节点后,数据同步的方式主要有以下三种。 >i**自动同步** 数据量较少的情况下可以使用此方法,同步时间较快。且不会出现误差。节点启动后,直接添加到集群即可。 数据量大时,同步过程缓慢,并且会极大影响现有节点的性能。 >i**复制数据文件** 最简单的一种同步方式,**++但必须是在从节点中进行++**。避免影响主节点业务。 在进行复制之前,需要使用 **++db.fsyncLock()++** 指令将从节点加锁,避免在复制的过程中,出现持续往里写入的情况。 **++在复制完成后,使用db.fsyncUnlock()指令解锁。切记!!!切记!!!切记!!!++** 否则时间跨度一大,此节点将会宕掉。原因就是数据过于陈旧。长期处于锁定状态,不同步数据。 节点加锁后,使用 tar -zcvf bangnizu.gz ./bangnizu 指令,将数据文件打包,完成后,解锁从节点。 然后将打包好的数据文件,下载到本地。再上传到新加的从节点服务器,然后解包。启动新节点。 然后登录主节点,将其添加到集群中即可。 1.将宕机节点从集群中移除 2.停掉宕机的从节点。 3.将数据文件删除。 4.锁定一个从节点 5.打包数据文件。 6.解锁从节点。 7.把打包好的数据文件上传的宕机的节点并解压。(这个过程有点慢可能需要1个小时到1个半小时)上传完成后,修改key文件的权限,不要太高 -> 400 8.启动节点。 9.将其添加到集群。 **可以先将从节点锁定,然后将数据文件打包,打包完成后,将从节点解锁,这样能最大程度降低从节点处于锁定状态的时间。** >i**快照同步** 我也不知道咋用 (^-^)V 谁会用,把这块儿补上呗 (#^ . ^#) ### 添加移除节点指令 ``` rs.add("host:port"); #添加节点 rs.addArb("host:port"); #添加仲裁节点 rs.remove("host:port"); #移除节点 ``` ### 打包 & 解包 ``` tar -zcvf ./bangnizu.tar ./db/bangnizu 打包后文件路径 目标文件路径 tar -zxvf ./bangnizu.tar ``` ### 当前MongoDB节点信息 |HOST|PORT|STARTSTR|BACKUPS|BACKUPS TIME |-|-|-|-|-| |8.136.156.109|28464|SECONDARY|T|04:00| |120.27.208.123|28464|SECONDARY|F|12:00| |47.96.41.196|28464|PRIMARY|F|-| |182.92.239.193|28464|SECONDARY|T|18:00| |114.55.57.221|28464|SECONDARY|F|-| |114.55.57.221|28000|ARBITER|F|-| >w若有必要,另外两个节点,也要添加备份任务。 可以直接复制,已有备份任务文件。复制完成后,记得修改文件权限。 添加定时任务时,一定把时间错开。 不建议在正常工作时间执行备份,这样会影响节点性能。可选择在使用率较低的时段进行备份。