豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 Wd提问: MySQL双主架构

🤖 Ai回答:
MySQL双主架构详解

1、概述

MySQL双主架构(Master-Master Replication)是一种高可用性的数据库解决方案,通过两个MySQL服务器互为主从关系,实现数据的双向同步。

2、架构原理

Master1 ←→ Master2
| |
| |
数据库 数据库

核心特点:
双向同步:两个主服务器可以相互同步数据
高可用性:一个节点故障时,另一个节点可继续提供服务
负载分担:可以同时处理读写请求

3、配置步骤

3.1 基础配置

配置文件修改(my.cnf):

ini
[mysqld]
基本设置
server-id = 1 主服务器ID,必须唯一
log-bin = mysql-bin 启用二进制日志
binlog-format = ROW 推荐使用ROW格式
binlog-row-image = FULL

复制相关设置
relay-log = relay-bin
log-slave-updates = 1
read-only = 0 主服务器可写
auto_increment_increment = 2 自增步长
auto_increment_offset = 1 自增偏移量

安全设置
skip-name-resolve = 1

3.2 双主配置示例

Master1配置:
ini
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
auto_increment_increment = 2
auto_increment_offset = 1

Master2配置:
ini
[mysqld]
server-id = 2
log-bin = mysql-bin
binlog-format = ROW
auto_increment_increment = 2
auto_increment_offset = 2

3.3 创建复制用户

在两个主服务器上执行:

sql
创建复制用户
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

刷新权限
FLUSH PRIVILEGES;

3.4 初始化数据

sql
在Master1上执行
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

记录File和Position值
在Master2上执行
CHANGE MASTER TO
MASTER_HOST='master1_ip',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;

START SLAVE;

在Master2上执行
CHANGE MASTER TO
MASTER_HOST='master2_ip',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;

START SLAVE;

4、高级配置优化

4.1 避免冲突的配置

ini
[mysqld]
自增ID配置
auto_increment_increment = 2
auto_increment_offset = 1 Master1
auto_increment_offset = 2 Master2

禁止自动提交(可选)
autocommit = 0

事务隔离级别
transaction-isolation = READ-COMMITTED

4.2 性能优化参数

ini
[mysqld]
缓冲池设置
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2

复制相关优化
slave_parallel_workers = 4
slave_parallel_type = LOGICAL_CLOCK

5、监控与维护

5.1 常用监控命令

sql
查看复制状态
SHOW SLAVE STATUS\G

检查复制延迟
SELECT
Slave_IO_Running,
Slave_SQL_Running,
Seconds_Behind_Master,
Last_Error
FROM information_schema.slave_status;

查看主服务器状态
SHOW MASTER STATUS;
SHOW PROCESSLIST;

5.2 故障排查

sql
停止复制
STOP SLAVE;

重置复制
RESET SLAVE ALL;

查看错误日志
SHOW WARNINGS;

6、注意事项

6.1 数据冲突问题

自增ID冲突解决方案:
sql
Master1: 自增ID从1开始,步长为2
Master2: 自增ID从2开始,步长为2

示例表结构
CREATE TABLE test_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100)
);

6.2 常见问题

1、重复键冲突:确保自增ID配置正确
2、复制延迟:监控Seconds_Behind_Master
3、网络中断:配置适当的重试机制
4、数据不一致:定期检查数据一致性

7、实际应用建议

7.1 生产环境部署

bash
1、确保网络连通性
ping master1_ip
ping master2_ip

2、验证配置文件
mysql defaults-file=/etc/my.cnf -e SHOW VARIABLES LIKE 'server_id';

3、启动服务
systemctl start mysqld
systemctl enable mysqld

7.2 安全加固

sql
删除不必要的用户
DROP USER IF EXISTS 'test_user'@'%';

限制连接数
SET GLOBAL max_connections = 500;

启用SSL
在my.cnf中添加
ssl-ca = /path/to/ca.pem
ssl-cert = /path/to/server-cert.pem
ssl-key = /path/to/server-key.pem

8、故障恢复流程

8.1 主服务器故障恢复

sql
1、停止故障主服务器
systemctl stop mysqld

2、在备机上提升为主服务器
STOP SLAVE;
RESET SLAVE ALL;

3、修改配置文件中的server-id
4、重启MySQL服务

5、更新应用程序连接配置

8.2 数据一致性检查

sql
使用pt-table-checksum工具
pt-table-checksum \
host=master1 \
user=repl \
password=password \
databases=test_db

检查结果
SELECT * FROM mysql.pt_osc_checksums;

MySQL双主架构提供了良好的高可用性和容错能力,但在实际应用中需要仔细规划和持续监控,以确保系统的稳定运行。

Ai作答

📣 商家广告


算命

广告招商

广告招商

vps

姓名


0

IP地址: 110.239.103.53

搜索次数: 0

提问时间: 2025-11-06 01:43:24

🛒 域名购买
s-k.com.cn
84.gs
2223.com.cn
mmmf.com.cn
n-f.cn
yk.gs
kt6.cn
pai.pw
45.gold
663.net.cn

❓️ 热门提问
rust需要加速器吗
windows 2003服务器
服务器改dns
美国服务器cn2
美国主机空间租用
机柜 38u
腐蚀租服务器多少钱
云计算是运维吗
ip地址分配表
机房钥匙
豌豆Ai站群搜索引擎系统

🌐 域名评估
oibj.cn
nfwq.cn
59.gold
tab.ltd
5a.tw.cn
mqwy.cn
oxvc.cn
qktb.cn
ii.xj.cn
tieba.cyou

⛏ 最新挖掘
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜

🖌 热门作画

🤝 关于我们:
豌豆Ai 域名 建站 站群 留痕 推广 评估 源码
开发Ai 工具 日记 价格 加盟 广告 流量 留言 联系

🗨 加入群聊
群

🔗 友情链接
站群推广  公共考典  ai提问

🧰 站长工具
Ai工具  whois查询  搜索

📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。

👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。

上一篇 66342 66343 66344 下一篇