在线修改表数据

1、常规做法就是业务停机,维护表结构。

2、不影响的可以在线修改。

Alter Table修改表结构

修改表结构,表级锁,修改表结构影响写入操作,修改表结构,必须还原表结构,所以耗时更长。大数据表记录多,锁表时间长。

3、PerconaTookit工具

先复制表,然后旧表创建触发器,旧表操作同步执行到新表,然后对新表修改表结构,然后还同事复制旧表数据过来,操作完成后锁表替换旧表。

安装

不能安装在同一台服务器上,

1)安装第三方依赖

yum install -y perl-DBI

yum install -y perl-DBD-mysql

yum install -y perl-IO-Socket-SSL

yum install -y perl-Digest-MD5

yum install -y perl-TermReadKey

 

2)安装PerconaTookit工具

rpm -ivh *.rpm

pt-online-schema-change OPTIONS DSN

参数 实际含义 参数 实际含义
--host IP地址 t 数据表
--user 用户名 --alter 修改语句
--password 密码 --exectue 执行修改
--prot 端口号 --dry-run 测试执行
D 逻辑库 --print 打印过程

 

 

 

 

 

 

 

测试案例

ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%'    IDENTIFIED WITH mysql_native_password BY '123456';

 

修改mysql认证方式

pt-online-schema-change --host=192.168.0.1 --port=3306 --user=root --password=123456 --alter "MODIFY name VARCHAR(20) NOT NULL COMMENT  '收货人' "  D=neti, t=t_customer_address --print --execute

 

订单号唯一编号,经常用来检索,应当是数字类型主键,流水号一般用来打印便于阅读一般1位表示线上、线下,6个字符表示仓库号/零售店,5位品类编号,6位购物日期,10位随机。

insert语句需要带着事务执行,比通过文本文档导入慢很多。

 

posted on 2020-03-12 09:54  清浊  阅读(458)  评论(0)    收藏  举报