我想在具有一个主服务器和两个从属服务器的MySQL上使用pt-online-schema-change。使用该数据库的应用程序是一个以Doctrine为ORM的Symfony应用程序。
我已经在预生产环境中进行了一些高级测试,而且效果很好,只是短暂的一会儿,该工具运行时出现错误“找不到基表或视图”。
为重现该问题,我创建了2个symfony命令,这些命令在数据库中无限循环地进行读/写操作(选择/插入)。再说一会儿(当pt-osc交换表时),主义在数据库中找不到该表。
这是我的pt-osc命令:
functools
这是pt-osc输出(没有错误,都很好):
pt-online-schema-change --alter="ADD name_1 VARCHAR(250) DEFAULT NULL" D=****,t=demo,h=127.0.0.1,u=root,P=3306 --alter-foreign-keys-method=auto --ask-pass --execute --check-slave-lag=h=*****,u=root,P=3306 --max-lag=2 --nocheck-replication-filters
您是否对执行pt-psc时如何使客户端使用数据库有任何想法/建议?还是至少在交换表时将其保留?
谢谢