《Linux运维总结:基于xtrabackup8工具全量物理备份Mysql8数据自动化工具(方案一)》

一、背景信息

说明:由于业务系统的特殊性,对数据的备份要求非常高,且数据量非常大,所以这里采用xtrabackup工具来对Mysql数据库进行全量物理备份。由于xtrabackup工具操作复杂,这里为了简便,基于xtrabackup工具编写了一键全量备份恢复脚本。

环境信息如下:

主机IP操作系统Mysql版本CPU架构
192.168.1.191Centos7.68.0.30x86_64

二、工具下载

基于xtrabackup8工具全量物理备份Mysql8数据自动化工具


三、工具说明

说明:基于Centos7.6操作系统,Mysql8.0.30版本数据库进行编写的一键备份工具。

实现功能如下:

1、一键全量物理备份
2、根据指定日期实现数据物理恢复

目录列表如下:
在这里插入图片描述


四、操作步骤

4.1、全量物理备份

1、创建具有完整备份所需的最低权限的数据库用户

#建议创建具有完整备份所需的最低权限的数据库用户,当然你也可以使用root用户来备份
mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Lolaage@backup2022' PASSWORD EXPIRE NEVER;
mysql> GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
mysql> GRANT SELECT ON performance_schema.log_status TO 'bkpuser'@'localhost';
mysql> GRANT SELECT ON performance_schema.keyring_component_status TO bkpuser@'localhost';
mysql> GRANT SELECT ON performance_schema.replication_group_members TO bkpuser@'localhost';

2、修改env.conf变量文件

# Mysql服务主机ip地址,根据实际情况填写
export MYSQL_HOST="localhost"

# Mysql服务端口,根据实际情况填写
export MYSQL_PORT="53000"

# Mysql服务socket,根据实际情况填写
export MYSQL_SOCKET="/var/lib/mysql/mysql.sock"

# Mysql备份用户名称,根据实际情况填写
export MYSQL_BACKUP_USER="bkpuser"

# Mysql备份用户密码,根据实际情况填写
export MYSQL_BACKUP_PASSWORD="Lolaage@backup2022"

# Mysql配置文件绝对路径
export MYSQL_CONFIG_FILE="/etc/my.cnf"

# mysql服务数据目录
export MYSQL_DATA_DIR="/var/lib/mysql"

# Mysql备份保留天数,根据实际情况填写
export MYSQL_FULL_SAVE_DAYS="15"

# 根据指定日期恢复Mysql数据,如不需要恢复,则无需填写,如需要恢复,根据实际情况填写
# # 例如: 2022-12-26
export MYSQL_RESTORE_DATE_TIME="2022-12-16"

3、执行一键备份

[root@localhost xtrabackup_tools]# ./op.sh backup

执行结果,如下图所示:
在这里插入图片描述
备份后的文件,如下图所示:
在这里插入图片描述

4、每天凌晨2点半定时备份

30 02 * * * /opt/xtrabackup_tools/op.sh backup

4.2、全量物理恢复

说明:如果没有操作1、2步也没关系,执行恢复的时候会有报错提示,告诉你怎么操作,生产环境建议找一台新的实例主机上恢复。

1、停止Mysql服务

[root@localhost xtrabackup_tools]# systemctl stop mysqld

2、确保Mysql数据库必须为空
说明:生产环境建议将数据目录下的文件mv至其它目录

3、执行一键恢复

[root@localhost xtrabackup_tools]# ./op.sh restore

如下图所示:
在这里插入图片描述

4、启动Mysql服务

[root@localhost xtrabackup_tools]# systemctl start mysqld

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值