keepalived mysql双主架构图_Keepalived+MySQL双主热备实现高可用方案配置

本文详细介绍了如何使用Keepalived和MySQL搭建双主热备高可用架构,包括环境描述、MySQL配置、Keepalived配置,确保在一台服务器故障时能自动切换到另一台,保证服务不间断。
摘要由CSDN通过智能技术生成

双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短。

Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层、第4层和第7层交换机的功能。主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能,负载均衡实现需要依赖Linux的虚拟服务内核模块(ipvs),而高可用是通过VRRP协议实现多台机器之间的故障转移服务。

方案拓扑图

环境描述:

MySQL安装推荐使用lnmp一键安装包安装MySQL服务器,方便快捷。

服务器系统:CentOS Linux release 7.5.1804 (Core)

Master A:192.168.0.109        安装mysql和keepalived

Master B:192.168.0.108        安装mysql和keepalived

VIP:192.168.0.50

MySQL配置部分

Master A 节点配置

在my.cnf文件的[mysqld]配置区域添加下面内容:

# 服务器的唯一ID,一般用IP区分

server-id = 109

# 复制过滤,不需要备份的数据库

binlog-ignore-db = mysql,information_schema

# 开启二进制日志功能,名字最好有含义(比如项目名)

log-bin = mysql-bin

# 为 0 时性能最好,风险大;为 1 时写入性能降低5倍以上,数据安全性高

sync_binlog = 1

# 为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存

binlog_cache_size = 1M

# 主从复制的格式(mixed,statement,row,默认格式是statement)

binlog_format = mixed

# 二进制日志自动删除/过期的天数,默认值为 0,表示不自动删除

expire_logs_days = 10

# 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断

# 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致

slave_skip_errors = all

# 作为从服务器时的中继日志

relay_log = mysql-relay-bin

# log_slave_updates 表示 slave 将复制事件写进自己的二进制日志

log_slave_updates = 1

# 主键自增规则,避免主从同步ID重复的问题

auto_increment_increment = 2 # 自增因子(每次加2),一般为MySQL服务器数量

auto_increment_offset = 1 # 自增偏移(从1开始),第一台MySQL写1,第二台写2

配置好之后重启MySQL:

/etc/init.d/mysql restart

登录MySQL:

/usr/local/mysql/bin/mysql -uroot -p

-- 创建数据库同步用户,并授予相应的权限

mysql> GRANT replication SLAVE,

replication client ON *.* TO 'syncroot' @'192.168.0.%' IDENTIFIED BY 'sync123456';

-- 刷新授权表信息

mysql> FLUSH PRIVILEGES;

-- 查看binlog文件的position(偏移)和File(日志文件)的值,配置 Master B 的 Slave 时需要用到。

mysql> SHOW MASTER STATUS;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000009 | 372 | | mysql,information_schema |

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

配置 Master A 的 Slave :

在 Master A 上执行同步操作,必须要在 Master B上创建同步账户之后才能执行。 master_user和master_password是在 Master B 上执行grant replication slave...创建的用户和密码。 master_log_file和master_log_pos是在 M

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值