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若有必要,另外两个节点,也要添加备份任务。
可以直接复制,已有备份任务文件。复制完成后,记得修改文件权限。
添加定时任务时,一定把时间错开。
不建议在正常工作时间执行备份,这样会影响节点性能。可选择在使用率较低的时段进行备份。