MySQL启动故障排查:InnoDB日志问题及innodb_force_recovery参数解析与恢复实操

创始人
2024-12-27 22:54:41
0 次浏览
0 评论

mysql数据库不能正常启动?

故障排除删除当前正在使用的重做日志文件,然后尝试启动数据库但启动失败!提示:[错误]InnoDB:Page[pageid:space=0,pagenumber=0]logsequencenumber178377412422isinthefuture!当前系统日志序列号165909011496。
此类错误是由MySQLwriter线程按照配置的时间间隔以页为单位将缓存数据刷新到磁盘引起的。
当数据刷新到磁盘时,包含较新LSN的新页将写入磁盘。
此时系统表空间头LSN没有同步更新。
这通常是检查点线程的工作。
正常崩溃恢复时,MySQL可以使用redolog进行前滚和回滚,但此时redolog已被我们删除,MySQL无法执行恢复操作。
此时我们设置innodb_force_recovery=3来强制MySQL启动,但是启动还是失败。
改成4后就可以了!然后我用mysqldump导出备份,噩梦又发生了!MySQL再次崩溃。
提示:InnDB:Failedtofindtablespacefortable...设置参数innodb_force_recovery=5,数据库仍然启动失败,重置为6,启动成功!我已经使用sqldump成功备份数据了!重新初始化数据库,导入新备份的数据库,数据库恢复成功完成!参数说明这里关键是设置innodb_force_recovery参数。
该参数对应的说明如下:1.SRV_FORCE_IGNORE_CORRUPT:忽略检测到的损坏页;2.SRV_FORCE_NO_BACKGROUND:如果主线程需要执行,则阻止主线程运行。
fullpurge操作会导致崩溃3.SRV_FORCE_NO_TRX_UNDO:不执行事务回滚操作;4.SRV_FORCE_NO_IBUF_MERGE:不执行插入缓冲区合并操作;5.SRV_FORCE_NO_UNDO_LOG_SCAN:在不检查重做日志的情况下,InnoDB存储引擎会将未提交的事务视为已提交;向前滚动操作。

图文结合带你搞懂MySQL日志之ErrorLog(错误日志)

错误日志是MySQL中用来记录服务器启动、停止和运行过程中的错误、警告和异常的日志。
错误日志通常包含有关MySQL服务器启动和关闭、诊断消息和错误消息的信息。
例如,如果MySQL检测到某个表需要检查或修复,相关的错误信息就会写入错误日志中。
如果使用mysqld_safe启动MySQL服务,它会将相关消息写入错误日志,包括当mysqld_safe检测到mysqld异常终止时,它会重新启动mysqld并将此过程记录在日志中。
错误日志记录默认启用且无法禁用。
默认情况下,错误日志存储在MySQL数据文件夹中,文件名默认为'mysqld.log'(Linux系统)或'hostname.err'(mac系统)。
如果需要自定义文件名,请在`my.cnf`或`my.ini`中配置。
修改配置项后,重新启动MySQL服务以使更改生效。
错误日志存储在文本文件中,可以直接通过文本编辑器查看。
您可以通过MySQL命令行工具查询日志存储路径的参数。
在MySQL5.7.2版本中,增加了“log_timestamps”参数来控制日志中的时间显示格式,但5.7.2之后默为UTC时间,这可能会导致日志中记录的时间不一致。
当地时间很难看到日志。
改变时间显示格式可以通过相应的参数设置来实现。
对于很久没有出现的旧错误日志,数据库管理员可以将其删除,以释放MySQL服务器上的硬盘空间。
删除错误日志可以通过直接从文件系统中删除文本文件来实现。
官方提示要求操作过程中注意数据的安全性和完整性。
要了解MySQL运行机制的深入知识,请参考《MySQL如何运行——从基础了解MySQL》等专业文章,帮助您更好地了解和管理MySQL服务器的运行状态和性能。
GreatSQL是万里数据库维护的MySQL分支,专注于提高MGR(MySQLGroupReplication)的可靠性和性能,支持InnoDB的并行查询特性,适合金融级应用。
要了解有关GreatSQL的更多信息,请访问GreatSQL社区站点、Gitee、GitHub、Bilibili和其他平台。
GreatSQL社区的活动详情,如bug捕获活动、有奖博客提交等,可以通过社区网站链接获取。
文章标签:
MySQL GreatSQL
热门文章
1
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

2
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

3
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...

4
MySQL查询加速秘籍:PolarDB ... mysql中in大量数据导致查询速度慢怎么优化?在MySQL中处理大量数据时,查...

5
SQL2000数据库备份压缩技巧:优化空... 怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...

6
SQL字符串处理技巧:单引号使用与转义标... SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...

7
Windows环境下Redis安装指南与... redis安装windowsredis基本简介与安装安装Redis首先需要获取安...

8
深度解析:Redis性能优势与局限性,助... redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...

9
深入解析:MySQL数据库的特性与应用 mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...

10
MySQL自增主键重置攻略:解决用尽问题... MySQL让有数据的表主键从1开始连续自增当您需要MySQL中的数据表使用连续数...