当前位置: 首页 > news >正文

什么是页损坏 mysql_什么导致了MySQL InnoDB损坏且如何防护?

01fac6460a22031b8af8da5848698a70.png

适用于:

MySQL服务器版本5.0及以上

本文信息适用于所有平台。

目标

学习引起InnoDB损坏最常见的原因以及你如何对其进行防护。

解决方案

InnoDB损坏的原因

InnoDB损坏四个主要的原因有:

硬件错误(通常是磁盘或内存)

崩溃 (例如由于断电或操作系统bug引起的)

Bugs

不一致的备份

除了例如使用错误更正代码(ECC)内存外,防止硬件错误的措施很少。

对于由于断电引起的崩溃,UPS是最好的防护。对于有操作系统bug引起的崩溃 (幸好这些是很少发生的),电池备份的磁盘能帮助避免部分写。通常使用innodb_flush_log_at_trx_commit = 1来确保你在同步写入磁盘。

但注意操作系统或磁盘可能并没有实际刷掉写入。因为这个电池备份磁盘是防护。

除非按照更改日志并检查是否需要更新,否则bug很难防护。你能在以下找到更改日志:

MySQL 5.0

MySQL 5.1

MySQL 5.5

MySQL 5.6

MySQL 5.7

备份通常比预期的更常引起损坏 (包括不一致性,即在两个表中的数据不一致

)。这个情况的原因是即使有一个FLUSH TABLES WITH READ LOCK,InnoDB 将继续在底部写入数据文件。这表示即使备份方法对于比如MyISAM有作用,它可能对InnoDB不适用。

在所有情况中,建议经常备份并验证备份。

参考

https://dev.mysql.com/doc/relnotes/mysql/5.5/en/

https://dev.mysql.com/doc/relnotes/mysql/5.6/en/

NOTE:1023132.1 How to Create a Backup of MySQL Server

NOTE:1509073.1 How to Get Started with MySQL Enterprise Backup?

NOTE:1024113.1 InnoDB log buffer flushes to disk after each transaction

https://dev.mysql.com/doc/relnotes/mysql/5.0/en/

https://dev.mysql.com/doc/relnotes/mysql/5.1/en/

https://dev.mysql.com/doc/relnotes/mysql/5.7/en/

https://dev.mysql.com/doc/refman/en/innodbparameters.

html#sysvar_innodb_flush_log_at_trx_commit

https://dev.mysql.com/doc/refman/en/flush.html

NOTE:2017846.1 InnoDB Corruption Recover Guide

NOTE:1502290.1 How to Recover a Corrupted InnoDB Table Definition File

NOTE:1476982.1 What do I do with InnoDB message “Database page corruption on disk or a failed file read of page”

NOTE:2049861.1 Master Note for InnoDB

NOTE:1416063.1 InnoDB Error: “log sequence number is in the future”

相关文章:

  • 查看mysql汉字占用的字节数_一个汉字在数据库占几个字节
  • 同一个tomcat下两个项目互相调用_面试官:Tomcat是如何处理Http请求的?
  • 1080p为什么模糊 mac_1080p屏幕这么模糊,为什么1080p在笔记本端还是主流,还没被淘汰?...
  • fluentd tail mysql_使用fluentd实现实时收集日志文件
  • jsp预加载转圈_页面预加载loading动画
  • myeclipse mysql 驱动_Myeclipse 中添加mysql的jdbc驱动
  • mysql install db的作用_mysql通过mysql_install_db初始化数据目录时使用--user选项的作用是什么?...
  • mysql 5.6 my.cnf配置_my.cnf 5.6/5.7/8.0通用配置
  • oracle非常量不能用于privot_oracle pivot 和 unpivot 函数的使用
  • python代码60行_60行Python代码,实现多线程PDF转Word
  • python加载文件夹模块bus error_python通过import导入带“-”文件名称的模块
  • python 调试工具 知乎_超强一代JupyterLab 3.0发布,兼具可视化调试、中文显示、简单交互界面等功能...
  • python的迭代器是什么_python什么是迭代器
  • vs mysql 开发_vs mysql api
  • vue状态管理存取数据_Vue 状态管理 · Vue.js教程
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • .pyc 想到的一些问题
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • css布局,左右固定中间自适应实现
  • express.js的介绍及使用
  • Javascript编码规范
  • Java-详解HashMap
  • MobX
  • React Native移动开发实战-3-实现页面间的数据传递
  • SOFAMosn配置模型
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • XML已死 ?
  • 第2章 网络文档
  • 回顾2016
  • 前端js -- this指向总结。
  • 微服务核心架构梳理
  • 微信小程序--------语音识别(前端自己也能玩)
  • 再次简单明了总结flex布局,一看就懂...
  • 怎么将电脑中的声音录制成WAV格式
  • 最近的计划
  • 【云吞铺子】性能抖动剖析(二)
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #、%和$符号在OGNL表达式中经常出现
  • (8)STL算法之替换
  • (js)循环条件满足时终止循环
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (solr系列:一)使用tomcat部署solr服务
  • (八)c52学习之旅-中断实验
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (九)One-Wire总线-DS18B20
  • (力扣)1314.矩阵区域和
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (转)视频码率,帧率和分辨率的联系与区别
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 8.0 中有哪些新的变化?
  • .NET gRPC 和RESTful简单对比
  • .net反编译工具
  • .net图片验证码生成、点击刷新及验证输入是否正确