复制副本集

2018-09-06  本文已影响0人  杜大个

什么是复制

复制的工作原理

直接使用主从复制局限

(1)主从复制在master宕机后,没有自动选举master机制,导致主节点服务一挂,便不能对外提供增删改操作。

(2)所有增删改操作都是针对主节点进行操作,可能导致主节点性能下降。

(3)从节点对主节点的数据都是全量拷贝,对主从节点的压力都是不小的。

复制的特点

设置复制节点

接下来的操作需要打开多个终端窗口,而且可能会连接多台ubuntu主机,会显得有些乱.

step1:创建数据库目录test1、test2

在Desktop目录下演示,其它目录也可以,注意权限即可

  1. 首先使用ifconfig命令查看自己的IP地址这是我Ubuntu上的iP地址:192.168.1.118
  2. 先打开一个终端(作为主服务器) 使用service mongodb start 开启mongo

使用mongod —help 可以分析查看我们mongod 的一些命令 使用如下格式启动mongod,注意replSet的名称是一致的

mongod --bind_ip 192.168.1.118 --port 27018 --dbpath ~/桌面/test1 --replSet rs0

4C82F74A-0ACF-41C2-B180-EE72BA726FEB CB4BE4C8-66EF-47F9-9A7D-32618230770D

这里我们可以看到启动成功处于等待状态 这时候我们进入test1文件夹会看到一些文件,而没有操作的test2里面没有文件

  1. 打开另一个终端(从服务器) 使用service mongodb start 开启mongo

使用mongod —help 可以分析查看我们mongod 的一些命令

使用如下格式启动mongod,注意replSet的名称是一致的

mongod --bind_ip 192.168.1.118 --port 27019 --dbpath ~/桌面/test2 --replSet rs0

结果同上

  1. 打开两个终端开启两个mongo客户端分别链接刚才配置的两个服务 连接主服务器

一个连接:mongo --host 192.168.1.118 --port 27018

另一个连接:mongo --host 192.168.1.118 --port 27019

9C92CA68-1798-4935-8A3A-C677D9B7C635
  1. 确定主服务器:确定了谁是主服务器,就在那个上面初始化

我这里以192.168.1.118 --port 27018为主服务器

rs.initiate()

500889E8-1C73-407E-B00F-C1CB0CBEC928

这时候使用show dbs就可以查看到所有的数据库了 我们采用rs.status()来查看当前状态,可以看到没有出现副本集

D9966D07-220C-4CC8-8C80-5C54EF47A4CA
  1. 添加副本集 直接使用rs.add('192.168.1.118:27019’)来添加从服务连接 49E81292-39D7-4F6B-A0CA-13B642D95703
  2. 复本集添加成功后,此时我们再次采用rs.status()查看当前状态,当前状态如下:

542CA478-06CB-4A48-BC99-EF57DE85D3CB
  1. 以上步骤完成之后我们在从服务连接窗口读取数据操作的话需要设置rs.slaveOk()
948805D1-393C-4F12-A0ED-906C0D3ED442
  1. 检验 主服务器客户端插入数据,从服务器客户端查看数据是否备份 主服务器客户端进行数据插入:
7D47F664-FB54-4DA9-ADB3-2334B65BB7C4

在从服务器客户端查看数据是否同步

45A474F3-6765-4BA1-AF09-8E8F37ECCC97

结束: 由结果可以看出备份成功,备份工作完成!!!!

其它说明(主从切换)

上一篇下一篇

猜你喜欢

热点阅读