mariadb 无法启动 WSREP:std::bad_alloc

mariadb cant start WSREP: std::bad_alloc

大家好。

集群基于mariadb10.3。更新到 10.4,

工作一周 + -

网络故障后,停止启动。

日志中只有这个

2020-11-14 15:03:16 0 [Note] WSREP: Server initial position: 00000000-0000-0000-0000-000000000000:-1
2020-11-14 15:03:16 0 [Note] WSREP: Loading provider /usr/lib64/galera-4/libgalera_smm.so initial position: 00000000-0000-0000-0000-000000000000:-1
2020-11-14 15:03:16 0 [Note] WSREP: wsrep_load(): loading provider library '/usr/lib64/galera-4/libgalera_smm.so'
2020-11-14 15:03:16 0 [Note] WSREP: wsrep_load(): Galera 26.4.6(r1d8d67c) by Codership Oy <info@codership.com> loaded successfully.
2020-11-14 15:03:16 0 [Note] WSREP: CRC-32C: using 64-bit x86 acceleration.
2020-11-14 15:03:16 0 [Note] WSREP: Found saved state: 6d4be20b-d396-11e9-8d00-7e3231736285:1, safe_to_bootstrap: 0
2020-11-14 15:03:16 0 [Note] WSREP: GCache DEBUG: opened preamble:
Version: 2
UUID: 6d4be20b-d396-11e9-8d00-7e3231736285
Seqno: -1 - -1
Offset: -1
Synced: 0
2020-11-14 15:03:16 0 [Note] WSREP: Recovering GCache ring buffer: version: 2, UUID: 6d4be20b-d396-11e9-8d00-7e3231736285, offset: -1
2020-11-14 15:03:16 0 [Note] WSREP: GCache::RingBuffer initial scan...  0.0% (        0/134217752 bytes) complete.
2020-11-14 15:03:16 0 [ERROR] WSREP: std::bad_alloc
2020-11-14 15:03:16 0 [ERROR] WSREP: Failed to create a new provider '/usr/lib64/galera-4/libgalera_smm.so' with options 'gcache.size=128M': Failed to initialize wsrep provider
2020-11-14 15:03:16 0 [ERROR] WSREP: Failed to load provider
2020-11-14 15:03:16 0 [ERROR] Aborting
Warning: Memory not freed: 40

有足够的内存和space。

除了maria,服务器上没有其他东西。

从跌倒前的快照中恢复无济于事。

损坏的galera.cache(GCache::RingBuffer 初始扫描->std::bad_alloc)可以通过sudo truncate /var/lib/mysql/galera.cache -s 0 + 重启来解决。

注意!这将删除所有数据并强制执行新的 SST 同步。