Error number: MY-013670; Symbol: ER_IB_MSG_CREATED_UNDO_SPACE; SQLSTATE: HY000
Message: Created undo tablespace ‘%s’.
错误说明
MY-013670错误代码ER_IB_MSG_CREATED_UNDO_SPACE表示应用程序使用了无效的撤消空间,比如历史撤消空间可能已经全部被使用了。为了保证服务器的性能,Innodb会使用撤消空间,用于记录系统事务之间的变化。此错误表示InnoDB无法为事务分配新的撤消空间。
常见案例
该问题通常 出现在当在InnoDB存储引擎中,撤消空间不能持续增长以适应事务请求。随着更新操作的增加,撤消空间不断向上增长,直到其大小超过了由Innodb配置中的undo_tablespace_size参数设置的上限。当发生这种情况时,Innodb将无法为事务分配新的撤消空间,导致出现 MY-013670错误代码ER_IB_MSG_CREATED_UNDO_SPACE。
解决方法
可以采用以下几种方法来解决MY-013670错误:
1. 扩大Innodb撤消空间:你可以使用Most recent undo tablespace 0文件大小查找撤消空间当前的大小,然后修改Innodb的undo_tablespace_size参数为这个数值的两倍,以便容纳更多的撤消空间。
2. 创建撤消日志:在创建撤消日志之前,应先关闭服务器 www.mysql.com,然后覆盖掉之前的撤消空间,并使用innodb_log_file_size参数创建撤消日志。创建成功后,可以重新打开MySQL服务器,观察撤消日志有没有被正确地创建。
3. 增加Innodb_max_undo_log_size参数:调整undo_tablespace_size参数的大小,并且将Innodb_max_undo_log_size参数的值调整得合适,以便更改事务多大的撤消空间是可以创建的。
4. 重置 MySQL 服务器:如果做出过任何修改但仍然无法解决问题,则可重置MySQL服务器,以重建全部InnoDB存储引擎和文件。