Не могу ли я быстро импортировать данные после миграции MySQL?

Примечания о функциях, связанных с GTID, после обновления с 5.6 до 5.7.

Автор: Цинь Фулан, член команды администраторов баз данных Aikesheng, отвечающий за решение ежедневных проблем проекта и устранение неполадок платформы компании. Администратор базы данных, который любит Интернет, разбирается в фотографии и умеет готовить, не станет хорошим водителем, диди~

Оригинальный контент, созданный сообществом открытого исходного кода Aikeson, не может быть использован без разрешения. Пожалуйста, свяжитесь с редактором и укажите источник для перепечатки.

Эта статья содержит в общей сложности 400 слов, и ее чтение займет 2 минуты.

фон

В финансовой компании есть система, которая только что была перенесена с версии 5.6 на версию 5.7.30. GTID не был включен до миграции, но функции, связанные с GTID, были включены после миграции. CREATE TABLE ... SELECT ...Когда бизнес использует импортированные данные обычным способом, возникает ошибка: Error Code:1786 (HY000): Mysql Statement violates GTID consistency: CREATE TABLE ... SELECT.

Принцип задачи

Эта проблема относительно проста. Причина в том, что перенесенный MySQL5.7 использует GTID и включает enforce_gtid_consistencyпараметры (строгая согласованность GTID).

Чтобы гарантировать согласованность распределенных транзакций, MySQL использует GTID для уникальной идентификации транзакции. В режиме GTID операторы DDL и DML автоматически генерируют разные GTID для идентификации различных транзакционных операций. Однако CREATE TABLE ... SELECT ...генерируется только один GTID, а операции DDL и DML объединяются в одно выполнение транзакции. Это приведет к несогласованности данных главного и подчиненного устройств в случае сбоя выполнения инструкции. Включение enforce_gtid_consistencyэтого параметра обеспечивает атомарность транзакций GTID.

Официальная документация также объясняет CREATE TABLE ... SELECT ...эту операцию:

решение

В целях безопасности не рекомендуется отключать этот параметр.

В MySQL5.7 вы можете решить эту проблему, разделив SQL на два предложения, например:

#先创建表
CREATE TABLE ... LIKE...

#再插入数据
INSERT INTO ... SELECT ...

Хотя предыдущий одиночный SQL-код можно легко и быстро перенести в другую таблицу, с точки зрения безопасности это может оказаться немного более проблематичным.

MySQL 8.0

Хорошей новостью является то, что, начиная с MySQL8.0.21, механизмы хранения, поддерживающие атомарный DDL, позволяют использовать CREATE TABLE ... SELECT ...операторы.

Дополнительные технические статьи можно найти на странице https://opensource.actionsky.com/ .

О SQLE

SQLE от сообщества открытого исходного кода Axon — это инструмент аудита SQL для пользователей и менеджеров баз данных, который поддерживает многосценарный аудит, стандартизированные онлайн-процессы, встроенную поддержку аудита MySQL и масштабируемые типы баз данных.

SQLE получить

тип адрес
Репозиторий https://github.com/actiontech/sqle
документ https://actiontech.github.io/sqle-docs/
выпускать новости https://github.com/actiontech/sqle/releases
Документация по разработке плагина аудита данных https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse
Лэй Цзюнь: Официальная версия новой операционной системы Xiaomi ThePaper OS уже упакована. Всплывающее окно на странице лотереи приложения Gome App оскорбляет ее основателя. Ubuntu 23.10 официально выпущена. Вы также можете воспользоваться пятницей, чтобы обновиться! Эпизод с выпуском Ubuntu 23.10: ISO-образ был срочно «отозван» из-за содержания разжигающих ненависть высказываний. 23-летний аспирант исправил «призрачную ошибку» 22-летней давности в Firefox. Вышла версия удаленного рабочего стола RustDesk 1.2.3, улучшенный Wayland для поддержки версии TiDB 7.4: официальная совместимость с MySQL 8.0. После отключения USB-приемника Logitech произошел сбой ядра Linux. Мастер использовал Scratch для очистки симулятора RISC-V и успешно запустил ядро ​​Linux. JetBrains запустила Writerside, инструмент для создания технической документации.
{{o.name}}
{{м.имя}}

рекомендация

отmy.oschina.net/actiontechoss/blog/10119871
рекомендация