本文記錄基於 MySQL 5.7.11 (RPM 包) 在 CentOS 6 環境下,從安裝、數據初始化、邏輯備份工具對比、到配置 GTID 模式多線程主從復制的完整實戰過程。
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 # 輸入初始密碼
ALTER USER root@localhost IDENTIFIED BY 'Redhat007!';
密碼規則:長度>8、含大小寫、數字、特殊字符。
CREATE DATABASE xp1; USE xp1; SOURCE /mnt/add.sql; -- 包含建表、存儲過程、批量插入 1000 萬行數據
驗證數據量:
| 工具 | 命令 | 耗時 | 說明 |
|---|---|---|---|
| mysqldump | time 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 | 更快 | 可調並行度 |

[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;
[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: ...