技术博客 技术博客
  • JAVA
  • 仓颉
  • 设计模式
  • 人工智能
  • Spring
  • Mybatis
  • Maven
  • Git
  • Kafka
  • RabbitMQ
  • RocketMQ
  • Redis
  • Zookeeper
  • Nginx
  • 数据库套件
  • MySQL
  • Elasticsearch
  • MongoDB
  • Hadoop
  • ClickHouse
  • Hbase
  • Hive
  • Flink
  • Flume
  • SQLite
  • linux
  • Docker
  • Jenkins
  • Kubernetes
  • 工具
  • 前端
  • AI
GitHub (opens new window)
  • JAVA
  • 仓颉
  • 设计模式
  • 人工智能
  • Spring
  • Mybatis
  • Maven
  • Git
  • Kafka
  • RabbitMQ
  • RocketMQ
  • Redis
  • Zookeeper
  • Nginx
  • 数据库套件
  • MySQL
  • Elasticsearch
  • MongoDB
  • Hadoop
  • ClickHouse
  • Hbase
  • Hive
  • Flink
  • Flume
  • SQLite
  • linux
  • Docker
  • Jenkins
  • Kubernetes
  • 工具
  • 前端
  • AI
GitHub (opens new window)
  • mysql

    • MySQL 问题汇总
    • MySQL 索引介绍
    • MySQL 锁介绍
    • MySQL 索引优化工具 explain
    • MySQL 主从复制(GTID)
    • MySQL 8安装
    • MySQL 8.x新特性总结
    • MySQL UDF以及新类型JSON
    • MySQL 高可用MGR(一) 理论
    • MySQL 高可用MGR(二) 搭建
    • MySQL 高可用MGR(三) 测试
  • Elasticsearch

    • ES 7.8.0(一) 入门介绍
    • ES 7.8.0(二) 读、写和写索引流程以及文档分析过程
    • ES 7.8.0(三) 文档冲突
  • mongodb

    • mongodb
  • hadoop

    • Hadoop 伪分布式及集群
    • Hadoop 指令
    • Hadoop 读写流程详解
    • Hadoop SpringBoot集成
    • Hadoop MapReduce机制
    • Hadoop YARN
    • Hadoop MapReduce配置和编写job及数据倾斜的解决
    • Hadoop MapReduce自定义格式输入输出
  • clickhouse

    • ClickHouse 介绍及安装
    • ClickHouse 数据类型
    • ClickHouse 表引擎
    • ClickHouse SQL操作
    • ClickHouse 副本配置
    • ClickHouse 分片与集群部署
    • ClickHouse Explain及建表优化
    • ClickHouse 语法优化规则
    • ClickHouse 查询优化
    • ClickHouse 数据一致性
    • ClickHouse 物化视图
    • ClickHouse MaterializeMySQL引擎
    • ClickHouse 监控及备份
  • hbase

    • Hbase 介绍及安装
    • Hbase 优化
    • Hbase phoenix安装及使用
    • Hbase LSM-TREE
  • hive

    • Hive 介绍及安装
    • Hive 内外部表、分区表、分桶表概念及hiveSQL命令
    • Hive 数据类型
    • Hive 函数 MySQL联合
    • Hive 数据倾斜和优化
    • Hive Sqoop安装及指令
  • flink

    • Flink 介绍及安装
    • Flink 配置介绍及Demo
    • Flink API讲解
    • Flink 运行架构
    • Flink 时间语义及Watermark
    • Flink 状态管理
    • Flink 容错,检查点,保存点
    • Flink 状态一致性
    • Flink Table API 和 Flink SQL
    • Flink CEP编程
    • Flink Joining编程
    • Flink CDC
  • flume

    • Flume 日志收集系统介绍及安装
    • Flume Source支持的类型
    • Flume Sink支持的类型
    • Flume Channel支持的类型
    • Flume Selector
    • Flume Interceptor拦截器类型
    • Flume Process
  • sqlite

    • SQLite介绍

MySQL 主从复制(GTID)

https://dev.mysql.com/doc/refman/8.0/en/replication.html 官方地址,我这里使用的是 Mysql8.0.2

主从复制的优点:

  • 横向扩展解决方案,在多个副本之间分散负载以提高性能。在此环境中,所有写入和更新都必须在主服务器上进行。然而,读取可能发生在一个或多个副本上。该模型可以提高写入性能(因为主专用于更新),同时显着提高越来越多的副本的读取速度。
  • 数据安全,因为副本可以暂停复制过程,所以可以在副本上运行备份服务而不会破坏相应的主数据。
  • 分析,可以在主上创建实时数据,而信息分析可以在副本上进行,而不会影响源的性能。
  • 远程数据分发,可以使用复制创建本地数据副本供远程站点使用,而无需永久访问主服务。

Mysql 8.0 支持多种复制计数,可以从二进制日志复制,也可以 GTID(全局事务)标识复制,也可以多主复制等,更多方法可以从官网中查看,这里我们根据 GTID 复制。GTID 依赖于事务,也就是说其他引擎是没办法复制的

在主服务器配置 my.cnf 中配置如下

# server_id 必须在复制中唯一
server_id=1
# 主从复制所需
gtid_mode=ON
enforce-gtid-consistency=ON
1
2
3
4
5

在从服务器配置的 my.cng 中配置如下

server_id=2
# 主从复制所需
gtid_mode=ON
enforce-gtid-consistency=ON
# 启动每个副本 ,以确保在配置副本设置之前不会启动复制
skip-slave-start=on
# 指定复制的数据库
replicate-do-db=test
# 过滤复制的数据库
replicate-ignore-db=iedp:wiedp_sub:wiedp
1
2
3
4
5
6
7
8
9
10

启动主服务器,添加一个让子服务器连接的账号和密码

# 创建用户
CREATE USER repl@'10.240.30.%' IDENTIFIED BY 'repl@password';
# 授权
GRANT REPLICATION SLAVE ON *.* TO repl@'10.240.30.%';
1
2
3
4

启动从服务器,并输入如下语句

CHANGE MASTER TO
    MASTER_HOST = '10.240.30.101',
    MASTER_PORT = 3306,
    MASTER_USER = 'repl',
    MASTER_PASSWORD = 'Repl@123',
    MASTER_AUTO_POSITION = 1;
1
2
3
4
5
6

注意要复制的库在从库不能存在,否则会报错,在从库执行如下命令

mysql> START SLAVE;
1

主从复制结束。

注意事项:
从库可以删除同步的数据和表以及被同步的库;
从库删除的数据、表、库,在主库添加数据时从库无法恢复;
从库在首次复制不能拥有要复制的库,否则报错;
从库主动删除的数据无法恢复,只能拥有未被复制过的数据;

如果想动态设置需要复制的库,可以通过如下命令

# 需要先停止之前复制线程
STOP SLAVE SQL_THREAD;
# 重新设置要复制哪些库,replicate_ignore_db(不复制的库)
CHANGE REPLICATION filter replicate_do_db=(test_1,test);
# 重新启动复制线程
start slave sql_thread;
1
2
3
4
5
6
上次更新: 6/11/2025, 4:10:30 PM
MySQL 索引优化工具 explain
MySQL 8安装

← MySQL 索引优化工具 explain MySQL 8安装→

Theme by Vdoing | Copyright © 2023-2025
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式