当我轻率地进行了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)损坏问题。