环境:
Centos7 Mysql5.7.28
服务器A IP地址192.168.10.8 A服务器已安装配置过keepalived,且由虚拟ip10.10提供对外服务
服务器B IP地址192.168.10.9
安装keepalived后 虚拟地址为192.168.10.10
数据库目录都在/var/lib/mysql
需求:
实现A数据库全量迁移至数据库B,尽可能实现不丢失数据,不影响运行
步骤:
1.安装xtrabackup,安装时根据提示可能需要安装依赖包
#wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.20/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm
#rpm -ivh percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm
安装完成后,输入innob,按tab键,如果可以自动补全innobackupex,即说明安装成功。
2.进行全量备份
#innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 /mnt/bak
/mnt/bak为备份文件的目录
3.数据还原
通过nfs挂载或者直接拷贝的方式,将全量备份的数据从8拷贝到9的/mnt/bak目录下,然后做第一步还原预准备
#innobackupex --apply-log /mnt/bak/2021xxxxx
第二步开始全量备份还原
#innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync /mnt/bak/2021xxxxx
4.配置数据库my.cnf,为数据库主从同步做主备
在[mysqld]下添加如下配置
log-bin=mysql-bin
server_id=74 #id值可自己定义,但是主从不能一样!
配置完成后启动B上数据库
#systemctl start mysql
5.配置主从同步
在A服务器上进入数据库,配置权限
GRANT REPLICATION SLAVE ON *.* TO 'backup9'@'192.168.10.9 IDENTIFIED BY '123456'; #用户名自己设定,密码可能提示复杂度
flush privileges;
在B服务器上进入数据库配置主从
change master to master_host='192.168.10.8',master_user='backup9',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=3892;
start slave;
show slave status\G;
master_log_file和master_log_pos的值在主数据库内查看,根据实际填写
查看主从状态,出现如下两个YES说明主从同步正常,如出现报错时可根据提示查找原因
6.安装并配置keepalived
本实验环境,服务器A之前是安装过keepalived的,且有虚拟机IP地址对外提供服务,因此只需对服务器B安装配置keepalived,两台服务器配置保持一致,服务器B配置如下
! Configuration File for keepalived
global_defs {
router_id 33
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 37
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.10/24
}
}
virtual_server 192.168.10.10 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.10.9 3306 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
配置完成后启动服务器B的keepalived
#systemclt start keepalived
状态正常后,下一步关闭服务器A的keepalived
#systemctl stop keepalived
至此,完成数据库由A服务器到B服务器的整体迁移。
相关:
https://www.cnblogs.com/jimmyTang-J/p/11812461.html
https://blog.csdn.net/haoding205/article/details/81459153
https://blog.csdn.net/fly910905/article/details/93721561