首页 > 数据库 >Docker下MySQL 8.0如何通过xtrabackup进行增量备份

Docker下MySQL 8.0如何通过xtrabackup进行增量备份

时间:2024-01-05 12:05:30浏览次数:48  
标签:8.0 -- 备份 BAKDIR xtrabackup MySQL backup

看到网上很多Docker环境下MySQL 8.0的xtrabackup都是通过docker compose的方式来进行备份的,个人觉得太麻烦了,于是通过修改MySQL Docker镜像的方式来扩展备份功能

第一部分  MySQL8.0功能扩展

1.MySQL 8.0官方镜像扩展xtrabackup,Dockerfile如下

FROM docker.io/mysql:8.0.34-oracle
RUN microdnf install -y rsync perl-DBD-MySQL perl-Digest-MD5 procps libev && microdnf clean all
RUN rpm -ivh https://repo.percona.com/yum/release/8.0/RPMS/x86_64/percona-xtrabackup-80-8.0.34-29.1.el8.x86_64.rpm

2.打包镜像

docker build -t mysql:8.0.34-oracle-with-xtrabackup .


第二部分 增量备份

1.增量备份脚本

#!/bin/bash
#创建备份用户
# create user backup identified with mysql_native_password by "123456";
# GRANT SELECT, RELOAD, LOCK TABLES, REPLICATION CLIENT, SHOW VIEW, EVENT, TRIGGER, PROCESS ON *.* TO 'backup'@'%';
EXEC="docker exec -it `docker ps |grep mysql|awk '{print \$1}'` bash -c "
SOCK=/var/run/mysqld/mysqld.sock
USER=root
PASS=123456
WEEK=$(date +%w)
DAY=$(date +%F)
YESTERDAY=$(date -d yesterday +%F)
days=7

BASE_BAKDIR=/data/backup
BAKDIR=${BASE_BAKDIR}/${DAY}
INCDIR=${BASE_BAKDIR}/${YESTERDAY}


function backup_all(){
        BAKDIR=$1
        mkdir -p ${BAKDIR}
        #rm -rf ${BAKDIR}/*
        ${EXEC} "xtrabackup --backup  --extra-lsndir=$BAKDIR  -S $SOCK -u$USER -p$PASS --stream=xbstream | gzip > $BAKDIR/backup.stream.gz"
}

function backup_inc(){
        BAKDIR=$1
        INCDIR=$2
        mkdir -p ${BAKDIR}
        #rm -rf ${BAKDIR}/*
        ${EXEC} "xtrabackup --backup --history --incremental-basedir=${INCDIR} --extra-lsndir=$BAKDIR -S $SOCK -u$USER -p$PASS --stream=xbstream | gzip > $BAKDIR/backup.stream.gz"
}


if [[ ${WEEK} -eq 0 || ${WEEK} -eq 3 ]];then
        backup_all ${BAKDIR}
else
        if [ ! -d ${INCDIR} ];then
                backup_all ${BAKDIR}
        else
                backup_inc ${BAKDIR} ${INCDIR}
        fi
fi

find ${BASE_BAKDIR} -name "*.gz" -type f -mtime +$days -exec rm {} \;

标签:8.0,--,备份,BAKDIR,xtrabackup,MySQL,backup
From: https://blog.51cto.com/fengwan/9112411

相关文章

  • MySQL 数据库归档工具pt-archive 与归档数据的安全存储 与 为什么每次归档都少数...
    DBA在日常的工作中,数据归档是DB人员工作中的必选项。这里有技术的因素和法律的因素,数据库中的业务在使用一段时间内,数据表中必然存在大量的过期的数据,这些数据将不在与当前的业务有关,同时这些数据的存在会影响当前一些SQL的执行的性能,所以从技术的角度需要进行数据的归档。从法......
  • 2038年MySQL5.7和MariaDB 10.6自动终止服务进程。MySQL 8.0.31未受影响。
    2038年MySQL5.7和MariaDB10.6自动终止服务进程。MySQL8.0.31未受影响。14年内,必须升级MySQL5.7数据库,重要的事情说三遍。见下面截图[Warning]Currenttimehasgotpastyear2038.Validatingcurrenttimewith5iterationsbeforeinitiatingthenormalservershutdownpr......
  • mysql8.0存储过程和存储函数的查看、修改、删除
    5、存储过程和存储函数的查看、修改、删除5.1、查看创建完之后,怎么知道我们创建的存储过程、存储函数是否成功了呢?MySQL存储了存储过程和函数的状态信息,用户可以使用SHOWSTATUS语句或SHOWCREATE语句来查看,也可直接从系统的information_schema数据库中查询。这里介绍3种方法。......
  • 基于各种场景使用mysqldump逻辑备份数据库
    1.mysqldump备份工具的语法格式mysqldump的使用语法:备份指定数据库mysqldump选项数据库备份指定数据库下的某张表mysqldump选项数据库表备份多个数据库mysqldump选项--database/-B数据库1数据库2备份所有数据库mysqldump选项--all-databases/-......
  • mysql8.0大小写的坑
    这两天又被mysql8.0大小写的问题坑到了,看下面的报错:chown:cannotaccess'./proc/38/fd/6':Nosuchfileordirectorychown:cannotaccess'./proc/38/fd/7':Nosuchfileordirectorychown:cannotaccess'./proc/38/fdinfo/4':Nosuchfileordire......
  • 基于ETLCloud的MySQL到SqlServer实时同步解决方案
    背景在以下场景下会用到不同数据库的实时同步问题,比如:数据备份与容灾、多地域数据同步、数据共享与协作、数据分析与报表生成、实时监控与报警系统等等。大多数情况用到的就是数据备份了吧,相同的数据库还好,不同的数据库不能完全兼容就很麻烦,所以会用到SymmetricDS、Maxwell、Debezi......
  • VMware ESXi 8.0U1 发布 - 领先的裸机 Hypervisor
    作者主页:sysin.org2023-04-18,VMwarevSphere8.0U1发布。详见:VMwarevSphere8Update1新增功能产品简介VMwareESXi:专门构建的裸机Hypervisor了解可直接安装到您的物理服务器的、可靠的裸机Hypervisor。通过直接访问并控制底层资源,VMwareESXi可有效地对硬件进行分区,以便......
  • VMware ESXi 8.0c macOS Unlocker & OEM BIOS (标准版和厂商定制版)
    ESXi8.0标准版,DellHPE联想浪潮定制版作者主页:sysin.org2023-03-30,VMwarevSphere8.0c发布。2023-03-13更新:Lenovo(联想)和Inspur(浪潮)定制版8.0b现已发布。2023-03-09更新:Cisco(思科)定制版现已发布。2023-02-14,vSphere8.0b发布,成为官方推荐下载版本,本站定......
  • VMware vCenter Server 8.0.0c - 集中式管理 vSphere 环境
    作者主页:sysin.orgVMwarevCenterServer是一款高级服务器管理软件,提供了一个集中式平台来控制vSphere环境,以实现跨混合云的可见性。简化且高效的服务器管理什么是vCenterServer?实现集中式可见性、简化且高效的大规模管理,以及在整个混合云中的可延展性,所有这一切,均可通过单一......
  • VMware ESXi 8.0c - 领先的裸机 Hypervisor (sysin Custom Image)
    本站发布Dell和HPE定制版ESXi8.0c镜像作者主页:sysin.org产品简介VMwareESXi:专门构建的裸机Hypervisor了解可直接安装到您的物理服务器的、可靠的裸机Hypervisor。通过直接访问并控制底层资源,VMwareESXi可有效地对硬件进行分区,以便整合应用并降低成本。它是业界领先的高......