pt-online-schema-change 测试使用-包含生成测试数据

# 参考网址: https://www.2cto.com/database/201703/618280.html

一、简要描述

1、mysql创建测试表

drop table IF EXISTS t_user;
CREATE TABLE `t_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` tinyint(4) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2、生成测试数据

delimiter //
DROP PROCEDURE IF EXISTS proc_batch_insert;
CREATE PROCEDURE proc_batch_insert()
BEGIN
DECLARE pre_name BIGINT;
DECLARE ageVal INT;
DECLARE i INT;
SET pre_name=187635267;
SET ageVal=100;
SET i=1;
WHILE i <= 10000000 DO
INSERT INTO t_user(`name`,age,create_time,update_time) VALUES(CONCAT(pre_name,'@qq.com'),(ageVal+1)%30,NOW(),NOW());
SET pre_name=pre_name+100;
SET i=i+1;
END WHILE;
END // delimiter ;
call proc_batch_insert();

1、打印-增加列

pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="add info varchar(500) comment '个人简历'"  --print

1、执行-增加列

pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="add info varchar(500) comment '个人简历'"  --execute

# 2、打印-删除列

pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="drop info"  --print

2、执行-删除列

pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="drop info"  --execute

3、打印-增加索引

pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="drop index idx_name"  --print

3、执行-增加索引

pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="add index idx_name(name(12))"  --execute

4、打印-删除索引

pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="drop index idx_name"  --print

4、执行-删除索引

pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="drop index idx_name"  --execute

5、打印-修改列

pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="modify name varchar(20) not null default '' comment '用户名'"  --print

5、执行-修改列

pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="modify name varchar(20) not null default '' comment '用户名'"  --execute

二、详细操作记录

1、打印-增加列

[root@my3-224 ~]# pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="add info varchar(500) comment '个人简历'"  --print
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
Exiting without altering `db222`.`t_user` because neither --dry-run nor --execute was specified. Please read the tool's documentation carefully before using this tool.
[root@my3-224 ~]#

1、执行-增加列

[root@my3-224 opt]# pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="add info varchar(500) comment '个人简历'"  --execute
No slaves found. See --recursion-method if host my1-222 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 `db222`.`t_user`...
Creating new table...
Created new table db222._t_user_new OK.
Altering new table...
Altered `db222`.`_t_user_new` OK.
2018-05-18T19:32:53 Creating triggers...
2018-05-18T19:32:54 Created triggers OK.
2018-05-18T19:32:54 Copying approximately 898443 rows...
2018-05-18T19:33:13 Copied rows OK.
2018-05-18T19:33:13 Analyzing new table...
2018-05-18T19:33:13 Swapping tables...
2018-05-18T19:33:14 Swapped original and new tables OK.
2018-05-18T19:33:14 Dropping old table...
2018-05-18T19:33:14 Dropped old table `db222`.`_t_user_old` OK.
2018-05-18T19:33:14 Dropping triggers...
2018-05-18T19:33:14 Dropped triggers OK.
Successfully altered `db222`.`t_user`.
[root@my3-224 opt]#

2、打印-删除列

[root@my3-224 ~]# pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="drop info"  --print
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
Exiting without altering `db222`.`t_user` because neither --dry-run nor --execute was specified. Please read the tool's documentation carefully before using this tool.
[root@my3-224 ~]#

2、执行-删除列

[root@my3-224 ~]# pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="drop info"  --execute
No slaves found. See --recursion-method if host my1-222 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 `db222`.`t_user`...
Creating new table...
Created new table db222._t_user_new OK.
Altering new table...
Altered `db222`.`_t_user_new` OK.
2018-05-18T19:44:19 Creating triggers...
2018-05-18T19:44:20 Created triggers OK.
2018-05-18T19:44:20 Copying approximately 996723 rows...
2018-05-18T19:44:38 Copied rows OK.
2018-05-18T19:44:38 Analyzing new table...
2018-05-18T19:44:39 Swapping tables...
2018-05-18T19:44:39 Swapped original and new tables OK.
2018-05-18T19:44:39 Dropping old table...
2018-05-18T19:44:39 Dropped old table `db222`.`_t_user_old` OK.
2018-05-18T19:44:39 Dropping triggers...
2018-05-18T19:44:39 Dropped triggers OK.
Successfully altered `db222`.`t_user`.
[root@my3-224 ~]#

3、打印-增加索引

[root@my3-224 ~]# pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="add index idx_name(name(12))"  --print
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
Exiting without altering `db222`.`t_user` because neither --dry-run nor --execute was specified. Please read the tool's documentation carefully before using this tool.
[root@my3-224 ~]#

3、执行-增加索引

[root@my3-224 ~]# pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="add index idx_name(name(12))"  --execute
No slaves found. See --recursion-method if host my1-222 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 `db222`.`t_user`...
Creating new table...
Created new table db222._t_user_new OK.
Altering new table...
Altered `db222`.`_t_user_new` OK.
2018-05-18T19:49:24 Creating triggers...
2018-05-18T19:49:24 Created triggers OK.
2018-05-18T19:49:24 Copying approximately 996723 rows...
Copying `db222`.`t_user`: 52% 00:27 remain
2018-05-18T19:50:20 Copied rows OK.
2018-05-18T19:50:20 Analyzing new table...
2018-05-18T19:50:20 Swapping tables...
2018-05-18T19:50:20 Swapped original and new tables OK.
2018-05-18T19:50:20 Dropping old table...
2018-05-18T19:50:20 Dropped old table `db222`.`_t_user_old` OK.
2018-05-18T19:50:20 Dropping triggers...
2018-05-18T19:50:20 Dropped triggers OK.
Successfully altered `db222`.`t_user`.
[root@my3-224 ~]#

4、打印-删除索引

[root@my3-224 ~]# pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="drop index idx_name"  --print
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
Exiting without altering `db222`.`t_user` because neither --dry-run nor --execute was specified. Please read the tool's documentation carefully before using this tool.
[root@my3-224 ~]#

4、执行-删除索引

[root@my3-224 ~]# pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="drop index idx_name"  --execute
No slaves found. See --recursion-method if host my1-222 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 `db222`.`t_user`...
Creating new table...
Created new table db222._t_user_new OK.
Altering new table...
Altered `db222`.`_t_user_new` OK.
2018-05-18T21:42:45 Creating triggers...
2018-05-18T21:42:45 Created triggers OK.
2018-05-18T21:42:45 Copying approximately 996723 rows...
Copying `db222`.`t_user`: 61% 00:19 remain
2018-05-18T21:43:35 Copied rows OK.
2018-05-18T21:43:35 Analyzing new table...
2018-05-18T21:43:35 Swapping tables...
2018-05-18T21:43:35 Swapped original and new tables OK.
2018-05-18T21:43:35 Dropping old table...
2018-05-18T21:43:35 Dropped old table `db222`.`_t_user_old` OK.
2018-05-18T21:43:35 Dropping triggers...
2018-05-18T21:43:35 Dropped triggers OK.
Successfully altered `db222`.`t_user`.
[root@my3-224 ~]#

5、打印-修改列

[root@my3-224 ~]# pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="modify name varchar(20) not null default '' comment '用户名'"  --print
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
Exiting without altering `db222`.`t_user` because neither --dry-run nor --execute was specified. Please read the tool's documentation carefully before using this tool.
[root@my3-224 ~]#

5、执行-修改列

[root@my3-224 ~]# pt-online-schema-change --host=192.168.65.128 --user=davie --password=davie123 --port=3306  D=db222,t=t_user  --charset=utf8mb4 --nocheck-replication-filters --chunk-size=10000 --sleep=0 --alter="modify name varchar(20) not null default '' comment '用户名'"  --execute
No slaves found. See --recursion-method if host my1-222 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 `db222`.`t_user`...
Creating new table...
Created new table db222._t_user_new OK.
Altering new table...
Altered `db222`.`_t_user_new` OK.
2018-05-18T20:07:14 Creating triggers...
2018-05-18T20:07:14 Created triggers OK.
2018-05-18T20:07:14 Copying approximately 996723 rows...
2018-05-18T20:07:38 Copied rows OK.
2018-05-18T20:07:38 Analyzing new table...
2018-05-18T20:07:38 Swapping tables...
2018-05-18T20:07:38 Swapped original and new tables OK.
2018-05-18T20:07:38 Dropping old table...
2018-05-18T20:07:39 Dropped old table `db222`.`_t_user_old` OK.
2018-05-18T20:07:39 Dropping triggers...
2018-05-18T20:07:39 Dropped triggers OK.
Successfully altered `db222`.`t_user`.
[root@my3-224 ~]#

