mysql备份恢复详解

📅 2026/7/11 22:03:14
mysql备份恢复详解
辑备份将数据导出为 SQL 语句优点跨版本、跨平台、可编辑、可单库单表所有版本通用缺点大数据量慢因为是将语句导出为一条条sql工具mysqldump、mydumper物理备份直接拷贝数据文件优点极快、适合 TB 级数据缺点同版本、同系统、不能单独恢复某张表工具xtrabackup、MySQL Clone、冷拷贝回到顶部逻辑备份之mysqldumpmysqldump 是 MySQL 官方自带的逻辑备份工具通过生成 SQL 脚本的方式实现数据库备份、迁移、恢复是 MySQL 生态中最常用的备份方案之一支持所有 MySQL 分支版本MySQL 5.x/8.x、MariaDB、Percona Server 等。mysqldump 本质是通过连接到 MySQL 服务将数据库中的表结构、数据、索引、触发器、存储过程、函数、事件等对象转换为标准的 CREATE、INSERT 等 SQL 语句最终输出为一个可直接执行的 SQL 脚本文件。mysqldump优缺点优点官方原生无需额外安装兼容性极强备份结果为纯文本 SQL可读性高、便于编辑、跨平台通用支持全量、部分库/表、结构-only、数据-only等多种备份粒度支持导出为CSV/XML等其他格式备份期间可控制锁策略尽可能降低对业务的影响缺点逻辑备份备份/恢复速度较慢尤其是TB级以上大库单线程备份无法利用多核CPUMySQL 8.0.26 支持并行备份 --parallel大表备份会产生大量IO影响业务性能不支持实时增量备份需结合binlog实现增量mysqldump语法和基础参数基础语法mysqldump [选项] 备份文件.sql通用连接参数所有场景必填参数 说明 示例-u/–user 数据库用户名 -u root-p/–password 数据库密码建议交互式输入避免明文在命令行泄露 -p 或 --password123456-h/–host 数据库地址 -h 127.0.0.1-P/–port 数据库端口 -P 3306-S/–socket 本地socket文件路径本地连接时使用 -S /tmp/mysql.sock–default-character-set 指定导出字符集避免乱码 --default-character-setutf8mb4备份范围控制用于指定备份哪些库表参数 说明–all-databases/-A 备份所有数据库包含系统库mysql、information_schema等–databases/-B 备份指定的多个数据库会自动生成 CREATE DATABASE 和 USE 语句–ignore-database 备份所有库时排除指定库可多次使用排除多个库–tables 备份指定库下的单个/多个表参数顺序库名 表1 表2…–ignore-table 备份库时排除指定表格式库名.表名可多次使用–no-data/-d 仅备份表结构不备份数据–no-create-info/-t 仅备份数据不备份表结构–where/-w 按条件过滤备份数据默认情况下mysqldump不会备份存储过程、触发器、函数、事件、视图等高级对象需要手动开启参数 说明–routines/-R 备份存储过程和函数–triggers 备份触发器默认开启–skip-triggers关闭–events/-E 备份事件调度器–default-character-setutf8mb4 必须指定避免中文、emoji等字符乱码锁与一致性控制这是生产环境备份最核心的参数直接决定备份是否一致、对业务的影响大小参数 适用引擎 说明 业务影响–lock-tables/-l MyISAM 备份时锁定所有表只读保证备份一致性 所有表不可写对业务影响极大不建议生产用–lock-all-tables/-x 所有引擎 全局锁整个实例只读 业务完全停写仅适用于停机维护场景–single-transaction InnoDB 利用InnoDB的MVCC特性开启一个一致性快照事务备份期间不锁表不影响业务读写 几乎无影响InnoDB引擎生产环境首选–master-data2 主从架构 备份结果中记录备份时刻的binlog文件名和位置注释形式值为1则不注释用于搭建从库/基于binlog的增量恢复 无额外影响–flush-logs/-F 所有引擎 备份前刷新binlog生成新的binlog文件便于后续增量恢复 几乎无影响性能优化参数参数 效果–quick/-q 逐行读取表数据不缓存整个表到内存大表备份必备避免OOM–max_allowed_packet1G 增大数据包限制避免大字段/大表备份失败–net_buffer_length64K 增大网络缓冲区提升传输速度–parallelN MySQL 8.0.26 支持并行备份N个库大幅提升备份速度mysqldump备份实战备份所有的库-u指定用户-p指定密码-A代表所有的库–single-transaction在备份期间生成备份数据要保证一致性新版数据库 利用快照技术 旧版数据库 利用锁库方式–master-data2–master-data2mysqldump -uroot -proot -A --single-transaction --master-data2 /tmp/test.sql备份单个库-u指定用户-p指定密码-B备份指定的多个数据库会自动生成 CREATE DATABASE 和 USE 语句–single-transaction在备份期间生成备份数据要保证一致性新版数据库 利用快照技术 旧版数据库 利用锁库方式–master-data2–master-data2mysqldump -u root -proot -B test_db --single-transaction --master-data2 test_db.sql备份指定的表-u指定用户-p指定密码-B备份指定的多个数据库会自动生成 CREATE DATABASE 和 USE 语句–single-transaction在备份期间生成备份数据要保证一致性新版数据库 利用快照技术 旧版数据库 利用锁库方式–master-data2–master-data2mysqldump -u root -proot test_db user --single-transaction --master-data2 test_db_user.sql只备份结构不备份数据-d仅备份表结构不备份数据mysqldump -u root -p -d test_db test_db_schema.sqlmysqldump恢复实战方式一恢复全库mysql -u root -p all_db_20250101.sql恢复单库必须先创建库mysql -u root -p -e “CREATE DATABASE test_db;”mysql -u root -p test_db test_db.sql方式二进入数据库中执行mysql source /tmp/all.sql回到顶部逻辑备份之mydumpermydumper 是一款开源的 多线程高性能 MySQL/MariaDB/Percona Server 逻辑备份工具由 MySQL 社区开发是 mysqldump 的首选替代方案备份速度比原生 mysqldump 快 3~10 倍是中大型数据库逻辑备份场景的工业标准工具。mydumper优势和原理优势多线程并行备份充分利用多核CPU资源备份速度远快于单线程的mysqldump一致的备份快照所有线程备份的是同一时间点的数据保证备份一致性支持InnoDB无锁备份内置压缩备份时直接压缩无需管道拼接节省磁盘空间分表存储每个表的结构和数据单独存储为文件方便单表/部分表恢复无需解析整个大备份文件备份进度监控实时显示备份进度、已备份行数、速度等信息内置限速支持限制备份IO速度避免备份占满磁盘带宽影响业务开源免费活跃维护支持所有主流MySQL分支版本配套恢复工具 myloader多线程并行恢复恢复速度比mysql命令快5~20倍原理主线程连接到MySQL开启一致性快照事务InnoDB获取全局读锁FTWRL保证非InnoDB表备份一致性记录当前binlog文件名和位点用于搭建从库/增量恢复启动N个工作线程每个线程负责备份部分表并行执行备份任务备份完成后释放全局锁生成备份元数据文件每个表的结构导出为dbname.tablename-schema.sql数据导出为dbname.tablename.sql可自动压缩为.gz格式mydumper安装方式下载地址https://github.com/mydumper/mydumper/releasescentosCentOS/RHEL 7/8/9yum update -y yum install mydumper -yDebian/Ubuntuapt update -y apt install mydumper -y验证一下rootmaster:~# mydumper --versionmydumper 0.9.5, built against MySQL 10.3.22mydumper核心参数详解分类 参数 说明连接参数 -u/–user 数据库用户名-p/–password 数据库密码-h/–host 数据库地址-P/–port 数据库端口-S/–socket 本地 socket 文件路径–default-character-set 导出字符集默认 utf8建议指定 utf8mb4备份范围 -B/–database 备份指定数据库可多次使用指定多个库-T/–tables-list 备份指定表格式db1.table1,db2.table2–ignore-database 排除指定数据库–ignore-table 排除指定表格式db1.table1–no-schemas/-m 仅备份数据不备份表结构–no-data/-d 仅备份表结构不备份数据–where/-w 按条件过滤备份数据例如–where“create_time‘2026-01-01’”性能控制 -t/–threads 备份线程数默认 4建议设置为 CPU 核心数的 1~1.5 倍-c/–compress 开启备份文件压缩gzip 格式大幅节省磁盘空间–compress-threads 压缩线程数默认等于备份线程数-r/–rows 大表分块备份每 N 行拆分为一个文件避免单文件过大–limit-io 限制 IO 速度单位 MB/s避免备份占满带宽影响业务一致性控制 --no-locks/-k 不获取全局锁仅适用于所有表都是 InnoDB 且不需要一致性的场景–single-transaction InnoDB 引擎无锁一致性备份和 mysqldump 参数效果一致生产环境必备–lock-all-tables/-x 全局锁所有表仅 MyISAM 引擎场景使用输出控制 -o/–outputdir 备份文件输出目录必须指定mydumper 会自动创建目录-F/–flush-logs 备份前刷新 binlog便于增量恢复–binlog-position/-M 备份元数据中记录 binlog 文件名和位点默认开启–triggers 备份触发器默认开启–routines/-R 备份存储过程和函数–events/-E 备份事件调度器–hex-blob 将 BLOB 类型以十六进制导出避免数据损坏其他 --verbose/-v 日志级别0静默,1错误,2警告,3信息,4调试默认 3–logfile 备份日志输出到指定文件mydumper备份实战备份所有的库mydumper-u root-p ‘你的密码’-h 127.0.0.1-P 3306–single-transaction–default-character-setutf8mb4-R -E–hex-blob-c-t 8-r 100000-o /data/backup/mysql_full_$(date %Y%m%d_%H%M%S)备份指定的库备份db1和db2两个库mydumper -u root -p -B db1 -B db2 -c -t 4 -o /data00/backup/db1_db2备份指定的表备份db1库的user表和order表mydumper -u root -p -B db1 -T user,order -c -o /data/backup/db1_user_order限速备份限制IO速度不超过50MB/s避免影响业务mydumper -u root -p --single-transaction -c -t 4 --limit-io 50 -o /data/backup/full备份文件结构说明mydumper 备份完成后会在输出目录生成以下文件backup_dir/├── metadata # 备份元数据备份时间、binlog位点、备份参数等核心信息├── db1/│ ├── db1.create.sql # 库创建SQL│ ├── user-schema.sql # user表结构SQL│ ├── user.sql.gz # user表数据SQL压缩后│ ├── order-schema.sql # order表结构SQL│ ├── order.00001.sql.gz # order表分块备份第1块│ ├── order.00002.sql.gz # order表分块备份第2块│ └── …├── db2/│ └── …└── logs/└── mydumper.log # 备份日志metadata文件示例Started dump at: 2026-05-26 10:00:00SHOW MASTER STATUS:Log: mysql-bin.000123Pos: 456789GTID: 0-1-123456Finished dump at: 2026-05-26 10:15:23mydumper恢复实战mydumper 配套的多线程恢复工具是myloader支持并行恢复速度比原生mysql命令快5~20倍。myloader核心参数参数 说明-u/–user 数据库用户名-p/–password 数据库密码-h/–host 数据库地址-P/–port 数据库端口-d/–directory 备份文件目录必须指定-B/–database 恢复到指定库可以把原库恢复到一个新库名-o/–overwrite-tables 如果表存在则删除重建默认会报错-t/–threads 恢复线程数建议设置为CPU核心数的2倍–no-schemas 不恢复表结构仅恢复数据–no-data 仅恢复表结构不恢复数据–disable-keys 恢复数据时禁用索引恢复完成后重建大幅提升恢复速度–enable-binlog 恢复时开启binlog默认关闭恢复到主库需要开启恢复到从库建议关闭-v/–verbose 日志级别全量恢复myloader-u root-p ‘你的密码’-h 127.0.0.1-P 3306-d /data/backup/mysql_full_20260526_100000-t 16–overwrite-tables–disable-keys恢复指定的库将备份中的db1库恢复到新库db1_newmyloader -u root -p -d /data/backup/full -B db1 -o new_db1 -t 8恢复指定的表仅恢复db1.user表myloader -u root -p -d /data/backup/full -B db1 -T user -t 4仅恢复数据表结构已存在myloader -u root -p -d /data/backup/full --no-schemas -t 16mydumper生产最佳实践生产环境备份规范线程数配置备份线程数建议为CPU核心数的1~1.5倍恢复线程数建议为CPU核心数的2倍分块备份大表开启-r 100000参数按10万行分块便于恢复时并行处理也避免单文件过大压缩开启生产环境必须开启-c压缩节省70%以上的磁盘空间压缩开销很小从库备份优先在从库执行备份避免占用主库CPU/IO资源完全不影响业务备份验证每次备份后必须尝试恢复至少1个表验证备份文件有效性异地存储备份文件必须同步到异地存储避免单机房故障丢失限速策略业务高峰时段备份必须开启–limit-io参数限制IO带宽性能优化技巧备份优化使用SSD存储备份速度比机械盘快3~5倍开启大页、调整系统IO调度算法为deadline/noop备份时关闭MySQL的慢查询、general log等不必要的日志恢复优化恢复前调整MySQL参数innodb_flush_log_at_trx_commit0、innodb_doublewrite0恢复完成后改回原值开启–disable-keys参数数据恢复完成后再建索引大库恢复前临时关闭binlogset sql_log_bin0增量备份方案和mysqldump类似mydumper是全量备份工具增量备份需要结合binlog实现每日/每周执行mydumper全量备份实时同步binlog到异地存储恢复时先恢复最近一次全量备份再重放备份时间点之后的binlog实现任意时间点恢复回到顶部物理备份之XtrabackupXtraBackup 是 Percona 公司开发的 开源 MySQL 物理热备份工具是目前生产环境 MySQL 物理备份的事实标准支持 MySQL、Percona Server、MariaDB 所有主流版本备份和恢复速度是逻辑备份工具的 5~20 倍完全不影响业务读写是 TB 级大库生产环境备份的首选方案。为什么选择 XtraBackup真正的热备InnoDB 引擎备份期间完全不锁表、不中断业务读写对业务零影响物理备份直接拷贝数据文件速度极快TB级库备份仅需数十分钟增量备份支持基于上一次备份的增量备份仅备份变化的数据大幅节省备份时间和空间压缩与加密内置压缩、加密功能备份文件大小仅为原数据的 20%~30%流备份支持直接备份到远程存储/云存储无需占用本地磁盘空间支持部分备份/恢复可以单独备份/恢复指定库/表无需恢复整个实例开源免费活跃维护兼容所有主流 MySQL 分支恢复速度快物理恢复直接拷贝文件速度比逻辑恢复快 10 倍以上大幅缩短故障恢复时间Xtrabackup核心原理XtraBackup 基于 InnoDB 的 Crash Recovery 机制实现无锁一致性备份备份阶段启动后首先拷贝 InnoDB 的 redo log记录当前最新的 LSN日志序列号并行拷贝所有 InnoDB 数据文件.ibd 文件获取全局读锁FTWRL拷贝 MyISAM、MEMORY 等非事务引擎的数据文件和系统表空间拷贝完成后释放全局锁记录最终的 LSN 和 binlog 位点生成备份元数据文件backup-my.cnf、xtrabackup_info、xtrabackup_checkpointsPrepare 阶段应用备份期间产生的 redo log 到数据文件将所有数据页推进到一致的 LSN 点回滚未提交的事务生成完整一致的、可直接启动的 MySQL 数据目录恢复阶段直接将 prepare 完成的数据目录拷贝到 MySQL 数据目录修改权限后即可启动 MySQLXtrabackup下载安装Xtrabackup与mysql版本对应关系XtraBackup 版本 支持的 MySQL 版本8.0.x MySQL 8.0.x、Percona Server 8.0.x、MariaDB 10.52.4.x MySQL 5.6.x、5.7.x、Percona Server 5.6/5.7、MariaDB 10.0~10.42.3.x 已停止维护仅支持 MySQL 5.5/5.6下载地址https://www.percona.com/downloads/二进制安装rootmaster:/data00/software# wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.26-18/binary/tarball/percona-xtrabackup-8.0.26-18-Linux-x86_64.glibc2.17.tar.gzrootmaster:/data00/software# tar -xvf percona-xtrabackup-8.0.26-18-Linux-x86_64.glibc2.17.tar.gzrootmaster:/data00/software# ln -s /data00/software/percona-xtrabackup-8.0.26-18-Linux-x86_64.glibc2.17/bin/* /usr/bin/rootmaster:/data00/software# xtrabackup --versionxtrabackup: recognized server arguments: --datadir/data00/data/mysql --innodb_buffer_pool_size1Gxtrabackup version 8.0.26-18 based on MySQL server 8.0.26 Linux (x86_64) (revision id: 4aecf82)Xtrabackup核心参数详解通用基础参数参数 说明–user 数据库用户名需要有RELOAD、LOCK TABLES、PROCESS、BACKUP_ADMIN权限–password 数据库密码–host 数据库地址–port 数据库端口–socket 本地socket文件路径–datadir MySQL数据目录路径自动从my.cnf读取无需手动指定–target-dir 备份文件存放目录必须指定–parallel 备份/恢复并行线程数建议设置为CPU核心数的2倍备份功能参数参数 说明–backup 执行备份操作的核心参数必须指定–compress 开启LZ4压缩大幅减小备份文件大小–compress-threads 压缩并行线程数默认等于并行数–incremental 开启增量备份–incremental-basedir 增量备份基于的上一次备份目录–incremental-lsn 增量备份基于的LSN号替代–incremental-basedir–stream 流备份模式支持tar或xbstream格式可直接输出到标准输出用于远程备份–encrypt 开启加密备份支持AES256算法–encrypt-key 加密密钥或使用–encrypt-key-file指定密钥文件–include 部分备份只备份匹配的库/表格式库名.表名支持通配符–exclude 排除指定库/表格式同上–no-lock 跳过非事务引擎的全局锁仅所有表都是InnoDB时使用–slave-info 备份从库时记录主库的binlog位点用于搭建新从库–galera-info 备份Galera集群节点时记录WSREP信息Prepare恢复准备参数参数 说明–prepare 执行prepare操作将备份数据推进到一致状态–apply-log-only 增量备份prepare时使用仅应用redo log不回滚未提交事务便于后续应用增量–incremental-dir 增量prepare时指定要应用的增量备份目录–decompress 解压压缩后的备份文件需要先安装qpress工具–remove-original 解压后删除原始压缩文件节省空间恢复参数参数 说明–copy-back 将prepare完成的备份文件拷贝到MySQL数据目录–move-back 移动备份文件到数据目录比copy更快但备份文件会被删除–datadir 目标MySQL数据目录路径Xtrabackup备份实战全量备份创建备份目录mkdir -p /data/backup/full_$(date %Y%m%d_%H%M%S)全量备份开启压缩8线程非InnoDB表加锁xtrabackup–defaults-file/etc/my.cnf–host127.0.0.1–port3306–userroot–passwordroot–backup–compress–parallel8–target-dir/data00/backup/full_KaTeX parse error: Expected group after _ at position 254: …ata/backup/full_̲(date %Y%m%d_%H%M%S)增量备份增量备份基于上一次全量/增量备份仅备份变化的数据适合大库减少备份时间和空间占用第一步周日执行全量备份xtrabackup --defaults-file/etc/my.cnf --host127.0.0.1 --port3306 --userroot --passwordxxx --backup --compress --parallel8 --target-dir/data/backup/full_sunday第二步周一执行第一次增量备份基于周日的全量xtrabackup --defaults-file/etc/my.cnf --host127.0.0.1 --port3306 --userroot --passwordxxx --backup --compress --parallel8–incremental-basedir/data/backup/full_sunday–target-dir/data/backup/inc_monday第三步周二执行第二次增量备份基于周一的增量xtrabackup --defaults-file/etc/my.cnf --host127.0.0.1 --port3306 --userroot --passwordxxx --backup --compress --parallel8–incremental-basedir/data/backup/inc_monday–target-dir/data/backup/inc_tuesday部分备份仅备份指定库/表仅备份db1和db2两个库xtrabackup --defaults-file/etc/my.cnf --host127.0.0.1 --port3306 --userroot --passwordxxx --backup --include‘db1.|db2.’ --target-dir/data/backup/db1_db2备份所有库排除test库和log库xtrabackup --defaults-file/etc/my.cnf --host127.0.0.1 --port3306 --userroot --passwordxxx --backup --exclude‘test.|log.’ --target-dir/data/backup/without_test_log流备份直接备份到远程服务器不占用本地空间本地备份直接流式传输到远程服务器xtrabackup --defaults-file/etc/my.cnf --host127.0.0.1 --port3306 --userroot --passwordxxx --backup --streamxbstream --parallel8 | ssh userremote_host “xbstream -x -C /data/remote_backup/”流备份压缩加密传输到S3xtrabackup --defaults-file/etc/my.cnf --host127.0.0.1 --port3306 --userroot --passwordxxx --backup --streamxbstream --compress --encryptAES256 --encrypt-key‘你的密钥’ | aws s3 cp - s3://your-bucket/mysql_backup.xbstream流备份压缩加密传输到ossxtrabackup --defaults-file/etc/my.cnf --host127.0.0.1 --port3306 --userroot --passwordxxx --backup --streamxbstream --compress | ossutil cp - oss://your-bucket/mysql_backup.xbstreamXtrabackup恢复实战全量恢复实战步骤1解压备份如果开启了压缩下载解压工具ubuntu系统1. 更新包列表并安装必要工具sudo apt updatesudo apt install -y wget gnupg2 lsb-release2. 下载并安装 Percona 仓库配置包wget https://repo.percona.com/apt/percona-release_latest.generic_all.debsudo dpkg -i percona-release_latest.generic_all.deb3. 启用 Percona 的 tools 仓库并更新sudo percona-release enable-only toolssudo apt update4. 安装 qpresssudo apt install -y qpress5. 确认安装成功which qpress解压rootmaster:/data00/backup# xtrabackup --decompress --remove-original --parallel8 --target-dir/data00/backup/full_20260526_170147xtrabackup: recognized server arguments: --datadir/data00/data/mysql --innodb_buffer_pool_size1Gxtrabackup: recognized client arguments: --decompress1 --remove-original1 --parallel8 --target-dir/data00/backup/full_20260526_170147xtrabackup version 8.0.26-18 based on MySQL server 8.0.26 Linux (x86_64) (revision id: 4aecf82)260526 17:25:59 [01] decompressing ./mysql.ibd.qp260526 17:25:59 [07] decompressing ./mysql/slow_log.CSM.qp…省略万字内容260526 17:25:59 completed OK!步骤2Prepare 备份将数据推进到一致状态rootmaster:/data00/backup# xtrabackup --prepare --parallel8 --target-dir/data00/backup/full_20260526_170147xtrabackup: recognized server arguments: --innodb_checksum_algorithmcrc32 --innodb_log_checksums1 --innodb_data_file_pathibdata1:12M:autoextend --innodb_log_files_in_group2 --innodb_log_file_size50331648 --innodb_page_size16384 --innodb_undo_directory./ --innodb_undo_tablespaces2 --server-id0 --innodb_log_checksumsON --innodb_redo_log_encrypt0 --innodb_undo_log_encrypt0xtrabackup: recognized client arguments: --prepare1 --parallel8 --target-dir/data00/backup/full_20260526_170147xtrabackup version 8.0.26-18 based on MySQL server 8.0.26 Linux (x86_64) (revision id: 4aecf82)xtrabackup: cd to /data00/backup/full_20260526_170147/#…省略万字内容260526 17:27:21 completed OK!看到 completed OK! 表示prepare成功此时备份已经是一致可恢复的状态。步骤3停止MySQL清空数据目录rootmaster:/data00/backup# systemctl stop mysql.servicerootmaster:~# mv /data00/data/mysql /data00/data/mysql_bakrootmaster:~# mkdir -p /data00/data/mysql步骤4恢复备份到数据目录方式1拷贝备份文件保留xtrabackup --copy-back --parallel8 --target-dir/data00/backup/full_20260526_170147方式2移动速度更快备份文件被删除xtrabackup --move-back --parallel8 --target-dir/data00/backup/full_20260526_170147步骤五修改权限启动MySQLchown -R mysql:mysql /data00/data/mysqlsystemctl start mysql.service增量备份恢复流程假设我们有周日全量、周一增量、周二增量三份备份步骤1解压所有备份xtrabackup --decompress --remove-original --parallel8 --target-dir/data/backup/full_sundayxtrabackup --decompress --remove-original --parallel8 --target-dir/data/backup/inc_mondayxtrabackup --decompress --remove-original --parallel8 --target-dir/data/backup/inc_tuesday步骤2Prepare 全量备份仅应用redo log不回滚事务xtrabackup --prepare --apply-log-only --parallel8 --target-dir/data/backup/full_sunday步骤3应用周一增量到全量备份xtrabackup --prepare --apply-log-only --parallel8–target-dir/data/backup/full_sunday–incremental-dir/data/backup/inc_monday步骤4应用周二增量到全量备份最后一次增量不需要–apply-log-onlyxtrabackup --prepare --parallel8–target-dir/data/backup/full_sunday–incremental-dir/data/backup/inc_tuesday步骤5后续恢复流程和全量备份一致systemctl stop mysqldmv /var/lib/mysql /var/lib/mysql_bakmkdir /var/lib/mysqlxtrabackup --copy-back --parallel8 --target-dir/data/backup/full_sundaychown -R mysql:mysql /var/lib/mysqlsystemctl start mysqld单表恢复MySQL 8.0 支持1. 单独备份某张表xtrabackup --userroot --passwordxxx --backup --include‘db1.user’ --target-dir/data/backup/user_table2. Prepare 备份xtrabackup --prepare --export --target-dir/data/backup/user_table3. 在目标库删除该表的表空间mysql ALTER TABLE db1.user DISCARD TABLESPACE;4. 拷贝备份中的.ibd和.cfg文件到目标库数据目录cp /data/backup/user_table/db1/user.{ibd,cfg} /var/lib/mysql/db1/chown mysql:mysql /var/lib/mysql/db1/user.*5. 导入表空间mysql ALTER TABLE db1.user IMPORT TABLESPACE;