
# ibdata1为什么会变大
#### 原因分析
ibdata1是InnoDB的系统表空间，主要包括：
- 多版本并行事务控制（MVCC）相关的数据：undolog
- Innodb表的元数据，如数据字典
- change buffer/double write buffer等
其中，undolog是ibdata1增大的最主要原因，而undolog过大的主要原因如下：
- 长事务久未提交，导致undolog purge被阻塞。
- 写入并发太大生成大量的undolog，purge速度跟不上。
通过**show engine innodb status**中的"History list length"可以查看未被purge的undolog数量。
#### 解决方案
- 如果主库的ibdata1过大，备库的不大，则进行主备倒换。
- 如果备库的ibdata1过大，主库的不大，请[提交工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)联系客服重建备库。
- 如果一个实例所有库的ibdata1都大，则通过DRS迁移数据。
 
