Linux学习9-mysql相关模式,优化策略及组复制 📅 发布时间:2026/8/27 13:06:25 👁 浏览次数: gtid模式不同节点的log_pos会不同gtid可以在全局保证该sever与next相同无需多次手动更改浏览器访问MySQL删除旧表添加新表多添加id且给予主键(被给予主键的表作为基准不可重复)两个slave同步进行注意sever2指向sever1sever3也指向sever1修改文件加入强行启动gtid模式重启服务进入mysql先停止slave重新定向master使用gtid模式启动slave这里也应该是136查看slave状态gtid_set出现两个值相等证明主从同步半同步模式两种模式对比在主库提交事务前强制等待至少一个从库确认已接收并写入中继日志Relay Log再向客户端返回成功响应有效避免异步复制中主库宕机导致“已提交事务丢失”的风险同时又不像全同步复制那样要求所有从库都执行完事务从而在性能和一致性之间找到了最佳折中点master配置安装半同步模块查看是否安装成功查看变量查看状态编辑配置文件启用半同步模式重启服务slave配置安装半同步模块slave重启IO线程slave端的半同步模块才能生效查看变量修改配置文件启用半同步slave重启服务测试浏览器访问phpmyadmin写入新数据回到sever1查看mysql半同步状态有两个客户端yes_tx为1有一个任务以半同步完成在两个slave上关闭IO线程浏览器上再次写入新数据sever1上再次查看状态客户端变为1状态变为off变为异步模式no_tx为1表示未通过半同步模式的数据此时再打开两个slave的IO线程又会自动切回半同步模式延迟复制延迟复制是一种主动制造数据同步延迟的高级复制策略为人为误操作提供“时间窗口”进行紧急恢复slave不会立刻同步master的数据而是在设定的延迟时间后这样master出现错误后slave的数据库还是纯净的可以用来恢复master在其中一台slave上执行首先关闭sql线程设置延迟为30s为了能够快速看到结果正常来说应该以小时计算开启sql线程phpmyadmin上添加新数据slave上查看状态sql_delay为30落后master6秒并行复制用于解决主从复制延迟问题的核心优化机制其核心作用是在从库上使用多个工作线程并发回放中继日志中的事务从而大幅提升数据同步速度使从库能跟上主库的高并发写入节奏master配置修改配置文件加入设置将日志格式设置为行模式使用hsah算法判断事务之间是否有集合设置最近50000个事务进行比较重启服务slave配置两个slave都需要进行修改配置文件设置判断模式为逻辑时钟设定工作线程为16保持提交顺序与主库一致开启中继日志自动恢复通过table储存方式存储中继日志的执行进度信息主库连接信息和 Binlog 读取位置重启服务慢查询记录并帮助找到执行效率低下、耗时过长的 SQL 语句从而为数据库优化提供明确的目标设置慢查询查看参数设置慢查询时间为5秒查看慢查询参数模拟慢查询查看日志访问时间为5秒MySQL组复制构建高可用、强一致性的分布式数据库集群即使部分节点故障只要多数节点存活服务仍可继续运行这里我们配置的是多主primary这里我们有三个primary最多只能down一个sever1配置先停止服务切目录清空文件编辑文件内容如下初始化开启服务查看临时密码进入mysql更换密码临时关闭 Binlog 记录创建复制专用用户授予核心权限GRANT刷新权限并恢复 Binlog最后两行命令再次编辑文件添加如下需要修改网段及IP重启服务进入MySQL注意其中带GLOBAL词条的命令只在sever1上输入配置复制用户认证开启引导模式作为第一个节点启动组复制关闭引导模式防止后续节点认为自己是第一个节点从而创建新组现在有一个primarysever1onlinesever2配置操作与sever1相同初始化查看临时密码进入MySQL与sever1相同添加下图内容ip改为sever2ip注意以下命令相比于sever1减去两条关于引导模式的命令注意此图片中配置复制用户认证的命令少了一个下划线详情见sever1配置中的此命令此错误会导致该节点无法成功运行查看两个primary都为onlinesever3配置步骤与sever2相同修改的文件内容相同注意网段与IP三个sever全部online测试sever1上创建新数据库sever2查看再添加sever3查看全部同步再写入回到sever1查看同步成功