视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Linux-6.5下MariaDB-10半同步复制数据的配置解析
2020-11-09 15:05:41 责编:小采
文档

我们先来看下MYSQL异步复制的概念: MySQL本身支持单向的、异步的复制。异步复制意味着在把数据从一台机器拷贝到另一台机器时有一个延时 – 最重要的是这意味着当应用系统的事务提交已经确认时数据并不能在同一时刻拷贝/应用到从机。通常这个延时是由网络带

我们先来看下MYSQL异步复制的概念:

MySQL本身支持单向的、异步的复制。异步复制意味着在把数据从一台机器拷贝到另一台机器时有一个延时 – 最重要的是这意味着当应用系统的事务提交已经确认时数据并不能在同一时刻拷贝/应用到从机。通常这个延时是由网络带宽、资源可用性和系统负载决定的。然而,使用正确的组件并且调优,复制能做到接近瞬时完成。
当主库有更新的时候,主库会把更新操作的SQL写入二进制日志(Bin log),并维护一个二进制日志文件的索引,以便于日志文件轮回(Rotate)。在从库启动异步复制的时候,从库会开启两个I/O线程,其中一个线程连接主库,要求主库把二进制日志的变化部分传给从库,并把传回的日志写入本地磁盘。另一个线程则负责读取本地写入的二进制日志,并在本地执行,以反映出这种变化。较老的版本在复制的时候只启用一个I/O线程,实现这两部分的功能。

其次来看下MySQL同步复制的概念:

同步复制可以定义为数据在同一时刻被提交到一台或多台机器,通常这是通过众所周知的“两阶段提交”做到的。虽然这确实给你在多系统中保持一致性,但也由于增加了额外的消息交换而造成性能下降。


默认情况下MySQL的复制是异步的,Master上所有的更新操作写入Binlog之后并不确保所有的更新都被复制到Slave之上。异步操作虽然效率高,但是在Master/Slave出现问题的时候,存在很高数据不同步的风险,甚至可能丢失数据。

MySQL5.5引入半同步复制功能的,我这里是MariaDB-10的,目的是为了保证在master出问题的时候,至少有一台Slave的数据是完整的。在超时的情况下也可以临时转入异步复制,保障业务的正常使用,直到一台salve追赶上之后,继续切换到半同步模式。


下面是部署的实现:

一、主节点配置: 1、停止服务:


2、修改配置文件:


3、创建目录、修改属组:


4、启动服务、端口:


5、查看是否存在master、slave的插件:

6、授权用户


7、安装master的插件:


8、查看master插件是否安装成功:


9、启动master节点:


10、将超时间设置为两秒即可:


11、查看master是否启动:




二、从节点配置: 1、停止服务:

2、修改配置文件:


3、创建目录、修改属组:


4、启动服务:


5、连入mysql,查看事件状态:


6、查看验证(此时是没有文件的):


7、设置连接主服务器:


8、查看当前用户:


9、安装slave插件:


10、查看slave是否安装成功:


11、启稓喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc2xhdmW92rXjo7o8YnI+CjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20140603/20140603100821117.png" width="700" height="30.7531380753" alt="\">

12、查看slave是否启动成功:




三、master插入数据,slave测试是否同步: 1、master插入数据:

2、先停止IO线程,在启动IO线程:


3、查看当前是异步还是半同步:


4、查看slave是否以同步数据:


5、一般来说,不建议把半同步的设定写在配置文件中,我们还不如手动修改合适呢。一旦某次等待超时,会自动降级为异步;
OK!!!

下载本文
显示全文
专题