如何利用percona-toolkit中pt-online-schema-change功能对表进行alter
来源:互联网 发布:数控编程指令g代码 编辑:程序博客网 时间:2024/06/05 08:53
在线上系统经常遇到对表进行ddl,大家都知道,在线ddl会阻塞所有insert,一直到ddl结束才释放,的如果表比较小的话,对业务影响不大,如果表非常大的话,则应用是无法忍受的,这里可以利用percona-toolkit中的pt-online-schema-change工具来对表进行online。
MySQL默认online ddl的原理如下:
1、创建一个和原来表结构一样的临时表并ddl
2、锁住原表,所有数据都无法写入(insert,update,delete)
3、将原表数据写入到临时表中(通过insert ...select方式)
4、写入完后,重命名临时表和原表名称
5、删除原表,释放锁
pt-online-schema-change在线ddl原理如下:
1、创建一个和原来表结构一样的临时表并ddl
2、将原表数据写入到临时表中(通过insert ...select方式),并且在原表上创建触发器,如果原表有数据写入,通过触发器方式将新增的数据写入临时表中(前提该表之前没有触发器)
3、写入完后,重命名临时表和原表名称
4、删除原表
pt-online-schema-change使用介绍:
操作的表必须有主键
[mysql@mysqldb01 bin]$./pt-online-schema-change -h 192.168.11.123 -u root -pwanwen1027 --alter='add column createtime datetime' --execute D=viven,t=c
No slaves found. See --recursion-method if host mysqldb01 has slaves.
Not checking slave lag because no slaves were found and --check-slave-lag was not specified.
Operation, tries, wait:
analyze_table, 10, 1
copy_rows, 10, 0.25
create_triggers, 10, 1
drop_triggers, 10, 1
swap_tables, 10, 1
update_foreign_keys, 10, 1
Altering `viven`.`c`...
Creating new table...
Created new table viven._c_new OK.
Altering new table...
Altered `viven`.`_c_new` OK.
2016-11-21T18:04:04 Creating triggers...
2016-11-21T18:04:04 Created triggers OK.
2016-11-21T18:04:04 Copying approximately 1 rows...
2016-11-21T18:04:04 Copied rows OK.
2016-11-21T18:04:04 Analyzing new table...
2016-11-21T18:04:04 Swapping tables...
2016-11-21T18:04:04 Swapped original and new tables OK.
2016-11-21T18:04:04 Dropping old table...
2016-11-21T18:04:04 Dropped old table `viven`.`_c_old` OK.
2016-11-21T18:04:04 Dropping triggers...
2016-11-21T18:04:04 Dropped triggers OK.
Successfully altered `viven`.`c`.
[mysql@mysqldb01 bin]$
- 如何利用percona-toolkit中pt-online-schema-change功能对表进行alter
- 利用percona-toolkit中pt-online-schema-change功能对表进行online ddl
- percona-toolkit 之 【pt-online-schema-change】说明
- percona-toolkit 之 【pt-online-schema-change】说明
- percona-toolkit之pt-online-schema-change(在线更改表结构)
- pt-online-schema-change注意事项 --no-check-alter
- pt-online-schema-change
- pt-online-schema-change测试
- pt-online-schema-change使用
- 利用pt-online-schema-change工具在线ddl操作
- 在线更改表字段工具比较 pt-online-schema-change VS oak-online-alter-table
- MYSQL ONLINE DDL--PT-ONLINE-CHANGE-SCHEMA
- [MySQL] 表在线重定义 - pt-online-schema-change
- [MySQL]表在线重定义-pt-online-schema-change
- pt-online-schema-change在线修改MYSQL表结构
- 在线更改MySQL表结构工具pt-online-schema-change
- MySQL 大表在线DML神器--pt-online-schema-change
- pt-online-schema-change原理及使用方法
- 1-5月知识总结
- Windows 微软雅黑(Microsoft YaHei)+ Monaco 字体整合方案
- JAVA将HTML转化图片最靠谱的方法
- 在phper中如何成为崛起最快的1%
- git操作
- 如何利用percona-toolkit中pt-online-schema-change功能对表进行alter
- Java POI 导出EXCEL经典实现 Java导出Excel弹出下载框
- TabLayout的用法
- SSH2项目启动报错(一个项目所遇到的问题,我就写一个了)
- keras —— 常用模型构建
- ashx和aspx
- ps
- 【npm】npm-npm install官方文档说明
- Swing——JTextField美化