意外断电,导致zabbix的mysql无法启动

本文介绍了一种因机房意外断电导致的MySQL数据库损坏情况及其修复过程。通过设置innodb_force_recovery参数,跳过恢复阶段,导出数据,重建数据库并导入数据,最终解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机房意外断电,导致服务器宕机。
zabbix 所连的mysql数据库重启时启动失败。如下报错:
在这里插入图片描述
分析
因为突然掉电,导致有些log没有写入系统,所以出现了序列号不一致情况。MySQL 在机
器关机的时候有数据没有落地,表空间损坏,导致重启之后无法正常恢复,线程在数据页中
读取不到需要的 page 和数据。
需要进行操作,让 MySQL 跳过恢复,启动 MySQL,然后把数据导出来,再重建数据库导
入。
MySQL 有个一个特性:Forcing InnoDB Recovery,,启用这个特性需要设置
innodb_force_recovery 大于 0。innodb_force_recovery 可以设置为 16,
大的值包含前面
所有小于它的值的影响。

vim /etc/my.cnf
#4以上的值可能永久导致数据文件损坏。本次一直尝试直到6才能重启成功。
innodb_force_recovery = 6

重启mysql成功后。此时的zabbix库仅有只读权限。但可以新建库、表。
再备份zabbix库。备份过程中由于表空间损坏导致备份失败,并且有详细的表行信息。可
以暂时记录下来。
由于本次看到是history表损坏。history表是历史记录并不重要因此可以直接舍弃。
再次使用mysqldump单独备份zabbix各表
删除/移走 /opt/mysqldb/3306/data 下 ib* 及 zabbix 库 文件
注释 #innodb_force_recovery = 6 重启mysql 。启动成功。
新建zabbix库,导入sql。重启zabbix-server。
登录正常,显示正常。

### Flash超时问题解决方案 当出现**"Flash timeout error, reset target and try again"**时,通常由硬件通信中断或目标设备状态异常引起。按以下步骤排查: --- #### **1. 检查物理连接** - **线缆与接口**:确认USB/JTAG/SWD线未松动,接口无氧化或损坏。若使用扩展坞,建议直连主机。 - **电源稳定性**:目标设备电压需符合要求(如3.3V或5V),可尝试外接电源供电。 --- #### **2. 重置目标设备** - **硬件复位**:短按目标板上的`RESET`按钮,或完全断电10秒后重启。 - **软件复位**:通过调试工具发送复位指令(如OpenOCD的`reset halt`命令)。 --- #### **3. 调整烧录配置** - **降低通信速率**:在烧录工具(如STM32CubeProgrammer)中将SWD/JTAG时钟频率从` 4MHz`调整为` 1MHz`。 - **选择正确芯片型号**:错误型号会导致协议不匹配,例如STM32F1与STM32F4的烧录配置差异。 --- #### **4. 检查驱动程序与权限** - **驱动程序**:更新编程器(如J-Link、ST-Link)的驱动程序,确保与操作 - **权限问题**:在Linux/macOS中,使用`sudo`或为当前用户添加`udev`规则。 --- #### **5. 查看详细日志** 在烧录命令中添加调试选项(如`-v`),定位具体错误阶段: ```bash openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "program firmware.bin verify reset exit" ``` --- #### **6. 尝试替代工具** 若问题持续,换用其他烧录方式验证: - **ST-Link** → **J-Link** - **SWD接口** → **UART烧录** ---
最新发布
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值