MySQL备份和恢复[2]-基于LVM的快照备份
准备工作
请求锁定所有表
mysql> FLUSH TABLES WITH READ LOCK;
记录二进制日志文件及事件位置
mysql> FLUSH LOGS;
mysql> SHOW MASTER STATUS;
mysql -e 'SHOW MASTER STATUS' > /PATH/TO/SOMEFILE
创建快照
lvcreate -L # -s -p r -n NAME /DEV/VG_NAME/LV_NAME
释放锁
mysql> UNLOCK TABLES;
挂载快照卷,执行数据备份
备份完成后,删除快照卷
制定好策略,通过原卷备份二进制日志
范例
#在目标服务器(10.0.0.18)安装mariadb-server,不启动服务
[root@centos8 ~]#dnf install mariadb-server
#在源主机(10.0.0.8)执行
[root@centos8 ~]# systemctl stop mariadb
[root@centos8 ~]# scp /etc/my.cnf.d/mariadb-server.cnf 10.0.0.18:/etc/my.cnf.d/
[root@centos8 ~]# scp -r /var/lib/mysql/* 10.0.0.18:/var/lib/mysql/
[root@centos8 ~]# scp -r /data/logbin/ 10.0.0.18:/data/ #10.0.0.18事先存
在/data/目录
#保留属性:可以用[root@centos8 ~]#rsync -av /var/lib/mysql/
10.0.0.18:/var/lib/mysql/
#在目标主机(10.0.0.18)执行
[root@centos8 ~]#chown -R mysql.mysql /var/lib/mysql/
[root@centos8 ~]#chown -R mysql.mysql /data/logbin/
[root@centos8 ~]#systemctl start mariadb
拷贝时权限问题
备份下来要做测试
写一个备份还原测试脚本
要写详细的文档。
二进制日志很重要。
备份之后的和崩溃之间的没办法恢复,需要二进制日志填坑。
适合传统业务,不适合
* * *
胖并快乐着的死肥宅
* * *