首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

MySQL 5.7 多線程主從復制搭建實戰:GTID 模式與 mysqlpump 並行導出

     編輯:Java 綜合教學

MySQL 5.7 多線程主從復制搭建實戰:GTID 模式與 mysqlpump 並行導出

本文記錄基於 MySQL 5.7.11 (RPM 包) 在 CentOS 6 環境下,從安裝、數據初始化、邏輯備份工具對比、到配置 GTID 模式多線程主從復制的完整實戰過程。

一、MySQL 5.7 RPM 安裝

tar xf mysql-5.7.11-1.el6.x86_64.rpm-bundle.tar
yum install -y mysql-community-{client,common,libs,libs-compat,server}-5.7.11-1.el6.x86_64.rpm

啟動與初始密碼

/etc/init.d/mysqld start
grep 'temporary password' /var/log/mysqld.log
mysql -p  # 輸入初始密碼

修改 root 密碼 (需符合強密碼策略)

ALTER USER root@localhost IDENTIFIED BY 'Redhat007!';

密碼規則:長度>8、含大小寫、數字、特殊字符。

二、測試數據準備

CREATE DATABASE xp1;
USE xp1;
SOURCE /mnt/add.sql;  -- 包含建表、存儲過程、批量插入 1000 萬行數據

驗證數據量:數據行數

三、mysqldump vs mysqlpump 性能對比

工具命令耗時說明
mysqldumptime mysqldump -p xp1 > xp1.sql較慢單線程
mysqlpump (默認 2 線程)time mysqlpump -p xp1 > xp1.sql快 ~10 秒並行導出
mysqlpump (4 線程)time mysqlpump -pRedhat006! --default-parallelism=4 xp1 > xp1.sql更快可調並行度

mysqldump耗時 mysqlpump耗時

四、主從復制架構配置

環境

  • Master: 172.25.254.10 (server-id=1)
  • Slave: 172.25.254.11 (server-id=2)

Master 配置 (/etc/my.cnf)

[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=test
gtid-mode=on
enforce-gtid-consistency=on
systemctl restart mysqld
CREATE DATABASE test;
GRANT REPLICATION SLAVE ON *.* TO 'xpp'@'172.25.254.11' IDENTIFIED BY 'Redhat007!';
FLUSH PRIVILEGES;

Slave 配置 (/etc/my.cnf)

[mysqld]
server-id=2
gtid-mode=on
enforce-gtid-consistency=on
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON
systemctl restart mysqld
CREATE DATABASE test;
CHANGE MASTER TO
    MASTER_HOST='172.25.254.10',
    MASTER_USER='xpp',
    MASTER_PASSWORD='Redhat007!',
    MASTER_AUTO_POSITION=1;  -- GTID 模式無需指定 log_file/pos
START SLAVE;

五、關鍵參數解析

  • gtid-mode=on:啟用全局事務 ID,強化主備一致性與故障恢復。
  • slave-parallel-type=LOGICAL_CLOCK:基於組提交的並行復制策略,適用於組提交並行度高的場景。
  • slave-parallel-workers=16:SQL 線程並行數,根據 CPU 核心數調整。
  • master_info_repository=TABLE:將主庫信息存入表,支援事務性更新,避免文件損壞。
  • relay_log_recovery=ON:啟動時自動修復中繼日志。

六、驗證復制狀態

SHOW SLAVE STATUS\G
# 關鍵指標:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
Retrieved_Gtid_Set: ...
Executed_Gtid_Set: ...
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved