一对一的关系,
新的测试:环境与上面的相同,数据表时一对一的关系,脚本如下:
数据表:
CREATE TABLE kk_user_settings
(
id
int(11) unsigned NOT NULL AUTO_INCREMENT,
uid
int(11) NOT NULL,
option
enum(‘vibrate’,‘night_mode’,‘mobile_find’,‘chat_limit’,‘push_sound’,‘local_logo’,‘only_friend_at’,‘allow_other_save’,‘allow_mobile_recommend’,‘private_account’,‘notice_on_chat’,‘notice_on_follow’,‘notice_on_comment’,‘notice_on_like’,‘notice_on_save’,‘notice_on_at’,‘chat_bottle_on’,‘chat_bottle_view’,‘notice_on_live’,‘allow_friends_behavior’,‘notice_on_brand_like’,‘allow_show_map’,‘notice_on_story’,‘sync_to_have’,‘seller_new_auto_online’,‘seller_sec_auto_online’,‘want_first_online’,‘want_lower_sell_price’,‘want_new_bid_price’,‘bid_lower_sell_price’,‘bid_higher_bid_price’,‘bid_new_bid_price’,‘sell_lower_sell_price’,‘sell_higher_bid_price’,‘sell_new_bid_price’,‘want_new_sec_product’,‘want_bid_max_price’,‘storage_buyer_deal_price’,‘storage_higher_bid_price’,‘want_sale_increase’,‘resale_buyer_deal_price’,‘sync_sale_dynamic’,‘sync_purchase_dynamic’,‘sync_have_dynamic’,‘sync_want_dynamic’,‘sell_sec_new_want’) NOT NULL DEFAULT ‘vibrate’,
value
enum(‘yes’,‘no’) NOT NULL DEFAULT ‘yes’,
last_modify_time
int(10) NOT NULL DEFAULT ‘0’ COMMENT ‘最后更新时间’,
PRIMARY KEY (id
),
UNIQUE KEY option
(uid
,option
),
KEY uid
(uid
)
) ENGINE=InnoDB AUTO_INCREMENT=42536671 DEFAULT CHARSET=utf8;
操作:使用pt工具删除索引uid
pt脚本内容:
Db=dm_test
Tab=kk_user_settings
Master_Host=10.10.30.136
Product=ceshi
Port=3324
Charset=utf8mb4
User=aaa
Passwd=‘XQMQ0yJc’
/bin/pt-online-schema-change --sleep=3 --max-lag=10000 --max-load Threads_running=5000 --critical-load Threads_running=500 --user=$User --password=$Passwd -h $Master_Host -P $Port --no-check-replication-filters D=$Db,t=$Tab --charset=$Charset --alter="
drop index uid
;" --execute
测试过程中报主键冲突的错误
“msg”: “[code=10006:class=database:scope=not-set:level=high] execute statement failed: commit: Error 1062: Duplicate entry ‘4588329’ for key ‘PRIMARY’ngithub.com/pingcap/dm/pkg/terror.(*Error).Delegate
/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/pkg/terror/terror.go:267ngithub.com/pingcap/dm/pkg/conn.(*BaseConn).ExecuteSQLWithIgnoreError
/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/pkg/conn/baseconn.go:164ngithub.com/pingcap/dm/syncer.(*DBConn).executeSQLWithIgnore.func2
/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/syncer/db.go:258ngithub.com/pingcap/dm/pkg/retry.(*FiniteRetryStrategy).Apply
/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/pkg/retry/strategy.go:71ngithub.com/pingcap/dm/pkg/conn.(*BaseConn).ApplyRetryStrategy
/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/pkg/conn/baseconn.go:180ngithub.com/pingcap/dm/syncer.(*DBConn).executeSQLWithIgnore
/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/syncer/db.go:253ngithub.com/pingcap/dm/syncer.(*DBConn).executeSQL
/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/syncer/db.go:280ngithub.com/pingcap/dm/syncer.(*Syncer).sync.func3
/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/syncer/syncer.go:970ngithub.com/pingcap/dm/syncer.(*Syncer).sync
/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/syncer/syncer.go:1002ngithub.com/pingcap/dm/syncer.(*Syncer).Run.func2
/home/jenkins/agent/workspace/build_dm_master/go/src/github.com/pingcap/dm/syncer/syncer.go:1081
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1357”,
“error”: null