环境描述:
某朋友公司进行一次数据库迁移,由于设置问题导致所有的数据库表储存引擎都设置为:MyISAM,按照业务需求,部分数据库表必须为:InnoDB,否则会导致事务执行失败及不起效,为此把需要的数据库表存储引擎从MyISAM 改为 InnoDB,而其数据库中大概有300多张表,其中将近三分之一表需要修改为:InnoDB,剩下的继续使用MyISAM引擎。
备注:暂时没有一张innodb引擎的表,另外my.cnf配置也不太妥当,相关参数没有给其相应合适的值
硬件环境:
机型:R710 CPU:2颗4core E5620 MEM:24G RAID:1+0 DISK:6*15K*146G Network:2*1000M
自动生成修改动作及检查动作的SQL语句:
用于生成变更的SQL语句:
SELECT CONCAT(‘ALTER TABLE ‘,table_name,’ ENGINE=InnoDB;’) FROM information_schema.tables WHERE table_schema=’db_name’ AND `ENGINE`=’myisam’; |
用于生成检查表的SQL语句:
SELECT CONCAT(‘CHECK TABLE ‘,table_name) FROM information_schema.tables WHERE table_schema=’db_name’; |
由于其表名称没有规律,无法再进步通过SQL语句条件缩小范围,只好再人工进行后续编辑,当变更及检查的SQL语句准备妥当,即将开始其修改征程:
1.停掉mysqld服务
mysqladmin -uroot -p*** –socket=/data/mysqldata/sock/mysql.sock shutdown
2.修改my.cnf文件配置
innodb_file_per_table
innodb_data_file_path=ibdata1:256M:autoextend
innodb_buffer_pool_size = 10G
innodb_log_buffer_size = 8M
key_buffer_size = 2G
innodb_log_file_size = 256M
innodb_log_files_in_group = 8
3.把已经生成好的ibdata、ib_logfile文件先移动到其他目录
备注:当前没有使用innodb引擎的表,要是有需要再另外处理,若还是共享表空间,那就不能这么蛮干
4.启动mysqld服务
mysqld_safe &
5.执行修改参数
SET GLOBAL sort_buffer_size=128*1024*1024;
SET GLOBAL tmp_table_size=128*1024*1024;
SET GLOBAL read_buffer_size=32*1024*1024;
SET GLOBAL read_rnd_buffer_size=32*1024*1024;
6.执行ALTER TABLE语句
7.执行CHECK语句
8.修改my.cnf配置
sort_buffer_size = 2M
tmp_table_size = 8M
read_buffer_size = 2M
read_rnd_buffer_size = 1M
9.设置全局变量
SET GLOBAL sort_buffer_size=2*1024*1024;
SET GLOBAL tmp_table_size=8*1024*1024;
SET GLOBAL read_buffer_size=2*1024*1024;
SET GLOBAL read_rnd_buffer_size=1*1024*1024;
10.开放服务、并且做测试、监控mysql日志及程序日志信息
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
2017年5月数据库流行度排行榜 MySQL与Oracle“势均力敌”
数据库知识网站DB-engines.com最近更新了2017年5月的数据库流行榜单。TechTarget继续与您一起分享最新的榜单情况。
-
2017年3月数据库流行度排行榜 Oracle卫冕之路困难重重
时隔一个月,数据库市场经过一轮“洗牌”,旧的市场格局是否会被打破,曾经占巨大市场份额的企业是否可能失去优势?
-
2017年2月数据库流行度排行榜 攻城容易守城难
2016年下半年,数据库排行榜的前二十名似乎都“固守阵地”,在排名上没有太大的变动。随着2017年的悄然而至,数据库的排名情况是否会有新的看点?
-
Azure数据湖分析从U-SQL中获得提升
大数据的发展已经让许多精通SQL的数据专业人员不知所措。微软的U-SQL编程语言试图让这些人回归数据查询游戏。