私は公式のMariaDBを使用していますmariadb:10.4.6-bionic
画像と問題があります。テーブルが壊れています。これは今月少なくとも4回発生しました。
症状は、情報スキーマにテーブルが存在するが、まったく読み取ったり変更したりできないことです。操作を実行すると、「エンジンにテーブルが存在しません」というエラーが発生します。
コンテナーログには、起動時にこのエラーが含まれます。
[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の内部構造について十分な知識がありません。
何が悪いのですか? dockerで安定したデータベースを使用するには、いくつかのフラグまたは構成を設定する必要がありますか?
誰かがmariadbのjiraで設定を強制するように提案しましたalter_algorithm
からCOPY
へ。
これまでのところ、問題は再発していません。