使用pt-online-schema-change更改表结构时遇到问题。
RDS:我使用AWS RDS运行我的mysql服务器,该版本是mysql 5.6,并且该服务器具有两个复制。
运行命令:pt-online-schema-change --no-check-unique-key-change --print --charset=utf8 --progress=percentage,30 --host=10.101.4.5 --user=root --ask-pass --alter "add unique key company_config_index_unique(ent_id,ent_key,source,sub_source,profile_id)" D=production,P=3306,t=enterprise_config --execute
发生了什么:实际上,更改过程可以成功且正确地执行,但是我要更改的表只有200万条记录,该过程将花费近24小时。可以看到,命令执行过程非常缓慢。
我的期望:在我的测试环境中,pt-online-schema-change的执行速度非常快,仅需1分钟。而且我希望在生产环境中保持相同的性能,而不是24小时。
输出:
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
No slaves found. See --recursion-method if host ip-172-25-1-31 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 `production`.`enterprise_config`...
Creating new table...
CREATE TABLE `production`.`_enterprise_config_new` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'unique id',
`ent_id` int(11) NOT NULL COMMENT 'ent_id',
`ent_key` varchar(64) CHARACTER SET ascii COLLATE ascii_bin NOT NULL COMMENT 'key',
`value` text NOT NULL COMMENT 'config',
`profile_id` int(11) NOT NULL DEFAULT '0' COMMENT 'key',
`created_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'key',
`updated_at` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT 'key',
`deleted_at` datetime(6) DEFAULT NULL COMMENT 'key',
`source` varchar(64) NOT NULL DEFAULT '' COMMENT 'CHANNEL: web|sdk...',
`sub_source` varchar(64) NOT NULL DEFAULT '' COMMENT 'SUB CHANNEL',
PRIMARY KEY (`id`),
UNIQUE KEY `company_config_index_unique` (`ent_id`,`ent_key`,`profile_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2541903 DEFAULT CHARSET=utf8mb4
Created new table production._enterprise_config_new OK.
Altering new table...
ALTER TABLE `production`.`_enterprise_config_new` drop key company_config_index_unique,add unique key company_config_index_unique(ent_id,ent_key,source,sub_source,profile_id)
Altered `production`.`_enterprise_config_new` OK.
2020-09-16T13:50:14 Creating triggers...
2020-09-16T13:50:14 Created triggers OK.
2020-09-16T13:50:14 Copying approximately 1985356 rows...
INSERT LOW_PRIORITY IGNORE INTO `production`.`_enterprise_config_new` (`id`, `ent_id`, `ent_key`, `value`, `profile_id`, `created_at`, `updated_at`, `deleted_at`, `source`, `sub_source`) SELECT `id`, `ent_id`, `ent_key`, `value`, `profile_id`, `created_at`, `updated_at`, `deleted_at`, `source`, `sub_source` FROM `production`.`enterprise_config` FORCE INDEX(`PRIMARY`) WHERE ((`id` >= ?)) AND ((`id` <= ?)) LOCK IN SHARE MODE /*pt-online-schema-change 20356 copy nibble*/
SELECT /*!40001 SQL_NO_CACHE */ `id` FROM `production`.`enterprise_config` FORCE INDEX(`PRIMARY`) WHERE ((`id` >= ?)) ORDER BY `id` LIMIT ?, 2 /*next chunk boundary*/
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Copying `production`.`enterprise_config`: 30% 14:01:40 remain
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Copying `production`.`enterprise_config`: 60% 07:06:06 remain
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.63,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.0.105,p=...,u=production_dbroot
Cannot connect to A=utf8,h=172.25.1.132,p=...,u=production_dbroot
说明:
如上所示,该过程将在每次无法连接到A = utf8,h =
之间暂停时间将持续大约几分钟。