A-A+

MySQL 5.6升级注意问题

2015年06月10日 DB, upgrade 暂无评论

MySQL 5.6升级注意问题

1. 用新版本mysql拉取实例,运行mysql_upgrade。mysql_upgrade会check所有表,并试图去修复可能存在问题的表。

mysql_upgrade注意: mysql_upgrade无法升级help表的内容;当--gtid-mode=on时无法执行mysql_upgrade。

2. 在InnoDB存储引擎中,建议旧版本的mysql shutdown时设置innodb_fast_shutdown = 0,这样会先做purge all, merge change buffer, 及flush dirty page,这样可以保证升级处理文件格式修改时有的文件都是正常的。

3. 如果存在有UDF且UDF的名字与MySQL 5.6的新的内置函数名字相同,那么这个UDF将会不可用。为了纠正这个,需要先drop function来删除这个UDF,再create function来重建一个不冲突的UDF。(需要前置检查,细节见 http://tencentdba.com/blog/mysql-5-5-upgrade-mysql-5-6/

4. 升级slave过程中,SQL MODE变化可能让slaver卡住。比如在sql_mode设置为sql_,pde=' NO_ZERO_DATE,STRICT_ALL_TABLES',则create table t(d date default 0)不能使用默认值插入。(现网MySQL 5.5业务中sql_mode默认值为'', MySQL 5.6默认值为NO_ENGINE_SUBSTITUTION,理论上不会产生此问题)

5. 更安全的做法是提前将master的binlog设置为row级,待slave升级后再升级master。 6. 参数变化:table_cache参数废弃,会导致MySQL 5.6无法拉起。另外MySQL 5.6改变一些参数的默认值,需要加入到配置文件中将其置回MySQL 5.5的默认值。(细节见 http://tencentdba.com/blog/mysql-5-5-upgrade-mysql-5-6/

7. MySQL 5.6.4及之后的版本,这几种时间类型的存储格式有改变。官方建议是对其升级,但是我的测试下不升级一样可以使用,checksum值正常。

clip_image001

如果根据MySQL 5.6官方的建议对这些字段升级,通过ALTER TABLE tbl_name FORCE来完成,但alter过程需要重构数据,需要一些时间。

原创文章,转载请注明: 转载自腾讯游戏DBA团队

本文链接地址: MySQL 5.6升级注意问题

文章的脚注信息由WordPress的wp-posturl插件自动生成

Copyright © 腾讯游戏DBA团队 保留所有权利.  

用户登录

分享到: