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 ~]#