专注于 Oracle、MySQL 数据库多年,Oracle 10G 和 12C OCM,MySQL 5.6 ,5.7,8.0 OCP。现在鼎甲科技任顾问,为同事和客户提高数据库培训和技术支持服务。
本文通过 XtraBackup 备份单个数据库,然后恢复到另一个实例,用于快速迁移大数据量,使用的软件版本为:
我们在 第12问 中介绍了 table cache 的作用:在同一个线程内,减少了重复读取表定义的成本,包括读取表定义文件的 IO 成本, 和 构造内存结构的 CPU 成本。(要注意 table cache 是线程级别的)
MySQL中的alter table操作对于大表来讲,是一个比较严重的问题,MySQL执行大部分alter table的操作步骤是:
写这篇文章我是非常不情愿的,我现在是在写这篇文章,但是同时我也在恢复我服务器数据库的数据,出这篇文章也是在我的意料之外,由于我正在这件事类,我就出一版这样的mysql.frm.ibd文件数据恢复教程,希望这次教程可以帮助到更多需要恢复的人,我现在是情绪暴涨。
现居珠海,主要负责 Oracle、MySQL、mongoDB 和 Redis 维护工作。
客户需要做一套库的迁移,因为库的数据量不大,40G左右,并且需要到远程机器上去做全量恢复。所以第一时间想到的自然是 mysqldump 工具来做。但是没想到会发生这种“惨案”。
今天来分享一下MySQL中支持的一种存储引擎--CSV,这种存储引擎平时工作中用得可能并不多,但是在某一些导入CSV文件的场景下,非常有用;平时我们把CSV文件导入到MySQL中,可能会考虑到使用load data的方式导入数据,下面我们介绍一种新的方式–使用CSV引擎,在CSV数据量比较大的情况下,比较好用;
phpMyAdmin是一个以PHP为基础,以web方式架构在服务器上的MySQL的数据库管理工具。让管理者可以通过Web接口来管理MySQL数据库。因其基于Web的简便易操作的图形化界面备受网站管理者的喜爱。
硬盘空间满导致mysql ibd文件被删后提示Tablespace is missing for table ‘db_rsk/XXX“ 昨天一早,开发人员反馈说一个测试环境报Tablespace is missing for table ‘db_rsk/XXX“,周末刚升级过,特地让开发回去查了下,说脚本中肯定没有drop table的操作。datadir下检查了下,发现frm文件在的ibd文件没有了,bing了下,没发现类似异常。于是先回到mysql.err往回搜索,半天后发现上周五下午mysql出现了一
在my.cnf配置文件中设置default-storage-engine参数表示设置默认存储引擎 在MySQL的连接上设置当前连接的默认存储引擎
分区表是数据库中一种用于优化大型表数据管理和查询性能的技术。它将一个表的数据根据特定的规则或条件分割成多个部分,每个部分称为一个分区。每个分区可以独立于其他分区进行存储、管理和查询,这样可以提高数据处理的效率,尤其是在处理大量数据时。
从MySQL 8.0开始,采用独立表空间模式的每个InnoDB表只有一个 .ibd 表空间文件,而不再有 .frm 文件了。为了实现DDL的原子性,InnoDB直接把元数据存储在表空间文件中,需要的话,可是使用 ibd2sdi 工具从中读取,例如:
昨天一早,开发人员反馈说一个测试环境报Tablespace is missing for table 'db_rsk/XXX",周末刚升级过,特地让开发回去查了下,说脚本中肯定没有drop table的操作。datadir下检查了下,发现frm文件在的ibd文件没有了,bing了下,没发现类似异常。于是先回到mysql.err往回搜索,半天后发现上周五下午mysql出现了一次异常宕机,说是磁盘空间不足了,看日志该文件被损坏了,如下:
前几天因为mysql数据库部分数据损坏原因,我尝试了下恢复数据,之后整理以下文档,供各位参考,
InnoDB是mysql默认事务型引擎,它被设计处理大量短期事务。可以确保事务的完整提交和回滚。 除了增加和查询外,还需要更新,删除操作等优先选用InnoDB引擎 InnoDB是为处理巨大数据量的最大性能设计。 相对于MyISAM存储引擎来说,InnoDB的处理效率差一些 并且会占用更多的磁盘空间以保存数据和·索引。 MyISAM存储引擎只缓存索引,不缓存真实数据,InnoDB不仅缓存索引,而且还要缓存真实数据,对内存要求较高。而且内存大小对性能有绝对性影响。
MySQL 的数据导出导入其实从MYSQL 5.5 到 5.7 大部分采用的方法有如下几种
关于还原部分备份,只有一个注意点,即不能使用传统的prepare和copy back命令,需要使用export和import的形式
0. 前言 1. 存储引擎查看 2. InnoDB存储引擎特性存储InnoDB历史 3. MyISAM存储引擎前言特性加锁与并发修复索引特性延迟更新索引键存储压缩表性能 4. InnoDB和MyISAM对比 5. MySQL其他存储引擎MEMORY存储引擎ARCHIVE存储引擎CSV存储引擎如何选择合适的存储引擎
经过分析发现,报错信息中的数据库,所有表名都混用了大小写字母,因为创建表之后,系统变量 lower_case_table_names 的值被从 0 修改为 1,导致删除这个数据库时,每个表的 ibd 文件删除成功,frm 文件删除失败。
在MySQL中,如果我们使用了默认的存储引擎innodb创建一张表,那么在文件夹下面就会出现表名.frm和表名.ibd两个文件,如果我们使用的是Myisam存储引擎,那么就会出现三个文件,这里我们给出例子:
语法 innobackupex --user=DBUSER --password=DBUSERPASS /path/to/backup/dir/ innobackupex --user=DBUSER --password=DBUSERPASS --backup --target-dir=/path/to/BACKUP-DIR/
MySQL里面对于表的默认的配置是每个表都有独立的文件.ibd和.frm文件对应,对于数据恢复来说,会提供很大的便利。
文件中存放的是frm对应表结构的sql,直接复制出来运行就行了,此时数据库中所有的结构都恢复了,就是还没有数据
巡检时发现服务器磁盘空间不足,通过查看大文件进行筛选是发现有几个#sql开头的文件,且存在超过100G及10G以上的文件。
MySQL 作为全世界广受欢迎的数据库,被用于很多中小型的项目中,但是你对 MySQL 数据库的存储引擎了解多少呢?
无论何种存储引擎(InnoDB、MyISAM、MEMORY...),只要创建了表结构就会在磁盘上创建一个frm文件,文件名为:表名.frm
mysql> alter table skatetab add unique index(id, uid), drop primary key, add primary key(uid, id);
mysql-utilities是mysql的一个工具集合,它是基于----- python2 --- 实现的,从官网查看到最新版本为mysql-utilities-1.6.5.tar.gz
作者:李彬,爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问题排查。爱好有亿点点多,吉他、旅行、打游戏…
安装环境: 操作系统版本:RHEL 6.5 安装版本:MYSQL 5.1 升级版本:MYSQL 5.6 一、默认库介绍 安装完成之后,mysql会自动创建以下三个默认的库. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +-
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53908035
今天是《MySQL核心知识》专栏的第14章,今天为大家系统的讲讲MySQL中的数据备份与恢复,希望通过本章节的学习,小伙伴们能够举一反三,彻底掌握MySQL中的数据备份与恢复相关的知识。好了,开始今天的正题吧。
对于Online DDL,之前简单分析了一些场景MySQL中的Online DDL(第一篇)(r11笔记第3天),其实有一个很关键的点没提到,那就是online DDL的算法,目前有三个操作选项,default,inplace,copy可选 具体可以参考 https://dev.mysql.com/doc/refman/5.6/en/innodb-online-ddl.html > select count(*) from newtest; +----------+ | count(*) | +-----
作者介绍:谢浩,现任职于云和恩墨(北京)信息技术有限公司,具有多年oracle数据库企业级运维经验,擅长结合业务、硬件系统制定各种项目方案,具有丰富mysql相关的工作经验。 假设你在使用MySQL中的InnoDB驱动,由于遇到了驱动程序错误,内核错误,电源故障或某些罕见的MySQL错误,而在InnoDB ibdata1文件损坏,实例不能启动。你该怎么办呢? 案例描述 某门户mysql innodb数据库实例损坏,数据库服务无法启动,使用文件系统上的数据库frm及bid文件恢复数据库内的业务数据。 相关知识
本文目的:指导项目侧人员再遇到此类改动需求时可以自己更改。 需求:mr_intrainterfreq表重建,历史数据全部删掉。
1. 现象 公司一套MySQL数据库的error日志被撑得很大 查看后发现大量报错 Incorrect information in file: './sys/x$session.frm' 这时查看sys文件夹,发现里面的文件大小都为0 2. 原因查找 sys 数据库是MySQL 5.7后引入的一个系统数据库 用于分析系统性能 具体产生报错的原因未找到 这时想办法修复 3. 问题解决 这里采用还原其他MySQL中sys数据库解决 3.1 备份sys库 找个正常的sys数据库进行备份 mysqldu
海外有一台服务器受到攻击,上面有自建的mysql数据库,要把数据库备份下来,要到地址账号密码登录上去看了一下mysql版本是5.1的
圈出来那一行,yes就是有,no就是没有,default就是系统默认的,一般是开着的,disabled就是有,但是被关了。
MySQL5.5以后版本的默认存储引擎 支持事物的ACID特性 Innodb使用表空间存储 innodb_file_per_table (如果此参数为ON) 则会创建一个独立的表空间:tablename.ibd 系统表空间:ibdataX(如果参数为OFF) X表示一个数字 演示参数ON mysql> show variables like 'innodb_file_per_table'; +-----------------------+-------+ | Variable_name
本公司开发使用的开发语言是 PHP Laravel 框架,通过 php artisan migrate 进行操作,导致数据库异常,随后再执行这个SQL语句一直报错,报错提示如下:
本公司开发使用的开发语言是PHP Laravel框架,通过 php artisan migrate 进行操作,导致数据库异常,随后再执行这个SQL语句一直报错,报错提示如下:
在MySQL中,存在各种各样的临时文件,其存放位置是五花八门,且不同版本也不尽相同,主要包括以下:
在MySQL中如果要迁移一个表导另外一个服务器/环境中,常规的做法就是使用备份工具备份,比如mysqldump,然后拷贝备份到目标服务器或者环境导入。如果某一个表数据量很大,导出dump文件很大的情况下,使用导出导入工具其实会花费不少的时间. 怎么样提高效率呢,可以有一种想法就是直接拷贝数据文件到目标环境,当然在早期版本中这么做是不可取的,因为会有很多关联数据在ibdata中,InnoDB的数据存在对应的数据字典信息,是存放在共享表空间中,无法直接剥离出来,而在5.6/5.7中,就推出了一个很不错
存储引擎是Mysql中特有的术语,是一个表存储数据的方式。Mysql支持九大存储引擎。Mysql版本不同支持的存储引擎不同。 2.常见的存储引擎: ①MyISAM存储引擎管理表的特征:使用三个文件来表示每个表:格式文件mytable.frm(存储表结构)、数据文件mytable.MYD(存储表中的数据),索引文件mytable.MYI(存储表上的索引)。优点:可以被转换为压缩,只读表来节省空间,缺点:不支持事务,安全性低。 ②InnoDB存储引擎:mysql默认的存储引擎。是重量级的存储引擎。支持事务(可以保证数据的安全),支持数据库崩溃后的恢复机制。每个InnoDB表在数据库目录中以.frm格式文件存储表格式,InnoDB表空间tablespace(逻辑名称)用于存储表的内容和索引。优点:非常安全,缺点:效率低,不能压缩不能转换为只读,不能很好的节省内存空间。 ③MEMORY存储引擎:内存存储引擎,每个表的格式文件存储在.frm文件中,表数据和索引存储在内存中(查询速度快),支持表级锁机制。优点:查询效率高。缺点:不安全,服务器关闭后,保存在内存中的数据和索引消失。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
XtraBackup是Percona推出的一款备份工具,算是对于mysqldump的一个补充。对于大批量数据的导入使用mysqldump会出现一定的瓶颈,这一点做过一些数据迁移项目的同学可能感同身受。
前几天,我的朋友小明同学火急火燎地找到我,说有个表刚导入了几千万数据,却怎么也查不到数据,很是抓狂,让我给看看。
五一假期过去一半了,不知道小伙伴们过的如何,相信很多小伙伴都出去玩了吧?我是在家研究了两天Seata源码。
领取专属 10元无门槛券
手把手带您无忧上云