为什么要采用双机热备?
单节点Haproxy不具备高可用,必须要要有冗余设计
关键因素:虚拟IP地址
一个网卡对应多个虚拟IP
利用Keepalived实现双机热备
Keepalived争抢 --> 虚拟IP
Haproxy双机热备方案
docker exec -it h1 bash
apt-get update
apt-get install keepalived
Keepalived配置文件
配置文件vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
# Keepalived的身份(MASTER主服务,BACKUP备服务器。主服务器要抢占虚拟IP,备用服务器不会抢占IP)
state MASTER
# 虚拟路由标识,MASTER和BACKUP的虚拟路由标识必须一致。标识可以是0~255
virtual_router_id 51
# 网卡设备
interface eth0
# MASTER权重要高于BACKUP数字越大优选级越高
priority 100
# MASTER与BACKUP节点间同步检查的时间间隔,单位为秒。主备之间必须一致。
advert_int 1
# 主从服务器验证方式。主备必须使用相同的密码才能正常通信
authentication {
auth_type PASS
auth_pass 123456
}
# 虚拟IP地址。可以设置多个虚拟IP地址,每行一个
virtual_ipaddress {
172.18.0.201
}
}
启动Keepalived
service keepalived start
热备份数据
冷备份:关闭数据库时候的备份方式,通常做法是拷贝数据文件。
冷备份是最简单最安全的一种备份方式
大型网站无法做到关闭业务备份数据,所以冷备份不是最佳选择
pxc下线一个节点做冷备份。
热备份:系统运行的状态下备份数据,也是难度最大的备份
MySQL常见的热备份有LVM和XtraBackup两种方案
XtraBackup直接备份,无需加锁
XtraBackup介绍
一款基于InnoDB的在线热备工具,具有开源免费,支持在线热备,占用磁盘空间小,能够非常快速地备份与恢复mysql数据库
优势:
- 备份过程中不锁表、快速可靠
- 备份过程中不会打断正在执行的事务
- 能够基于压缩等功能节约磁盘空间和流量
全量备份和增量备份
全量备份全部数据。备份过程时间长,占用空间大
增量备份只备份变化的那部分数据。备份时间短,占用空间小
docker volume create backup
docker stop node1
docker rm node1
docker -v backup:/data -e CLUSTER_JOIN=node2
PXC全量备份步骤
apt-get update
apt-get install percona-xtrabackup-24
innobackupex --user=root --password=123456 /data/backup/full
PXC全量恢复步骤
- 数据库可以热备份,但是不能热还原。为了避免恢复过程中的数据同步,我们采用空白的MySQL还原数据,然后再建立PXC集群
- 还原数据前要将未提交的事务回滚,还原数据之后重启MySQL
rm -rf /var/lib/mysql/*
innobackupex --user=root --password=123456 --apply-back /data/backup/full/2018-04-15_05-09-07/
innobackupex --user=root --password=123456 --copy-back /data/backup/full/2016-xx--xx_xx-xx-xx/










网友评论