备份

整理碎片文件

  • /var/lib/mysql 中的数据文件,即使表清空了,也不会减少体积
  • 数据文件中的数据被删除后留下的空白,被称为碎片

修改配置文件

关闭 binlog 相关参数

  • 整理碎片文件是一个上表锁的 DDL 操作,需要避免写到 binlog,让其他节点同步到该操作
    1. # 关闭 binlog 日志记录
    2. # log_bin
    3. # 控制从库 binlog 是否会记录主库同步的操作日志
    4. # log_slave_updates

关闭集群相关参数

  • 备份节点需要单独运行

执行语句

  • systemctl start mysql 后,执行以下语句

    ALTER TABLE ENGINE=InnoDB;

  • 可以跑程序进行碎片整理


冷备操作

下线节点

  • 进行碎片整理后,下线该节点

备份

  1. tar 指令备份 mysql 核心文件,/var/lib/mysql
  2. tar 指令备份各个表分区文件

恢复节点

  • 恢复配置文件中为了碎片整理而去除的 binlog 和 集群配置参数
  • 重新启动该节点

还原

使用冷备还原节点

  1. 如果冷备中拥有表空间数据,那么还原节点时
    1. 必须有相同路径的表空间磁盘路径(可以挂载一个逻辑点)
    2. 表空间磁盘路径必须给 mysql chown
  2. 清空还原节点的 mysql 核心数据目录文件和表空间数据文件目录
  3. 下线节点
  4. 将冷备解压覆盖到对应的目录中
  5. 修正数据目录和表分区数据文件目录内文件隶属的用户和用户组

    chown -R mysql:mysql

    /*

  6. 对配置文件进行适当修正

  7. 上线节点