I've a table with composite primary key with below structure:
CREATE TABLE field_name_test
(
id_type
varchar(128) NOT NULL DEFAULT '',
desc
varchar(128) NOT NULL DEFAULT '' ,
deleted
tinyint(4) NOT NULL DEFAULT '0' ,
type_id
int(10) unsigned NOT NULL ,
rev_id
int(10) unsigned NOT NULL ,
lang
varchar(32) NOT NULL DEFAULT '',
delta
int(10) unsigned NOT NULL,
fname_value
varchar(255) DEFAULT NULL,
fname_format
varchar(255) DEFAULT NULL,
PRIMARY KEY (id_type
,type_id
,rev_id
,deleted
,delta
,lang
),
KEY id_type
(id_type
),
KEY desc
(desc
),
KEY deleted
(deleted
),
KEY type_id
(type_id
),
KEY rev_id
(rev_id
),
KEY lang
(lang
),
KEY fname_format
(fname_format
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
i'm running pt-o-s-c to change the collation of the table and it is working fine with other tables but this one is giving below error:
pt-online-schema-change --execute --password=#### --user=#### --socket=#### --port=#### --chunk-time=1 --recursion-method=none --no-drop-old-table --alter "CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci , CHANGE desc desc varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci , CHANGE id_type id_type varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci , CHANGE lang lang varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci , ROW_FORMAT=DYNAMIC , LOCK=SHARED, ALGORITHM=COPY" D=db,t=field_name_test,h=localhost
No slaves found. See --recursion-method if host ###### has slaves.
Not checking slave lag because no slaves were found and --check-slave-lag was not specified.
Operation, tries, wait:
copy_rows, 10, 0.25
create_triggers, 10, 1
drop_triggers, 10, 1
swap_tables, 10, 1
update_foreign_keys, 10, 1
Altering db
.field_name_test
...
Creating new table...
Created new table db._field_name_test_new OK.
Altering new table...
Altered db
._field_name_test_new
OK.
2017-09-15T09:18:47 Creating triggers...
2017-09-15T09:18:47 Created triggers OK.
2017-09-15T09:18:47 Copying approximately 3843064 rows...
2017-09-15T09:18:47 Dropping triggers...
2017-09-15T09:18:47 Dropped triggers OK.
2017-09-15T09:18:47 Dropping new table...
2017-09-15T09:18:47 Dropped new table OK.
db
.field_name_test
was not altered.
2017-09-15T09:18:47 Error copying rows from db
.field_name_test
to db
._field_name_test_new
: 2017-09-15T09:18:47 Error copying rows at chunk 1 of db.field_name_test because MySQL used only 390 bytes of the PRIMARY index instead of 497. See the --[no]check-plan documentation for more information.
I'm running above in Galera 3 node cluster.
So i've below concerns on pt-o-s-c:
1) what solutions can be for above such cases ?
2) Is it possible to run parallel pt-o-s-c in a same database ?
Please let me know if any other input you need. Thanks in advance.