前言
数据库是存放我们项目中所有的信息,掌管着项目的命脉。通常数据库建好之后第一步我们都会进行备份,以便不时之需。
还有一种Binlog二进制日志,它记录了对数据库进行更新的事件。从库 I/O 线程会向主库发送 Binlog 更新的请求,同时主库二进制转储线程会发送 Binlog 给从库作为中继日志进行保存,然后从库会通过中继日志重放,完成数据库的同步更新。
实际上主从同步的原理就是基于Binlog进行数据同步的(在这里不加赘述,详情可在百度网盘主从同步下载,提取码:7ka8)。
如果.ibd 文件损坏了,数据如何找回
首先讲一下什么是.ibd?
InnoDB 存储引擎的文件格式是.ibd 文件(MySQL5.5版本之后默认的存储引擎),它在我们本地MySQL数据库路径中Data文件夹下你创建的任何一个数据库里面,如图
.ibd就相当于sql数据库里面的表,有时候.ibd 文件损坏了,会导致数据库无法正常读取数据表
我们就来看下没有做过备份,也没有开启 Binlog 的情况下,如果.ibd 文件发生了损坏,如何通过数据库自身的机制来进行数据恢复。这时我们就需要调整一个参数,这个参数叫做innodb_force_recovery。