前言
本次搭建Mysql主主架构基于我的keepalived+nginx+apache+mysql实现高可用、负载均衡的网站这篇文章
在搭建主主配置之前我们先介绍介绍mysql主从方案
mysql主从方案,有一主多从,读写分离等功能,但是单主存在单点故障,从库切换成主库需要作改动等缺点。
因此,如果是双主或者多主,就会增加mysql入口,增加高可用。
不过多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能完美解决自增长ID冲突问题。
MySQL双主(主主)架构方案思路是:
-
两台mysql都可读写,互为主备,默认只使用一台(masterA)负责数据的写入,另一台(masterB)备用;
-
masterA是masterB的主库,masterB又是masterA的主库,它们互为主从;
-
两台主库之间做高可用,可以采用keepalived等方案(使用VIP对外提供服务);
-
所有提供服务的从服务器与masterB进行主从同步(双主多从);
-
建议采用高可用策略的时候,masterA或masterB均不因宕机恢复后而抢占VIP(非抢占模式);
这样做可以在一定程度上保证主库的高可用,在一台主库down掉之后,可以在极短的时间内切换到另一台主库上(尽可能减少主库宕机对业务造成的影响),减少了主从同步给线上主库带来的压力;
但是也有几个不足的地方:
-
masterB可能会一直处于空闲状态(可以用它当从库,负责部分查询);
-
主库后面提供服务的从库要等masterB先同步完了数据后才能去masterB上去同步数据,这样可能会造成一定程度的同步延时;
搭建环境
主机名称
安装软件
ip地址
mysql1 |
mysql、mysql-server |
172.18.74.76 |
mysql2 |
mysql、mysql-server |
172.18.74.71 |
安装过程
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
mv http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm /etc/yum.repo/
rpm -ivh mysql.com/mysql-community-release-el7-5.noarch.rpm
yum install -y mysql&&yum install mysql-server -y
systemctl start mysql
首先我们配置mysql双主模型,让其数据同步
vim /etc.my.cnf
server-id=1
log-bin=mysql-bin
binlog_format=mixed
relay-log=relay-bin
relay-log-index=slave-relay-bin.index
auto-increment-increment=2
auto-increment-offset=1
log-slave-updates
其中红框历史需要添加的内容
粉框中是两个mysql不同的地方
mysql2的粉框处是2
然后重启mysql
systemctl restart mysql
auto-increment 两行的配置,使 masterA字段产生的数值是 奇数1,3,5,7 下面的masterB 产生的是 2,4,6,8 等,这样会避开双主 id 重复的问题
创建用户
grant replication slave on *.* to 'repl'@'172.18.74.71' identified by '123456'; ';
flush privileges;
web服务器授权
mysql> create database db_jd;
Query OK, 1 row affected (0.00 sec)
mysql> create user web@localhost identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on *.* to web@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> create user web@172.18.74.66 identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> create user web@172.18.74.69 identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'web'@'%' IDENTIFIED BY '123456' WITH GRANT OPTTION;
--------------
GRANT ALL PRIVILEGES ON *.* TO 'web'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION
--------------
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
查看主库的状态
配置同步信息
masterA上:
change master to master_host='172.18.74.71',master_port=3306,master_user='repl',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=632;
start slave;
show slave status\G
masterB上:
change master to master_host='172.18.74.76',master_port=3306,master_user='repl',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=632;
start slave;
show slave status\G
测试主主同步
在masterA上创建一个数据库测试同步效果
mysql> create database myTest;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myTest |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
到masterB查看是否已经同步创建数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myTest |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
成功!
分享到:
相关推荐
描述:文档验证确实可以配置成功双主一从的 MySQL 架构,基本算是描述的比较全面 标签:mysql 主主 mysql 主从 双主一从 MySQL 双主一从架构 MySQL 双主一从架构主要由两个主服务器和一个从服务器组成。两个主...
本指导文档聚焦于“MySQL双主单活+Keepalived”架构,旨在实现数据库的高可用部署,以便在主节点故障时能自动切换到备用节点,保持业务连续运行。以下是关于这一主题的详细知识解释: 一、MySQL双主复制 MySQL双主...
### MySQL双主带双从架构详解与搭建步骤 在高可用性和数据冗余需求日益增长的背景下,MySQL的双主带双从(Multi-Master with Slave Replication)架构成为了一种有效的解决方案。此架构不仅提高了数据库系统的可用...
MySQL双主故障转移架构 MySQL双主故障转移架构是指在MySQL集群环境中,使用双主架构来实现高可用性和灾难恢复。双主架构中,两个MySQL服务器实例都可以提供读写服务,一个作为主服务器,另一个作为备用服务器。在...
MySQL 需要安装在两个节点上,以实现双主架构。Keepalived 需要安装在每个节点上,以实现高可用性。 编辑配置文件 需要编辑 /etc/my.cnf 和 /etc/keepalived/keepalived.conf 配置文件,以实现 MySQL 和 ...
MySQL数据库在许多业务环境中是核心组件,为了保证数据的安全性和服务的连续性,通常需要实现主备高可用和双活架构。Nginx作为一个流行的反向代理服务器,可以通过配置实现对MySQL主备集群的负载均衡,提高系统的...
MySQL-HA(High Availability)双主安装旨在通过构建一个高可用性架构来确保MySQL服务即使在一个节点发生故障的情况下仍能不间断地运行。这种架构依赖于MySQL的心跳机制和其他组件来实现故障检测、自动切换等功能。 ...
MySQL双活架构涉及的关键知识点包括: 1. **MySQL复制**:MySQL的主从复制是双活架构的基础。通过同步主服务器上的事务到从服务器,可以确保数据的一致性。常见的复制方式有异步、半同步和全同步复制,根据业务需求...
3. MySQL 双主互备模式:MySQL 双主互备模式是指两台 MySQL Server 之间的互备关系,两台服务器互为主从,但同一时刻只有一个 MySQL Server 可读写,另一个 MySQL Server 只能进行读操作,这样可保证数据的一致性。...
### 基于MySQL 5.7 + Keepalived的双主搭建详解 #### 一、项目背景与目的 在高可用性和数据安全性的需求下,很多企业选择使用双主或多主架构来确保数据库服务的稳定运行。本文将详细介绍如何通过MySQL 5.7和...
### MySQL 5.7.22 双主一从配置详解 #### 一、准备工作与架构介绍 在开始双主一从的配置之前,我们首先需要准备必要的硬件资源及了解整个架构的设计理念。 ##### 1. 准备工作 - **虚拟机配置**:至少需要三台...
配置文件my.cnf是MySQL服务器的主配置文件,其中包含了服务器的启动参数。在这个场景中,我们需要在每个管理节点上创建并编辑my.cnf,添加如下的配置段: ```ini [mysqld] ndbcluster=1 socket=/var/run/mysqld/...
Mysql-mmm是一种为MySQL数据库实现双主架构的高可用集群技术,它的主要作用是监控和管理主主复制的MySQL数据库集群,保证业务的持续可用性。MMM的全称是Master-Master replication manager for MySQL,它使用Perl...
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要讲述的是如何通过Keepalived与MySQL构建一个互为主从(双主)的高可用性架构。接下来将详细解析这些步骤,并进一步扩展相关的知识点。 ### 一、...
在构建高可用性数据库系统时,CentOS 7 下的 MySQL 双主备结合 keepalived 虚拟 IP 是一种常见的解决方案。该方案确保了数据的实时备份和在一台服务器宕机时能够无缝切换到另一台服务器,从而提供不间断的服务。 ...