Carry の Blog Carry の Blog
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • Python
  • Shell
  • MySQL8-SOP手册
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carry の Blog

好记性不如烂键盘
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • Python
  • Shell
  • MySQL8-SOP手册
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL8-SOP

    • 第一章 概述
    • 第二章 环境准备
    • 第三章 安装部署规范
    • 第四章 ReplicaSet高可用配置
      • 4.1 环境准备
        • 软件包安装
        • 网络配置
        • 系统优化
      • 4.2 复制链路建立流程
        • 基于GTID的自动定位配置
      • 4.2 半同步复制配置
        • 主节点配置
        • 从节点配置
        • 网络抖动处理
      • 4.3 自动故障转移方案
        • MySQL Router配置
    • 第五章 监控与日常维护
    • 第六章 故障处理手册
    • 第七章 安全与权限管理
    • 第八章 扩展与升级方案
    • 附录
  • 专题系列
  • MySQL8-SOP
Carry の Blog
2024-01-09
目录

第四章 ReplicaSet高可用配置原创

# 第四章 ReplicaSet高可用配置

# 4.1 环境准备

# 软件包安装

# 安装MySQL官方YUM源
yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm

# 安装MySQL Shell和Router
yum install -y mysql-shell mysql-router

# 也可以使用RPM包安装
wget https://downloads.mysql.com/archives/get/p/43/file/mysql-shell-8.0.34-1.el7.x86_64.rpm  
wget https://downloads.mysql.com/archives/get/p/41/file/mysql-router-community-8.0.34-1.el7.x86_64.rpm
1
2
3
4
5
6
7
8
9

# 网络配置

# 配置节点间通信
sudo iptables -I INPUT -s 192.168.01/32 -p tcp -j ACCEPT
sudo iptables -I INPUT -s 192.168.02/32 -p tcp -j ACCEPT
sudo iptables -I INPUT -s 192.168.03/32 -p tcp -j ACCEPT
sudo service iptables save
1
2
3
4
5

# 系统优化

# 禁用透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.local

# 优化磁盘调度器
echo noop >/sys/block/sdb/queue/scheduler
1
2
3
4
5
6

# 4.2 复制链路建立流程

# 基于GTID的自动定位配置

-- 在从节点执行
CHANGE REPLICATION SOURCE TO
    SOURCE_HOST='master_host',
    SOURCE_PORT=3306,
    SOURCE_USER='repl_user',
    SOURCE_PASSWORD='repl_password',
    SOURCE_AUTO_POSITION=1;

-- 启动复制线程
START REPLICA;

-- 查看复制状态
SHOW REPLICA STATUS\G
1
2
3
4
5
6
7
8
9
10
11
12
13

CHANGE MASTER TO参数说明

  • SOURCE_HOST:主节点主机名或IP
  • SOURCE_PORT:主节点MySQL端口
  • SOURCE_USER:复制用户名
  • SOURCE_PASSWORD:复制用户密码
  • SOURCE_AUTO_POSITION:启用GTID自动定位

# 4.2 半同步复制配置

# 主节点配置

-- 安装半同步主插件
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

-- 启用半同步复制
SET GLOBAL rpl_semi_sync_master_enabled = 1;

-- 设置超时时间(毫秒)
SET GLOBAL rpl_semi_sync_master_timeout = 10000;
1
2
3
4
5
6
7
8

# 从节点配置

-- 安装半同步从插件
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

-- 启用半同步复制
SET GLOBAL rpl_semi_sync_slave_enabled = 1;
1
2
3
4
5

# 网络抖动处理

# 4.3 自动故障转移方案

# MySQL Router配置

[mysqld]
# --- Binlog ---
server_id       = 1      # 主节点 ID (必须唯一)
log_bin         = /data/mysql/logs/binlog/mysql-bin # 启用 Binlog
binlog_format   = ROW
sync_binlog     = 1
expire_logs_days = 7
max_binlog_size = 1G
# --- GTID (MySQL 8.0 默认开启) ---
gtid_mode = ON
enforce_gtid_consistency = ON
# --- 其他推荐 ---
# binlog_expire_logs_seconds = 604800 # 替代 expire_logs_days (8.0.1+)
# log_slave_updates = ON # 如果主库也可能作为其他主库的从库 (级联复制)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#MySQL#数据库#复制
上次更新: 4/24/2025

← 第三章 安装部署规范 第五章 监控与日常维护→

最近更新
01
tidb fast ddl
04-04
02
TiDB配置文件调优 原创
04-03
03
如何移除TiDB中的表分区 原创
04-03
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式