mysql完全备份脚本(pxb方式)
Percona XtraBackup(简称PXB) 是 Percona公司开发的一款开源的用于MySQL数据库备份工具,支持MySQL、Percona server和MariaDB,是目前较为受欢迎的主流备份工具。
注意:xtrabackup只能备份innoDB和xtraDB两种数据引擎的表,而不能备份MyISAM数据表。
mysqldump、MySQL热拷贝都无法实现对数据库进行增量备份, 在实际生产环境中增量备份是非常实用的,pxb不仅可以实现全量备份,也可以实现增量备份,如果数据量不是特别大,可以通过pxb实现每日全备,或者每日增量备份,一周全备一次。
下面例子是通过pxb来实现完全备份mysql的脚本,:
#!/bin/bash: '@function: 备份mysql数据到远程机器上并压缩@date: 2021-11-26@author: gongguan@notice: 下面的压缩后文件中因为有分钟,包含冒号,因此用tar命令解压的时候,会提示tar: Cannot connect to,因此在解压的时候需要添加参数--force-local即可'date=$(date +"%Y-%m-%d~%H:%M:%S")bk_dir=/data/backup/mysqlssh [email protected] test -d ${bk_dir}if [ $? -eq 0 ];thenecho "dir exists"elseecho "目录不存在,需要创建"ssh [email protected] mkdir -p ${bk_dir}fifull_bk() {echo "<<<<<<<<<<<<<<<<<<<<<<开始完全备份>>>>>>>>>>>>>>>>>>>>>"innobackupex --defaults-file=/etc/my.cnf --user=bkuser --password=bk123456 --no-timestamp --stream=tar ${bk_dir} | ssh [email protected] "gzip > ${bk_dir}/bk_mysql-${date}.tar.gz"sleep 2if [ $? -eq 0 ];thenecho "mysql bakcup success-${date}" >> ${bk_dir}/result_success.txtssh [email protected] "find ${bk_dir} -type f -name 'bk_mysql*' -mtime +2 -exec rm -rf {} \;"elseecho "mysql backup failed-${date}" >> ${bk_dir}/result_failed.txtfi}full_bk
说明:
第10-16行:测试远程机器是否存在指定目录,如果不存在就创建目录
第18行:定义完全备份函数
第20行:通过pxb命令执行备份数据,并压缩打包后传递到远程机器上
第24行:删除2天之前的备份文件
第29行:调用函数
pxb工作原理与语法使用可参看链接:https://www.ywdevops.cn/index.php/2021/11/24/xtrabackup/
