MySQL数据库技术之xTraBackup备份工具

xTraBackup介绍

MySQL冷备、mysqldump、MySQL热拷贝都无法实现对数据库进行增量备份。在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况下,可以每天进行完整备份,如果每天产生的数据量较大,需要定制数据备份策略。例如每周实用完整备份,周一到周六实用增量备份。而Percona-Xtrabackup就是为了实现增量备份而出现的一款主流备份工具,xtrabakackup有2个工具,分别是xtrabakup、innobakupe,本方案采用innobackup进行数据库备份。

xTraBackup部署

前提条件

  1. 确保数据库开启了binlog日志,如没开启需开启下,注意开启此参数需重启数据库。

检查命令:
show variables like ‘%log_bin%’;

  1. 额外的备份存储空间。

部署安装

# 下载安装包
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.21/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.21-1.el7.x86_64.rpm

# 部署安装包
yum install -y percona-xtrabackup-24-2.4.21-1.el7.x86_64.rpm

# 检查安装状态
innobackupex -v

备份路径配置

mkdir -p /data/backup/mysql_backup/
mkdir /data/backup/logs/

备份脚本配置

vi /data/backup/mysql_backup.sh

#!/bin/bash

. /etc/profile
. ~/.bash_profile

bakdir="/data/backup/mysql_backup/"
logfile="/data/backup/logs/full_mysql_`date '+%Y%m%d'`.log"

echo "=============================== "`date +"%Y-%m-%d %H:%M:%S"`" begin to backup ===============================" >> $logfile
innobackupex \
--defaults-file=/etc/my.cnf \
--user=root \
--password="" \
--socket=/home/mysql/mysql.sock \
--port=3306 \
--safe-slave-backup \
--safe-slave-backup-timeout=7200 \
--slave-info \
--backup $bakdir \
2>> $logfile
echo "=============================== "`date +"%Y-%m-%d %H:%M:%S"`" finished backup ===============================" >> $logfile
find $bakdir -mtime +30 -exec rm -rf {} \;

计划任务配置

0 2 * * * /data/backup/mysql_backup.sh

建议备份时间选择业务尽可能影响最小的时间点,避免由于备份锁表引起业务缓慢异常。

备份数据检查

文件检查

备份文件包括数据库文件、配置文件和一致性所需的xtrabackup_checkpoints文件。

在这里插入图片描述

日志检查

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_38623994/article/details/110193827