资讯专栏INFORMATION COLUMN

mysql利用表对象数据文件恢复数据

LiveVideoStack / 2728人阅读

摘要:引擎文件数据文件文件索引文件引擎和重做日志文件两个文件一模一样,之所以存在两个是,为了避免一个文件损坏后,而且之后,无法恢复数据。引擎表恢复数据直接备份,,文件,然后再复制粘贴到目标数据库文件夹即可。参考文章利用数据库文件恢复数据

数据库文件基础

.frm文件: 只存储表的结构信息,frm文件跟数据库存储引擎无关,这也就是说,它和表的索引、数据都无关。

MyISAM引擎

.myd文件: 数据文件

.myi文件:索引文件

Innodb引擎

ib_logfile0和ib_logfile1:重做日志文件,两个文件一模一样,之所以存在两个是,为了避免一个文件损坏后,而且MySQL crash之后,innodb无法恢复数据。

ibdata1:数据文件

根据《MySQL技术内幕》一书的介绍,innodb存在表空间的概念,是以共享表空间的格式,将数据都存入到一个文件中。介绍ibdata1,ibdata1是与存储引擎相关的,只在innodb存储引擎下出现,而且是mysql-server中所有innodb存储引擎的表,不分数据库都存储到ibdata1中,当然这个文件中还会存储其他信息,如索引等。当在MySQL中开启innodb_file_per_table后,那么将会在每个数据库对应的文件夹下,每张表将有存在两个对应文件,一个是.frm,另外一个是.ibd文件。这种情况成为私有表空间。但是这个时候共享表空间ibdata1,仍然是存在的。
使用数据库文件恢复数据

yum安装的mysql,数据目录是/var/lib/mysql,可以通过/etc/my.cnf查看。

MyISAM引擎表恢复数据

直接备份.frm,.myd,.myi文件,然后再复制粘贴到目标数据库文件夹即可。

Innodb引擎表恢复数据

如果是系统表空间的情况,一个笨办法就是建立一个新的mysql环境,将旧环境中的ibdata1文件和需要恢复的aa,bb等数据库文件夹复制到新mysql数据目录。然后重启mysqld守护进程就行。

systemctl restart mysqld

下面是恢复的rbac数据库user表的数据

如果是私有表空间的话,虽然没实验过,但我猜想,直接复制.frm文件和.ibd文件到目标数据库即可。

参考文章

利用数据库文件恢复MySQL数据

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/49121.html

相关文章

  • MySQL 必知必会读书笔记 (3)

    摘要:在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划。用户可能没有创建存储过程的安全访问权限。表示进行检查查找。 存储过程 大型系统必须得要存储过程和触发器吗,from 知乎 一般情况下,Web 应用的瓶颈常在 DB 上,所以会尽可能的减少 DB 做的事情,把耗时的服务做成 Scale Out,这种情况下,肯定不会使用存储过程; ...

    iflove 评论0 收藏0
  • Mysql二进制日志(binlog)恢复数据

    摘要:我们先来看下对数据库的完全备份。总结如果允许数据丢失,可以直接使用直接恢复,否则可以通过二进制文件进行恢复。现在看来其实也非常简单了,找到开发服务器上的二进制日志文件就能恢复了,最后他又一个一个表开始建的,谁叫我当初又蠢又笨 开启binlog show binary logs 检查bin log是否开启,Mac OS系统安装完Mysql没有my.cnf配置文件,需要自己新建,我的Mys...

    yy13818512006 评论0 收藏0
  • Mysql二进制日志(binlog)恢复数据

    摘要:我们先来看下对数据库的完全备份。总结如果允许数据丢失,可以直接使用直接恢复,否则可以通过二进制文件进行恢复。现在看来其实也非常简单了,找到开发服务器上的二进制日志文件就能恢复了,最后他又一个一个表开始建的,谁叫我当初又蠢又笨 开启binlog show binary logs 检查bin log是否开启,Mac OS系统安装完Mysql没有my.cnf配置文件,需要自己新建,我的Mys...

    nihao 评论0 收藏0
  • Innodb中的buffer poll和redo undo log

    摘要:工作方式是将数据库文件按照页每页读取到缓冲池,然后按照最近最少使用算法来保留缓冲池中的缓冲数据。为了满足事务的持久性,防止数据丢失,引入了。但是系统可以根据的内容,将所有数据恢复到最新的状态。在进行恢复时,从这个的位置开始即可。 内存缓冲池 buffer pool,如果mysql不使用内存缓冲池,每次读取数据时,都需要访问磁盘,会大大的增加磁盘的IO请求,导致效率低下;在Innodb引...

    Scliang 评论0 收藏0
  • MySQL性能调优与架构设计(四)—— 备份与恢复

    摘要:前言数据库的备份和恢复一直是工作中最为重要的一部分,也是基本工作之一。任何正式环境的数据库都必须有完整的备份计划和恢复测试,本章内容将主要介绍数据库的备份与恢复相关内容。 前言 数据库的备份和恢复一直是DBA工作中最为重要的一部分,也是基本工作之一。 任何正式环境的数据库都必须有完整的备份计划和恢复测试,本章内容将主要介绍 MySQL数据库的备份与恢复相关内容。 数据库备份使用场景...

    chengjianhua 评论0 收藏0

发表评论

0条评论

LiveVideoStack

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<