Назад | Перейти на главную страницу

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

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

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

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

[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, чтобы понять, что происходит.

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

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

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

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