### MySQL双主带双从架构详解与搭建步骤 在高可用性和数据冗余需求日益增长的背景下,MySQL的双主带双从(Multi-Master with Slave Replication)架构成为了一种有效的解决方案。此架构不仅提高了数据库系统的可用性,还通过负载均衡增强了性能,并确保了数据的一致性和完整性。以下是对这一架构的深入解析以及基本搭建步骤。 #### 一、理解双主带双从架构 双主带双从架构通常包括两个主服务器(Master1 和 Master2),以及各自对应的两个从服务器(Slave1_1、Slave1_2 和 Slave2_1、Slave2_2)。这种架构设计的核心在于,任意一个主服务器都可以接受读写操作,而从服务器则主要用于读操作,同时也作为主服务器的备份,用于灾难恢复。 #### 二、配置与搭建步骤 1. **环境准备** 需要在所有服务器上安装MySQL并进行基础配置。例如,在`hanxin`(Master1)、`pengyue`(Slave1_1)、`yingbu`(Slave1_2)、`xiaohe`(Master2)、`kuaitong`(Slave2_1)和`zhonglimei`(Slave2_2)上进行操作。 2. **修改my.cnf配置文件** 在每个节点上编辑my.cnf文件,调整MySQL的各项参数以适应高并发和复制的需求。示例配置如上所示,包括但不限于: - `port`:设置MySQL服务端口。 - `server-id`:每个MySQL实例必须有唯一的ID。 - `log-bin`:开启二进制日志记录。 - `binlog_format`:设置二进制日志格式。 - `log-slave-updates`:启用级联复制。 - `auto_increment_offset` 和 `auto_increment_increment`:解决自动递增字段冲突。 3. **创建复制用户并授权** 在Master1和Master2上,需要创建一个专门用于复制的用户,并授予其必要的权限。例如: ``` CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES; ``` 4. **配置主从复制** 在从服务器上,使用CHANGE MASTER TO语句配置复制源。例如,在`pengyue`上配置从`hanxin`复制: ``` CHANGE MASTER TO MASTER_HOST='192.168.100.140', MASTER_USER='repl', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1234; ``` 其中,`MASTER_LOG_POS`是主服务器上的二进制日志位置,可通过`SHOW MASTER STATUS`命令获取。 5. **启动复制** 在从服务器上执行`START SLAVE;`命令,开始从主服务器复制数据。可以使用`SHOW SLAVE STATUS\G`检查复制状态。 6. **测试与监控** 测试数据的正确复制,并持续监控系统性能和复制状态,确保所有节点运行正常。 #### 三、注意事项 - 每个主服务器的`server-id`必须唯一,以避免复制冲突。 - 在生产环境中,应使用安全的网络连接,并考虑使用SSL加密复制流量。 - 定期检查从服务器的延迟,确保数据同步的实时性。 - 考虑使用监控工具,如Prometheus和Grafana,来监控MySQL集群的健康状况。 通过以上步骤,可以成功搭建一个MySQL双主带双从架构,为高可用性和高性能的应用场景提供支持。
ip:192.168.100.140
host:hanxin
slave1_1
ip:192.168.100.142
host:pengyue
slave1_2
ip:192.168.100.143
host:yingbu
master1
ip:192.168.100.141
host:xiaohe
slave2_1
ip:192.168.100.144
host:kuaitong
slave2_2
ip:192.168.100.145
host:zhonglimei
mysql版本:5.5.32
[root@hanxin ~]# vim /usr/my.cnf
[client]
port = 1869
socket = /var/lib/mysql/mysql.sock
[mysqld]
port = 1869
socket = /var/lib/mysql/mysql.sock
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
thread_concurrency = 8
log-bin=mysql-bin
binlog_format=mixed
binlog-do-db=php_db
binlog-ignore-db=mysql
log-slave-updates
replicate-do-db=php_db
replicate-ignore-db=mysql
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
剩余13页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 纵向冗余校验(Longitudinal Redundancy Check,简称:LRC)
- django基于大数据的电影推荐系统71246(数据库+源码)
- HTML的初识CSS资源包
- 技术资料分享TSL2560-61-DS000110-2-00很好的技术资料.zip
- 技术资料分享TM1638数据手册很好的技术资料.zip
- 光纤涂覆效果怎么判断,一张图告诉你答案
- 技术资料分享TLV5618中文数据手册很好的技术资料.zip
- 技术资料分享SH-HC-05指令集很好的技术资料.zip
- 技术资料分享SH-HC-05蓝牙模块技术手册很好的技术资料.zip
- 光纤涂覆机中美日三强对比,揭示涂覆核心技术与六项金标准.pdf