基于Xtrabackup及可传输表空间实现多源数据恢复

MySQL在5.7以后引入了多源复制(Multi-Source)功能,可用于将多个单独的数据库汇聚到一个数据库实例下,方便用户进行数据分析、汇总或推送至其他数据库平台。MySQL在5.6以后支持了可传输表空间功能,以及Xtrabackup针对该功能在备份时提供了一个对应参数export,该参数支持对InnoDB存储引擎表的备份数据export转换,且与常规备份操作一样可生成备份时间点的binlog信息(GTID信息),结合这两特性可以更高效和快速的方式实现多库数据汇聚的初始导入操作。

记一次 MySQL semaphore crash 的分析(有彩蛋)

AHI 的全局锁 btr_search_latch 经常会是竞争热点影响性能,5.7版本后有所改善与 InnoDB buffer 一样做了多实例拆分。本案例在开启 Innodb_stats_on_metadata 参数,查询元数据信息时触发统计信息更新,上锁数据字典,阻塞了了大量业务操作,又由于 buffer pool 空间不足,导致表驱逐旧页触发 AHI 的 btr_search_latch 锁竞争,最终导致信号量超时 crash。