文档解释
Error number: MY-010230; Symbol: ER_XA_NO_MULTI_2PC_HEURISTIC_RECOVER; SQLSTATE: HY000
Message: –tc-heuristic-recover rollback strategy is not safe on systems with more than one 2-phase-commit-capable storage engine. Aborting crash recovery.
MySQL错误MY-010230,常见于Symbol: ER_XA_NO_MULTI_2PC_HEURISTIC_RECOVER及SQLSTATE: HY000,提示MySQL没有支持多水层级2PC(两阶段提交)的启发式恢复(Heuristic Recovery)功能。
该错误可能是由MySQL在试图执行多段2PC(Multi-Piece 2PC)的情况下抛出的,可用于实现回滚两个不同的事务之间的数据一致性。 该错误通常也可能源于使用innobackupex和MySQL XA(eXtended Architecture)引擎对MySQL进行的恢复操作失败,由于XA引擎类型不支持多阶段2PC,所以上述操作就会失败,产生该错误。
常见案例
1. 在试图执行多段2PC(Multi-Piece 2PC)时报错;
2. 使用innobackupex和MySQL XA(eXtended Architecture)引擎对MySQL进行的恢复操作失败。
解决方法:
1. 更换MySQL不支持多阶段2PC的XA引擎类型;
2. 更换MySQL版本使其支持多阶段2PC;
3. 如果你在使用innobackupex进行恢复,请使用–no-timestamp参数,并确保实例内没有使用未被XA事务管理的表以及没有在回滚XA事务过程中出现任何问题。