mysql 案例 ~ pt-xtrabackup 使用

时间:2023-11-27 14:19:44

一 简介:学习innobackup工具使用

二 功能: 备份全库/单库/单表

三 常用命令
  一 全库
  目的 每天日常备份
  备份 innobackupex --defaults-file=/etc/my.cnf --user= --password= --socket=/tmp/mysql.sock --slave-info --parallel=8 dir > backup.log 2>&1
  还原 innobackupex --apply-log dir
  导入 mv 覆盖 data目录
  二 单库
  目的 1 迁移单库 做单库的从库 2 迁移单库 做 单库的迁移
  备份 innobackupex --databases="db1 db2 db3" --defaults-file=/etc/my.cnf --user= --password= --socket=/tmp/mysql.sock --slave-info --parallel=8 dir > backup.log 2>&
  还原 innobackupex --apply-log --export dir
  导入 1 mv 覆盖 data目录
           2 参考 单表恢复
  三 单表
  目的 1 迁移 2恢复
  补充 1 可以先备份单表再导入单表 2 可以从全备进行export恢复再导入单表
  备份 innobackupex --include="db.table db.table" --defaults-file=/etc/my.cnf --user= --password= --socket=/tmp/mysql.sock --slave-info --parallel=8 dir > backup.log 2>&
  还原 innobackupex --apply-log --export dir
  导入
 1 创建 单表的结构 create table
 2 禁用表空间 ALTER TABLE tablename DISCARD TABLESPACE;
 3 拷贝所有表相关文件到目录
 4 重新授权chown -R mysql:mysql
 5 启用表空间 ALTER TABLE tablename IMPORT TABLESPACE;
 6 进行表数据查看
 四 远程备份
 目的 本地备份推送到远程
 准备 做好ssh免密互通
 备份 innobackupex --user= --password= --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --stream=tar dir1 --tmpdir=dir1 | ssh host2 "cat - > dir2+`date +%F.tar.gz`"
 五 增加备份
 目的 实现对大数据的增量备份
 准备 需要全备作为基础
 备份 innobackupex --defaults-file=/etc/my.cnf --user= --password=  BASE-DIR 全量备份
         innobackupex --defaults-file=/etc/my.cnf --user= --password=   --incremental-basedir=BASE-DIR  --incremental INCREMENTAL-DIR-1 第一次增量
         innobackupex --defaults-file=/etc/my.cnf --user= --password=   --incremental-basedir=INCREMENTAL-DIR-1   --incremental INCREMENTAL-DIR-2 第二次增量 以此类推
还原
       innobackupex --apply-log --redo-only BASE-DIR 全量备份恢复
       innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1 第一次增量恢复
       innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2 第二次增量恢复
       innobackupex --apply-log - BASE-DIR --incremental-dir=INCREMENTAL-DIR-2 最后一次增量不加read-only
      导入 mv base_dir 进行恢复

六 补充

备份遇到的一些场景问题可参考我另一篇文章 DBA个人经验~备份还原