mysql主备需要几台设备_Mysql双主互备+keeplived高可用架构

本文详细介绍了如何搭建MySQL双主互备结合Keeplived实现高可用架构,包括双主互备的配置、Keeplived的安装与配置,以及故障切换和恢复过程,确保在主节点故障时能快速切换,保障服务的连续性和数据的可靠性。
摘要由CSDN通过智能技术生成

一、Mysql双主互备+keeplived高可用架构介绍

Mysql主从复制架构可以在很大程度保证Mysql的高可用,在一主多从的架构中还可以利用读写分离将读操作分配到从库中,减轻主库压力。但是在这种架构中,主库出现故障时需要手动将一台从库提升为主库。在对写操作要求较高的环境中,主库故障在主从架构中会成为单点故障。因此需要主主互备架构,避免主节点故障造成写操作失效。

在双主互备的架构中,每台Mysql都充当主服务器,同时充当对方的从服务器。在任意一台服务器上的写操作都会被复制到另一台服务器上,从而保证了数据的可靠性。

在双主互备的基础上加上keeplived,在其中一台机器上绑定虚拟ip(VIP)。利用vip统一对外服务,可以避免在两个节点同时写数据造成冲突。同时当keeplived主节点发生故障时,keeplived会自动将VIP切换到备节点上,从而实现主服务器的高可用。

c2fc5be3672069c774c314648d83bbb6.png

Mysql双主互备+keeplived高可用架构图

二、Mysql双主互备架构部署

在上一篇Mysql主从复制操作中已经完成了Mysql主从架构的部署。在此基础上,需要在原Master上开启relay-log,在原Slave服务器上开启log-bin,同时在Mysql248上指定Mysql249为自己的主服务器并开启slave即可。

1.开启原Master上的relay-log,指定不复制的库[root@Mysql-248 mysql-5.6.30]# grep -A8 'mysqld' my.cnf

[mysqld]

port = 3306

server_id = 1

log-bin=mysql-bin

#以下部分为在原基础上新增的内容

relay-log = mysql-relay-bin

replicate-wild-ignore-table=mysql.%

replicate-wild-ignore-table=test.%

replicate-wild-ignore-table=information_schema.%

2.开启原Slave上的log-bin,指定不复制的库

[root@Mysql-249 mysql-5.6.30]# grep -A8 'mysqld' my.cnf[mysqld]

port = 3306

server_id = 2

relay-log = mysql-relay-bin

#以下部分为在原基础上新增的内容

log-bin=mysql-bin

replicate-wild-ignore-table=mysql.%

replicate-wild-ignore-table=test.%

replicate-wild-ignore-table=information_schema.%

3.在Mysql248服务器上指定Mysql249为自己的主服务器并开启slave####  ① 在Mysql249上查看当前master信息,并建立复制用户

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 |      493 |              |                  |                   |

+------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

mysql> grant replication slave on *.* to 'repl_user'@'192.168.175.%' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

#### ② 在Mysql248上指定Mysql249为自己的主服务器,开启slave

mysql> change master to \

-> master_host='192.168.175.249',

-> master_user='repl_user',

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值