MariaDB на докере продолжает портить данные

Я использую официальный образ MariaDB mariadb: 10.4.6-bionic , и у меня проблема: мой таблицы портятся сами. Это происходило как минимум четыре раза в этом месяце:

  • на двух разных машинах разработки с использованием docker-compose
  • на промежуточной машине с использованием docker swarm

Каждый раз симптомом является то, что таблица существует в информационной схеме, но может вообще не читается и не изменяется. Любая операция приводит к ошибке «Таблица не существует в движке».

Журналы контейнера содержат эту ошибку при запуске:

[ERROR] InnoDB: Table sfdb.specialist contains unrecognizable instant ALTER metadata

Я проверил системные переменные сервера с помощью

SHOW VARIABLES;

и alter_algorithm имеет значение DEFAULT , что означает (если я правильно понимаю документацию), что он не должен использовать алгоритм INSTANT , только INPLACE и COPY ]. https://mariadb.com/kb/en/library/server-system-variables/#alter_algorithm

Попытка покопаться в кодовой базе MariaDB привела меня к этой проверке: https://github.com/MariaDB/server/blob/cccfa9dcfe2c161779824c01a84edfa64fc4378a/storage/innobase/btr/btr0cur.cc#L465

Но у меня недостаточно знаний о внутренней работе MariaDB, чтобы понять внутреннюю работу продолжается.

Что я делаю не так? Следует ли мне установить какой-либо флаг или конфигурацию, чтобы иметь стабильную базу данных в докере?

3
задан 29 July 2019 в 13:04
1 ответ

Кто-то предложил мне в jira mariadb принудительно установить alter_algorithm на COPY .

https://jira.mariadb.org/ browse / MDEV-20198? focusCommentId = 133693 & page = com.atlassian.jira.plugin.system.issuetabpanels% 3Acomment-tabpanel # comment-133693

Пока проблема не возникла снова.

1
ответ дан 3 December 2019 в 07:21

Теги

Похожие вопросы