Базовая таблица или представление не найдено при использовании pt-online-schema-change - PullRequest
0 голосов
/ 23 мая 2019

Я хочу использовать pt-online-schema-change на MySQL с ведущим и 2 подчиненными. Приложение, которое использует базу данных, является приложением Symfony с Doctrine в качестве ORM.

Я провел несколько продвинутых тестов в среде подготовки к работе, и это в основном хорошо, за исключением краткого момента, я получил ошибку «Базовая таблица или представление не найдено» во время работы инструмента.

Чтобы воспроизвести проблему, я создал 2 команды Symfony, которые читают / пишут в бесконечном цикле в базе данных (выбор / вставка). И опять же, на короткое время (пока pt-osc обменивается таблицами), доктрина не может найти таблицу в базе данных.

Вот моя команда 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-osc (без ошибок, все хорошо):

Found 1 slaves:
mysqls.**** -> mysqls.****:3306
Will check slave lag on:
mysqls.**** -> mysqls.****:3306
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
No foreign keys reference `****`.`demo`; ignoring --alter-foreign-keys-method.
Altering `****`.`demo`...
Creating new table...
Created new table ****._demo_new OK.
Altering new table...
Altered `****`.`_demo_new` OK.
2019-05-23T11:21:58 Creating triggers...
2019-05-23T11:21:58 Created triggers OK.
2019-05-23T11:21:58 Copying approximately 1728 rows...
2019-05-23T11:21:58 Copied rows OK.
2019-05-23T11:21:58 Swapping tables...
2019-05-23T11:21:58 Swapped original and new tables OK.
2019-05-23T11:21:58 Dropping old table...
2019-05-23T11:21:58 Dropped old table `****`.`_demo_old` OK.
2019-05-23T11:21:58 Dropping triggers...
2019-05-23T11:21:58 Dropped triggers OK.
Successfully altered `****`.`demo`.

Есть ли у вас какие-либо идеи / рекомендации относительно того, как заставить клиентов использовать базы данных при выполнении pt-psc? или, по крайней мере, приостановить их при обмене столами?

Спасибо

...