当我轻率地进行了MariaDB的apt升级后,它无法启动了

因为我没听过那个(つд⊂)所以做个备忘录,如果从10.3.30开始使用的话似乎没有影响。

附注:MariaDB 10.3.31发布说明中提到了 (尽管并没有真的坏掉)。

环境

升级之前

Debian 10.9
MariaDB 10.3.2x

Debian 10.9
MariaDB 10.3.2x

升级后

Debian 10.12 及 MariaDB 10.3.35。

升级后的错误日志

MySQL错误日志的路径是/var/log/mysql/error.log。

2022-04-12 14:37:09 0 [Note] InnoDB: Using Linux native AIO
2022-04-12 14:37:09 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2022-04-12 14:37:09 0 [Note] InnoDB: Uses event mutexes
2022-04-12 14:37:09 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2022-04-12 14:37:09 0 [Note] InnoDB: Number of pools: 1
2022-04-12 14:37:09 0 [Note] InnoDB: Using SSE2 crc32 instructions
2022-04-12 14:37:10 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2022-04-12 14:37:10 0 [Note] InnoDB: Completed initialization of buffer pool
2022-04-12 14:37:10 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2022-04-12 14:37:10 0 [ERROR] InnoDB: corrupted TRX_NO 10002001a69c0f4
2022-04-12 14:37:10 0 [Note] InnoDB: Retry with innodb_force_recovery=5
2022-04-12 14:37:10 0 [ERROR] InnoDB: Plugin initialization aborted with error Data structure corruption
2022-04-12 14:37:10 0 [Note] InnoDB: Starting shutdown...
2022-04-12 14:37:10 0 [ERROR] Plugin 'InnoDB' init function returned error.
2022-04-12 14:37:10 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2022-04-12 14:37:10 0 [Note] Plugin 'FEEDBACK' is disabled.
2022-04-12 14:37:10 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2022-04-12 14:37:10 0 [ERROR] Aborting

应急处理

将版本降级至10.3.2x并保持固定状态。

降级

apt install mariadb-server-10.3=1:10.3.29-0+deb10u1 mariadb-server-core-10.3=1:10.3.29-0+deb10u1

版本固定

apt-mark hold mariadb-server-core-10.3 mariadb-server-10.3 mariadb-client-10.3 mariadb-client-core-10.3 mariadb-common

现状的适当回应

1. 在升级之前将整个数据库进行备份。
2. 对数据库进行初始化。
3. 将MariaDB升级至10.3.30或更高版本。
4. 导入数据库。

你不想在正在使用的数据库上操作吗?

在错误日志中出现的

InnoDB:使用innodb_force_recovery=5进行重试。

我觉得如果做这个,真的会弄坏了…

参考信息

MariaDB10.3.31发布说明
Bug#996028: #996028 InnoDB:在升级到10.3.31后出现事务号(TRX_NO)损坏问题。
修复了升级到10.3.31后InnoDB出现的事务号(TRX_NO)损坏问题。

广告
将在 10 秒后关闭
bannerAds