昨天,给定订单表加字段,该表数据30w多记录。数据库数据大小10G多,由于系统负载可能高,所以选择黑客工具加字段,首先备份数据,其次是加字段,加完字段后,习惯的通过phpMyAdmin控制台看加完的字段,鼠标往记录那里点击时,鼠标变成了红叉,我就感觉不对劲,点开后,一看空的。第一反映完了,数据没了,好可怕啊,之后,跟我的同事杨磊同学说了声,让他配合我,再然后,跟技术总监说了下情况,之后,通过备份还原了数据,大概10分钟左右恢复了。在这操作期间头脑出现过空白。但终究在同事的帮助下恢复了数据。而且在这10分钟,影响到了一部分用户。但这一刻17:09分发生,17:25完全恢复。

pt-online-schema-change这个工具,下面这个网址有详细的介绍:

https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html

这段是它的风险提示:

RISKS

The following section is included to inform users about the potential risks, whether known or unknown, of using this tool. The two main categories of risks are those created by the nature of the tool (e.g. read-only tools vs. read-write tools) and those created by bugs.

总结下:

任何线上操作必须习惯性的备份数据,使用开源工具前,要把空风险。本人心理素质也不是很好,有待提高,关键还是操作不够熟练。 默认操作是drop掉原始表的,可以通过添加–nodrop-old-table参数保证原始表作为备份,便于出现异常可以及时恢复。