不停机不停服务,MYSQL可以那样修改亿级数据表结

作者:电脑系统

在小编插足的体系中,就曾遭遇这么二个标题,首先上去查看了须臾间该表的音信,已有约2亿的数据量,并且每分钟还要并发写入4万条记下,而鉴于这么些表有一个字段早先时代布置过短,导致写入到数据库后,这么些字段的值就直接乱码。因为该表在生育景况下采用,影响到业务,供给马上修改这几个字段长度,况且修改该表结构时不能够停服务。那么怎样化解这种难点吧?

 一、MySQL DDL 的题目现状

开首想了下,减弱那些表的数据量再DDL,将以此表一周以前的数据备份到多个偶然表,再删除那些表四日从前的数额。

而在MySQL中在对表实行ddl时,会锁表,当表非常的小比方小于1w条记下时,操作时间不够长,对前者影响极小,那时蒙受千万以致上亿级级其余表(保留二二十二十七日的数据量还应该有1.6亿),就能影响前端采纳对表的写操作。

因为脚下InnoDB引擎是通过以下步骤来打开DDL的:

1 根据原始表(original_table)的表结交涉DDL语句,新建二个不可知的有时表(tmp_table)

2 在原表上加write lock,阻塞全部更新操作(insert、delete、update等)

3 执行insert into tmp_table select * from original_table

4 rename original_table和tmp_table,最后drop original_table

5 释放 write lock。

大家能够望见在InnoDB实行DDL的时候,原表是不得不读不能够写的。为此 perconal 推出二个工具 pt-online-schema-change ,其特色是修改进度中不会招致读写阻塞。

     

在贰个软件生命周期中,大家都精晓,**早期的表结构划虚拟计是丰盛关键的**,因为当表数据量一上来后再张开表结构修改造危房殆性异常的大,并且要操作的日子也比较长。

 

摘  要:本文演讲了MySQL DDL 的题目现状、pt-online-schema-change的干活原理,并实际上应用pt-online-schema-change工具在线修改生产条件下1.6亿级数据表结构。

 

二、pt-online-schema-change介绍

【工具简单介绍】

pt-osc模仿MySQL内部的改表方式进行改表,但整套改表进度是通过对原始表的正片来成功的,即在改表进程中原始表不会被锁定,并不影响对该表的读写操作。

第一,osc创造与原始表同样的不分包数据的新表并遵守需求进行表结构的修改,然后将原始表中的数据按chunk大小稳步拷贝到新表中,当拷贝达成后,会自行同一时候修改原始表和新表的名字并暗许将原始表删除

【工具安装及使用】

参见上面上边那篇小说

linux下percona-toolkit工具包的装置和选用(超详细版)

【工作原理】

1 创制八个和您要试行 alter 操作的表结构同样的空表。如图:

说明:t_ad_req_log就是原表;

_t_ad_req_log_ol是旧表,那么些表是用来当您推行停业的时候,还原回来的原表结构;

_t_ad_req_log_new是新表,那么些表就是此番要修改的表。

 分分快三全天计划网站 1

 

 

不停机不停服务,MYSQL可以那样修改亿级数据表结构分分快三全天计划网站。2 实施表结构修改,然后从原表中的数据到copy到 表结构修改后的表(即_t_ad_req_log_new)

3 在原表上创办触发器将 copy 数据的进度中,在原表的翻新操作更新到新表.

   注意:假诺表中已经定义了触发器那个工具就无法做事了。

4 copy 实现以往,用rename table 新表替代原表,暗中同意删除原表。

 

修改的下令如下:

/usr/local/bin/pt-online-schema-change --user=用户名 --password=密码 --host=127.0.0.1 --port=端口号 --charset=utf8 --nodrop-old-table --alter="modify  media_code varchar(64) DEFAULT NULL COMMENT '当前视频编码' " D=ad_api,t=t_ad_req_log --exec

参数表达:

--user=用户名     指定用户名

--password=用户名     指定用户密码

--port=端口号     指定端口号

--charset=utf8   指定字符编码

--alter=    后面就是接需要修改的内容,比如上面表示的就是修改ad_api数据库t_ad_req_log表的media_code 字段长度为64位

 下边请看三个完好的图:

分分快三全天计划网站 2

 

 分分快三全天计划网站 3

 

 

注:如果对percona-toolkit工具安装及使用有疑问的先查看下这两篇小说。

linux下percona-toolkit工具包的安装和利用(超详细版)

pt-online-schema-change解读

 

 

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划