MongoDB复制原理
mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。
mongodb各个节点常见的搭配方式为:一主一从、一主多从。
主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
MongoDB复制结构图如下所示:
以上结构图中,客户端从主节点读取数据,在客户端写入数据到主节点时, 主节点与从节点进行数据交互保障数据的一致性。
副本集特征:
- N 个节点的集群
- 任何节点可作为主节点
- 所有写入操作都在主节点上
- 自动故障转移
- 自动恢复
环境介绍:
mongodb版本:4.4.1
系统:centos7.x
安装路径:/usr/local
副本集机器:
IP:192.168.163.125 port:27017
IP:192.168.163.126 port:27017
IP:192.168.163.127 port:27017
IP:192.168.163.128 port:27017
一、下载解压
1、下载地址:https://www.mongodb.com/download-center/community
2、将下载好的压缩包分别上传到四台机器 /usr/local 目录下,并且将解压后的文件夹重命名为:mongodb,使用到的命令如下:
完整过程如下:
[root@localhost /]# cd /usr/local/
[root@localhost local]#
[root@localhost local]# ll
total 147092
drwxr-xr-x. 2 root root 6 Apr 11 2018 bin
drwxrwxrwx. 10 root root 194 Sep 21 15:08 elasticsearch-7.4.0
drwxr-xr-x. 2 root root 6 Apr 11 2018 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 games
drwxr-xr-x. 2 root root 6 Apr 11 2018 include
drwxr-xr-x. 7 10 143 245 Apr 2 2019 jdk1.8.0_212
drwxr-xr-x. 2 root root 6 Apr 11 2018 lib
drwxr-xr-x. 2 root root 6 Apr 11 2018 lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 libexec
-rw-r--r--. 1 root root 71253687 Sep 24 13:00 mongodb-linux-x86_64-rhel70-4.4.1.tgz
-rw-r--r--. 1 root root 38428385 Sep 24 13:01 otp_src_21.3.tar.gz
drwxr-xr-x. 10 root root 264 Sep 24 11:03 redis-cluster
-rw-r--r--. 1 root root 11022473 Sep 22 16:08 redis-cluster.tar.gz
drwxrwsrwx. 25 root rvm 4096 Sep 23 17:09 rvm
drwxrwxr-x. 20 root root 4096 Mar 26 05:17 rvm-1.29.10
-rwxrwxrwx. 1 root root 1288100 Sep 23 16:35 rvm-1.29.10.tar.gz
drwxr-xr-x. 2 root root 6 Apr 11 2018 sbin
drwxr-xr-x. 5 root root 49 Sep 15 09:28 share
drwxr-xr-x. 2 root root 6 Apr 11 2018 src
[root@localhost local]# tar -zxf mongodb-linux-x86_64-rhel70-4.4.1.tgz
[root@localhost local]#
[root@localhost local]# ll
total 147092
drwxr-xr-x. 2 root root 6 Apr 11 2018 bin
drwxrwxrwx. 10 root root 194 Sep 21 15:08 elasticsearch-7.4.0
drwxr-xr-x. 2 root root 6 Apr 11 2018 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 games
drwxr-xr-x. 2 root root 6 Apr 11 2018 include
drwxr-xr-x. 7 10 143 245 Apr 2 2019 jdk1.8.0_212
drwxr-xr-x. 2 root root 6 Apr 11 2018 lib
drwxr-xr-x. 2 root root 6 Apr 11 2018 lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 libexec
drwxr-xr-x. 3 root root 100 Sep 24 13:02 mongodb-linux-x86_64-rhel70-4.4.1
-rw-r--r--. 1 root root 71253687 Sep 24 13:00 mongodb-linux-x86_64-rhel70-4.4.1.tgz
-rw-r--r--. 1 root root 38672321 Sep 24 13:02 otp_src_21.3.tar.gz
drwxr-xr-x. 10 root root 264 Sep 24 11:03 redis-cluster
-rw-r--r--. 1 root root 11022473 Sep 22 16:08 redis-cluster.tar.gz
drwxrwsrwx. 25 root rvm 4096 Sep 23 17:09 rvm
drwxrwxr-x. 20 root root 4096 Mar 26 05:17 rvm-1.29.10
-rwxrwxrwx. 1 root root 1288100 Sep 23 16:35 rvm-1.29.10.tar.gz
drwxr-xr-x. 2 root root 6 Apr 11 2018 sbin
drwxr-xr-x. 5 root root 49 Sep 15 09:28 share
drwxr-xr-x. 2 root root 6 Apr 11 2018 src
[root@localhost local]#
[root@localhost local]# mv mongodb-linux-x86_64-rhel70-4.4.1 /usr/local/mongodb
[root@localhost local]#
[root@localhost local]# ll
total 147092
drwxr-xr-x. 2 root root 6 Apr 11 2018 bin
drwxrwxrwx. 10 root root 194 Sep 21 15:08 elasticsearch-7.4.0
drwxr-xr-x. 2 root root 6 Apr 11 2018 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 games
drwxr-x