服务器意外断电MySQL无法启动

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 服务器意外断电MySQL无法启动

1.背景

客户反映无法登录系统。再三询问之下,客户说出一个情况:服务器因信息中心人为原因,最近总是意外断电。what?服务器这么儿戏吗?这么不安全吗?不管什么情况,先去现场检查一番。

2.尝试过程

1.登录服务器启动服务。2.检查服务运行状态,发现 MySQL 容器一直处于尝试重启状态。3.检查 docker 日志,筛选 MySQL 容器报错部分。4.提示:数据库由于非正常情况关闭,正在尝试恢复,重新启动。然后一直处于启动报错关闭、启动报错关闭......5.先检查 SQL 备份文件是否正常,虽然有,但是文件大小明显不对,完蛋。。只能寄希望于断电那一刻的数据恢复了。6.在 MySQL 的配置文件中有一项配置项 【innodb_force_recovery】代表强制恢复,它的值从1-6效果不断加强。越强,数据损坏的可能性越大,但是数据库正常启动的概率也越大。因此不能一上来就加足马力,最好是逐级递增尝试。7.在设置为 4 时,容器终于正常启动。但此时并不代表正常,因为此时数据库所有表的状态为锁定只读状态。我们只需要将此时的数据导出备份即可。8.导出最后一刻数据库后,将其导入到另一备用数据库中,恢复数据接入系统正常使用。

以上步骤是事后梳理而成,其实真实解决过程中问题不断,sql 导出文件无法使用,数据库问题,服务器问题,各种小问题不断。但是为了突出问题本身,不能将其他不相干的问题一一记录,否则会干扰大家问题解决。

3.解决

1.在配置文件/etc/mysql/my.cnf中添加如下语句

[mysqld]
innodb_force_recovery = 4

innodb_force_recovery参数的值从 1-6 依次尝试,恢复等级越来越强。

1.重新启动 mysql 之后表都是只读状态,此时可以备份数据库2.将备份文件导入到新的数据库中

4.后记

生产环境所有操作必须三思而后行,在重大的压力、各种状况不断的情况下,很难保持一个清醒的头脑,不要自乱阵脚,让问题更复杂。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
6
分享
相关文章
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
服务器数据恢复—云服务器上mysql数据库数据恢复案例
某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 在执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql脚本在生产库上执行,导致生产库上部分表被truncate,还有部分表中少量数据被delete。
81 25
如何解决 MySQL 数据库服务器 CPU 飙升的情况
大家好,我是 V 哥。当 MySQL 数据库服务器 CPU 飙升时,如何快速定位和解决问题至关重要。本文整理了一套实用的排查和优化套路,包括使用系统监控工具、分析慢查询日志、优化 SQL 查询、调整 MySQL 配置参数、优化数据库架构及检查硬件资源等步骤。通过一个电商业务系统的案例,详细展示了从问题发现到解决的全过程,帮助你有效降低 CPU 使用率,提升系统性能。关注 V 哥,掌握更多技术干货。
183 0
MySQL/SqlServer跨服务器增删改查(CRUD)的一种方法
通过上述方法,MySQL和SQL Server均能够实现跨服务器的增删改查操作。MySQL通过联邦存储引擎提供了直接的跨服务器表访问,而SQL Server通过链接服务器和分布式查询实现了灵活的跨服务器数据操作。这些技术为分布式数据库管理提供了强大的支持,能够满足复杂的数据操作需求。
169 12
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
170 3
服务器数据恢复—意外断电导致XenServer虚拟机不可用的数据恢复案例
服务器数据恢复环境: 一台服务器中有一组由4块STAT硬盘通过RAID卡组建的RAID10阵列,上层是XenServer虚拟化平台,虚拟机安装Windows Server操作系统,作为Web服务器使用。 服务器故障: 因机房异常断电导致服务器中一台VPS(Xen Server虚拟机)不可用,虚拟磁盘文件丢失。
服务器数据恢复—意外断电导致XenServer虚拟机不可用的数据恢复案例
使用Docker快速部署Mysql服务器
本文介绍了如何使用Docker快速部署MySQL服务器,包括下载官方MySQL镜像、启动容器、设置密码、连接MySQL服务器以及注意事项。
829 18
把RDSmysql的数据上传到ECS部署的服务器,需要在ECS中安装mysql吗?还是可以在部署的服务器内部直接写rds数据库的地址进行连接
把RDSmysql的数据上传到ECS部署的服务器,需要在ECS中安装mysql吗?还是可以在部署的服务器内部直接写rds数据库的地址进行连接
182 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等