pt-online-schema-change 测试使用-包含生成测试数据的更多相关文章

  1. AppBoxFuture(四). 随需而变-Online Schema Change

      需求变更是信息化过程中的家常便饭,而在变更过程中如何尽可能小的影响在线业务是比较头疼的事情.举个车联网监控的例子:原终端设备上传车辆的经纬度数据,新的终端设备支持同时上传速度数据,而旧的车辆状态表 ...

  2. python测试框架&&数据生成&&工具最全资源汇总

    xUnit frameworks 单元测试框架frameworks 框架unittest - python自带的单元测试库,开箱即用unittest2 - 加强版的单元测试框架,适用于Python 2 ...

  3. schema change + ogg 变更手册

    Check OGG  until no data queuing in replication process:testRO:a)login  test5 –l oggmgrb)oggc)#ggsci ...

  4. Online Schema Change for MySQL

    It is great to be able to build small utilities on top of an excellent RDBMS. Thank you MySQL. This ...

  5. Spark2.2+ES6.4.2(三十一):Spark下生成测试数据,并在Spark环境下使用BulkProcessor将测试数据入库到ES

    Spark下生成2000w测试数据(每条记录150列) 使用spark生成大量数据过程中遇到问题,如果sc.parallelize(fukeData, 64);的记录数特别大比如500w,1000w时 ...

  6. Powerdesigner中如何生成测试数据

    设计表完成以后,我们需要生成一些测试数据,可以直接更新到数据库中,下面我们就来试试: 第一步:建立需要的Profiles测试文件,[Model]--[Test Data Profiles],如图所示: ...

  7. SQL Server中生成测试数据

    原文:SQL Server中生成测试数据 简介      在实际的开发过程中.很多情况下我们都需要在数据库中插入大量测试数据来对程序的功能进行测试.而生成的测试数据往往需要符合特定规则.虽然可以自己写 ...

  8. 通过 Python_Faker 生成测试数据

    通过 Python_Faker 生成测试数据 一.介绍 在软件需求.开发.测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,你不可能通过手工来生成(最傻的方法)可能 ...

  9. 使用Hypothesis生成测试数据

    Hypothesis是Python的一个高级测试库.它允许编写测试用例时参数化,然后生成使测试失败的简单易懂的测试数据.可以用更少的工作在代码中发现更多的bug. 安装 pip install hyp ...

随机推荐

  1. npm 和package.json 文件

    你可能还记得使用vue-cli 创建vue项目.当创建项目完成后,我们进入到项目目录,启动cmd命令窗口,输入npm install,它就会安装一堆东西(依赖),然后再输入npm run dev, 我 ...

  2. linux 目录分类与文件操作

    / 虚拟根目录 一般不会在这里存储文件 /bin 二进制目录,存放需要GNU用户级的工具 /boot 启动目录,存放启动文件 /dev 设备目录,linux在这里创建设备节点 /etc 系统配置文件目 ...

  3. VM下安装Kali虚拟机

    VM下Kali虚拟机安装 下载kali Linux系统镜像 下载地址:http://mirrors.hust.edu.cn/kali-images/ 网页如下: kali官网:http://www.k ...

  4. Android 修改 Menu字体颜色

    转载:http://blog.csdn.net/jayyuz/article/details/55260996 @Override public boolean onCreateOptionsMenu ...

  5. 洛谷P1330封锁阳光大学题解

    题意 此题可以说是一个很裸的一个二分图染色,但是比较不同的是,这个图中可能是不联通的,因此我们需要找到所有的联通块,然后一一选出每个联通块中黑块与白块中最小的个数,然后加入到最后的答案中去,也是很坑的 ...

  6. HDU2204 Eddy's爱好

    题意:给你一个正整数N,确定在1到N之间有多少个可以表示成M^K(K>1)的数. 解析:一个数N 开K次根后得到M  则小于M的所有数的K次方一定小于N 因为任何一个合数都能分解为素数的乘积 所 ...

  7. project 2013 设置工期为1个工作日,但开始时间与结束时间不是同一天

    1.问题描述 project2013在工期栏输入  1  ,在开始时间结束时间点自动安排,就会出现如下情况,会被误认为是两天 2.问题解决 文件-->选项-->常规-->日期格式选择 ...

  8. Java和操作系统交互细节

    结合 CPU 理解一行 Java 代码是怎么执行的 根据冯·诺依曼思想,计算机采用二进制作为数制基础,必须包含:运算器.控制器.存储设备,以及输入输出设备,如下图所示. enter image des ...

  9. Vue中的slot内容分发

    ①概述: 简单来说,假如父组件需要在子组件内放一些DOM,那么这些DOM是显示.不显示.在哪个地方显示.如何显示,就是slot分发负责的活. ②默认情况下 父组件在子组件内套的内容,是不显示的. 例如 ...

  10. 「九省联考 2018」IIIDX 解题报告

    「九省联考 2018」IIIDX 这什么鬼题,送的55分要拿稳,实测有60? 考虑把数值从大到小摆好,每个位置\(i\)维护一个\(f_i\),表示\(i\)左边比它大的(包括自己)还有几个数可以选 ...