问题描述: 同事在给jiradb做mysqldump时,发现dump出来的文件只有10MB左右,而ibd文件占用磁盘空间100MB左右. 最初,我们猜测可能是delete操作导致了大量的磁盘碎片,以及二级索引占用了很多空间. 但是对比了data_length+index_length+data_free的总和,与du的输出结果对比,还是相差较多. 版本信息:Server version: 5.6.48-log MySQL Community Server (GPL) 概念解释: data_len…
来源:原创投稿 作者:花家舍 简介:数据库技术爱好者. GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 简单学习一下数据文件解析 这是尝试使用Golang语言简单解析MySQL 8.0的数据文件(*.ibd)过程的一个简单介绍,解析是反序列化的一个过程,或者叫解码的过程. 1.为什么要解析 虽然有很多开源的代码已经实现了这个解码过程,例如使用C实现的undrop-for-innodb[1],支持到MySQL 5.7版本,后续未作更新. 姜老师的py_innodb_p…
MySQL架构原理之体系架构 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中简单介绍了MySQL的系统文件层,其中包含了数据文件.那么InnoDB的数据文件是如何分类并存储的呢? 一.InnoDB文件存储结构 InnoDB数据文件存储结构分为: 一个ibd数据文件-->Segment(段)-->Extent(区)-->Page(页)-->Row(行). 1)Tablespace:表空间,用于存储多个ibd数据文件以及存储表的记录和索引.一个文件包含多个段. 2)Se…
在mysql中数据文件存放于在my.cnf中datadir指定的路径,使用的表引擎不同产生的文件格式.表文件个数也会有所差异.mysql的表引擎有多种,表的扩展名也不一样,如innodb用“ .ibd”,archive用“.arc ”,csv用“.csv”等.   myisam表引擎 myisam表会产生三个文件:MYI.MYD.frm文件   frm文件: 主要存放表的元数据(meta),包括表结构定义信息等.不论是哪个表引擎都会有一个frm文件,存放在数据库的数据目录下.   .MYI文件(…
测试的时候向数据库中插入了大量的数据,测试完成后删除了测试用户以及其全部数据,但是数据文件却没有缩小.经查阅资料之后发现这是 Oracle “高水位”所致,那么怎么把这些数据文件的大小降下来呢?解决办法如下: 概念: 表空间的相关知识请见这里,详细的介绍了 Oracle 数据库的存储结构. 高水位:High Water Mark (HWM),是段(Segment)的一个指标,界定了段(Segment)曾经配置过的 block 水位. 据说,随着数据的 insert,所使用段(Segment)的数…
多个表空间的优势:1.能够将数据字典与用户数据分离出来,避免由于字典对象和用户对象保存在同一个数据文件中而产生的I/O冲突2.能够将回退数据与用户数据分离出来,避免由于硬盘损坏而导致永久性的数据丢失3.能够将表空间的数据文件分散保存到不同的硬盘上,平均分布物理I/O操作4.能够将某个表空间设置为脱机状态或联机状态,以便对数据库的一部分进行备份和恢复5.能够将某个表空间设置为只读状态,从而将数据库的一部分设置为只读状态6.能够为某种特殊用途专门设置一个表空间,比如临时表空间等,以优化表空间的使用效…
最近内部的 mysql 数据库发生了一件奇怪的事,其中有一个表 users625 突然出现问题, 所有对它的操作都报错误 数据表不存在. mysql> select count(*) from users625; ERROR 1146 (42S02): Table 'km8.users625' doesn't exist show tables 它还显示在列表里,在 mysql 数据目录中也可以找到对应的表文件,也没有 进行过删除操作,突然出现这样的错误非常奇怪. 内部运行环境: 名称 值 OS…
误删除innodb ibdata数据文件  文件句柄  文件描述符  proc  fd http://www.cnblogs.com/gomysql/p/3702216.html 提示:如果不小心通过操作系统命令误删除了数据文件,一定不要轻易的关闭实例或者offline数据文件!!!!!!!! 今天在群里看到有人说不熟悉innodb把ibdata(数据文件)和ib_logfile(事务日志)文件误删除了.不知道怎么解决.当时我也不知道怎么办.后来查阅相关资料.终找到解决方法.其实恢复也挺简单的.…
今天在群里看到有人说不熟悉innodb把ibdata(数据文件)和ib_logfile(事务日志)文件误删除了.不知道怎么解决.当时我也不知道怎么办.后来查阅相关资料.终找到解决方法.其实恢复也挺简单的.我们不知道的时候就觉得难了.谁说不是这样呢? 下面我们就来模拟生产环境下,人为删除数据文件和重做日志文件.然后详细说明恢复步骤. 1.用sysbench模拟数据的写入,如下所示: [root@yayun-mysql-server ~]# sysbench --test=oltp --oltp-t…
注意:假如误删除 ibdata文件 ,此时千万别把mysqld进程杀死,否则没法挽救. 1.模拟删除ibdata数据文件和重做日志文件: [root@hcdb0 data]# lltotal 421944-rw-r-----. 1 mysql mysql        56 Sep 12 20:57 auto.cnf-rw-r-----. 1 mysql mysql     11937 Sep 12 23:37 error.log-rw-r-----. 1 mysql mysql       4…
今天在群里看到有人说不熟悉innodb把ibdata(数据文件)和ib_logfile(事务日志)文件误删除了.不知道怎么解决.当时我也不知道怎么办.后来查阅相关资料.终找到解决方法.其实恢复也挺简单的.我们不知道的时候就觉得难了.谁说不是这样呢? 下面我们就来模拟生产环境下,人为删除数据文件和重做日志文件.然后详细说明恢复步骤. 1.用sysbench模拟数据的写入,如下所示: [root@yayun-mysql-server ~]# sysbench --test=oltp --oltp-t…
今天在群里看到有人说不熟悉innodb把ibdata(数据文件)和ib_logfile(事务日志)文件误删除了.不知道怎么解决.当时我也不知道怎么办.后来查阅相关资料.终找到解决方法.其实恢复也挺简单的.我们不知道的时候就觉得难了.谁说不是这样呢? 下面我们就来模拟生产环境下,人为删除数据文件和重做日志文件.然后详细说明恢复步骤. 1.用sysbench模拟数据的写入,如下所示: [root@yayun-mysql-server ~]# sysbench --test=oltp --oltp-t…
mysql的数据文件 由于mysql的数据文件结构主要跟mysql的存储引擎相关,这里不做过多解释,具体查看各个引擎章节的内容 .首先上一段小辉老师的教程; 在MySQL 中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件. 1.“.frm”文件  与表相关的元数据(meta)信息都存放在“.frm”文件中,包括表结构的定义信息等.不论是什么存储引擎,每一个表都会有一个以表名命名的“.frm”文件.   2.“.MYD”文件   …
数据文件 在MySQL中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件. 不同的MySQL存储引擎有各自不同的数据文件,存放位置也有区别. 多数存储引擎的数据文件都存放在和MyISAM数据文件位置相同的目录下,但是每个数据文件的扩展名却各不一样.如MyISAM用".MYD"作为扩展名,Innodb用".ibd",Archive用".arc",CSV用".csv"…
MySQL的数据文件存储 MyISAM引擎分为:静态.动态和压缩MyISAM三种: 静态MyISAM:如果数据表中的各数据列的长度都是预先固定好的,服务器将自动选择这种表类型.因为数据表中每一条记录所占用的空间都是一样的,所以这种表存取和更新的效率非常高.当数据受损时,恢复工作也比较容易做. 动态MyISAM:如果数据表中出现varchar.xxxtext或xxxBLOB字段时,服务器将自动选择这种表类型.相对于静态MyISAM,这种表存储空间比较小,但由于每条记录的长度不一,所以多次修改数据后…
数据库常用的两种引擎有Innodb和Myisam,关于二者的区别参考:https://www.cnblogs.com/qlqwjy/p/7965460.html 1.关于数据库的存储在两种引擎的存储是一样的 数据库的存储的都是在data目录下新建一个与数据库名字相同的文件夹,且每个文件夹内默认存放一个db.opt文件.删掉数据库也会删掉对应的文件夹. 如果我们采用的是windows操作系统,并且是默认安装位置,存放数据库的目录是在: C:\ProgramData\MySQL\MySQL Serv…
一 数据文件 在 MySQL中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件.不同的 MySQL存储引擎有各自不同的数据文件,存放位置也有区别.多数存储引擎的数据文件都存放在和 MyISAM数据文件位置相同的目录下,但是每个数据文件的扩展名却各不一样.如 MyISAM用“.MYD”作为扩展名, Innodb用“ .ibd”, Archive用“ .arc”, CSV用“ .csv”,等等. InnoDB,是MySQL的数据库引擎…
怎样查看MySql数据库物理文件存放位置? 使用命令行查找: show global variables like '%datadir%'; 我查找的位置:C:\ProgramData\MySQL\MySQL Server 5.7\Data\ 修改默认保存的位置: 在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini 按ctrl+f搜索”datadir“就可以找到你数据库的物理路径,在这里修改就好: 1.MySQL(server)创建并管理的数据库文件: .…
本文将介绍使用物理备份恢复Innodb单表数据的方法 前言: 随着innodb的普及,innobackup也成为了主流备份方式.物理备份对于新建slave,全库恢复的需求都能从容应对. 但当面临单表数据误删,或者单表误drop的情况,如果使用物理全备进行恢复呢? 下文将进行详细分析. 恢复过程中需要用到的工具,percona data recover tool PS:以下所有方案仅支持 innodb-file-per-table = 1 的情况 注意: 以下操作非文档推荐,切勿在没有测试的情况下…
一.背景 1.1文件组织架构 首先看一下mysql数据系统涉及到的文件组织架构,如下图所示: msyql文件组织架构图 从图看出: 1.日志文件:slow.log(慢日志),error.log(错误日志),general.log(基本日志) 2.配置文件:my.cnf 3.数据库:performance_schema,mysql,information_schema,sys 4.innodb存储引擎(框中部分),主要包括有:两个日志文件ib_logfile0和ib_logfile1,由参数inn…
一.问题发现 命令行进入数据库实例手动给某张表进行alter操作,发现如下报错. mysql> use xx_xxx; No connection. Trying to reconnect... Connection Current database: *** NONE *** Reading table information for completion of table and column names You can turn off this feature to get a quic…
MySQL的每个数据库都对应存放在一个与数据库同名的文件夹中,MySQL数据库文件包括MySQLserver所创建的数据库文件和MySQL所用存储引擎创建的数据库文件. 查看MySql数据库物理文件存放位置 1.MySQL创建并管理的数据库文件: .frm文件:存储数据表的框架结构,文件名与表名相同,每个表对应一个同名frm文件,与操作系统和存储引擎无关,即不管MySQL运行在何种操作系统上,使用何种存储引擎,都有这个文件. 除了必有的.frm文件,根据MySQL所使用的存储引擎的不同(MySQ…
14.8.2 Role of the .frm File for InnoDB Tables InnoDB 表得到 .frm文件的作用 Vsftp:/data01/mysql/zjzc# ls -ltr Client.* -rw-rw---- 1 mysql mysql 10132 Oct 28 09:46 Client.frm -rw-rw---- 1 mysql mysql 16777216 Oct 28 09:47 Client.ibd MySQL 存储它的数据目录信息用于表在.frm文件…
问题:mysql存放的数据文件,分区容量较小,目前已经满,导致mysql连接不上, 解决方案: 1.删除分区里一个不需要用的数据,如:日志文件等(解决不了根本问题) 2.对某个磁盘扩容 3.修改数据存储位置 修改数据存储位置步骤: 1.查看mysql存储目录 #安装目录 --basedir=/usr #数据存储位置 --datadir=/home/mysqlData/mysql #用户 --user=mysql #日志 --log-error=/home/mysqlData/mysql/loca…
情况描述:服务器硬盘损坏,服务器换了个新硬盘 ,然后老硬盘插在上面.挂载在这台机器.可以从老硬盘里面拿到数据.只拿到了里面的mysql数据文件夹,把数据文件夹覆盖新的服务器mysql数据文件夹 启动报错!!!报错!!!错!!!. 数据文件如下: 于是觉得不能使用覆盖文件的方式还原数据,得使用科学方法恢复.google之…… 找到解决办法如下: 可以发现数据目录下有对应数据库名称的文件夹,文件夹下有很多 表名.ibd 文件,这些文件其实就是数据,我们要利用它们来恢复 恢复步骤: 1.在新库里面创建…
原博文出自于: http://blog.fens.me/category/%E6%95%B0%E6%8D%AE%E5%BA%93/page/2/ 感谢! [MySQL优化]为MySQL数据文件ibdata1瘦身 前言 MySQL在运行一段时间后,ibdata1的文件会增长大小,就算删除了表的数据,ibdata1的体积也不会减小.由于硬盘空间有限,这样一直膨胀下去磁盘空间接近崩溃.今天在导出数据的时候就发现了,磁盘竟然满了,明明预留了1个月的用量,1周就占满了,下面就要给ibdata1做个瘦身.…
使用rpm安装方式安装完MySQL数据库后,数据文件的默认路径为/var/lib/mysql,然而根目录并不适合用于存储数据文件. 原路径:/var/lib/mysql 目标路径:/home/mysql_data/mysql Linux系统版本:centos7.6 MySQL数据库版本:5.7.25 步骤: 1.创建目标路径 mkdir -p /home/mysql_data 2.关闭MySQL systemctl stop mysqld 3.复制数据文件 cp -arp /var/lib/my…
利用XtraBackup给MYSQL热备(基于数据文件) By JRoBot on 2013 年 11 月 26 日 | Leave a response 利用XtraBackup给MYSQL热备(基于数据文件)利用 XtraBackup 快速配置主从服务器这XtraBackup 个主要包含2个命令 xtrabackup 和 innobackupex 第一个是他的主程序 另外个他自己封装的脚本一般用脚本来完成备份这是工作笔记 比较凌乱 凑合着看吧 获取XtraBackup 获取XtraBacku…
mysql8.0取消了frm文件 . ibd数据和索引…
1.主配置文件 #/usr/local/mysql/bin/mysqld --verbose --help |grep -A 1 'Default options' #cat /etc/my.cnf [client] port = 3306 #指定MySQL的开放端口 socket = #套接字文件 [mysqld] basedir = /usr/local/mysql #指定MySQL安装的绝对路径 datadir = /disk1/mysql #指定MySQL数据存放的绝对路径 log-er…