我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL不同存储引擎的数据备份与恢复

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL不同存储引擎的数据备份与恢复

今天小编就来为大家讲讲如何进行MySQL数据备份。

1

数据备份的目的很直接也很简单,就是为了避免因不可预测、偶然的事件而导致的惨重损失,所以数据越重要、变化越频繁,就越要进行数据备份。本文以MySQL为例,讲讲面对不同的存储引擎如何做数据备份与恢复。

为了应对不同的数据处理,MySQL提供了十几种不同的存储引擎,不过,我们没有必要一 一去了解,因为熟悉使用MySQL的人都知道,比较常用的存储引擎有两个,分别是MyISAM和InnoDB。

MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎,不支持事务、也不支持外键,但其优势在于访问速度快,对事务完整性没有要求,以select,insert为主的应用基本上可以用这个引擎来创建表。常用于高读取的应用场景数据库,支持三种不同类型的存储结构:静态型、动态型、压缩型。

InnoDB提供了具有提交、回滚和崩溃恢复能力的事务安全,支持自动增长列,支持外键约束。对比MyISAM引擎,InnoDB写的处理效率会差一些,并且会占用更多的磁盘空间以保留数据和索引。

了解了MySQL常用的两种存储引擎之后,我们就来看看在这两种引擎中如何进行数据备份和恢复。

2

1)MyISAM数据备份:

因为MyISAM是保存成文件的形式,所以在备份时有多种方法可以使用,并且大多数虚拟主机提供商和INTERNET平台提供商只允许使用MyISAM格式,掌握MyISAM数据备份就格外重要了。

方法1:文件拷贝:

为了保持数据备份的一致性,我们可以对相关表执行LOCK TABLES操作,对表执行FLUSH TABLES。当然,你只需要限制写操作,这样能够保证在复制数据时,其它操作仍然可以查询表,而FLUSH TABLES是用来确保开始备份前将所有激活的索引页写入硬盘。

标准流程:锁表、刷新表到磁盘、拷贝文件、解锁。

方法2:SQL语句备份:

SELECT INTO ...OUTFILE或BACKUP TABLE都可以进行SQL级别的表备份,需要注意的是这两种方法如果有重名文件,最好是先移除重名文件。另外,BACKUP TABLE备份需要注意输出目录的权限,改方法只是备份MYD和frm文件,不备份索引。

方法3: mysqlhotcopy 备份:

mysqlhotcopy 是一个 Perl脚本,使用LOCK TABLES、FLUSH TABLES和cp或scp来快速备份数据库,但其只能运行在数据库目录所在的机器上,且只用于备份MyISAM。

shell> mysqlhotcopy db_name [/path/to/new_directory ]

shell> mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory

方法4: mysqldump 备份:

Mysqldump既可以备份表结构和数据,也可以备份单个表、单个库或者所有库,输出是SQL语句文件或者是其它数据库兼容的格式。在之前的文章中,我们较详细的介绍了Mysqldump,本文就不再赘述了。

shell> mysqldump [options] db_name [tables]

shell> mysqldump [options] ---database DB1 [DB2 DB3...]

shell> mysqldump [options] --all—database

方法5:冷备份:

冷备份的方法就很简单粗暴了,在MySQL服务器停止服务时,复制所有表文件。

3

2)MyISAM数据备份恢复:

不同的备份方式有相应的恢复方法:

如果是mysqldump备份,恢复方法是mysql –u root < 备份文件名;

如果是mysqlhotcopy或文件冷/热拷贝备份,恢复方法是停止MySQL服务,并用备份文件覆盖现有文件;

如果是BACKUP TABLE备份,使用restore table来恢复;

如果是SELECT INTO ...OUTFILE备份,使用load data恢复数据或mysqlimport命令。

4

3)InnoDB数据备份:

MyISAM不支持事务和外键,这使得MySQL使用者往往会面临一些挑战,所以,理所当然的当InnoDB支持事务和外键时,即使它的速度较慢,也还是获得了MySQL使用者的青睐。

方法1:mysqldump:

是不是看着很眼熟,没错儿,上面MyISAM数据备份的方法其中之一就是它。Mysqldump也可以对InnoDB提供非物理的在线逻辑热备份,使用方法和MyISAM类似。

方法2:copy file:

InnoDB底层存储的时候会将数据和元信息存在ibdata*, *.ibd, *.frm, *.ib_logfile*等文件中,所以备份了这些文件就相当于备份了InnoDB数据。

方法3:select into:

与MyISAM用法一样。

方法4:商业工具:

InnoDB数据备份有很多商业工具可以使用,例如InnoDB Hotbackup,这是一个在线备份工具,即可以在InnoDB数据库运行时备份InnoDB数据库; ibbackup,将线上的my.cnf所指向的的数据内容备份到my.backup.cnf指向的数据目录。

4)InnoDB数据备份恢复:

在使用特定的恢复方法之前,InnoDB数据备份恢复还有两个通用的方法,分别是InnoDB的日志自动恢复功能,即重启mysql服务和“万能大法”——重启计算机。

如果是mysqldump完全备份,先恢复完全备份,然后再恢复完全备份后的增量日志备份。

如果是select into备份表,则采用load data或mysqlimport恢复。

如果是copy file,那么就停止MySQL服务,备份文件覆盖当前文件,并执行上次完全备份后的增量日志备份。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL不同存储引擎的数据备份与恢复

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux运维 | mysql数据库的备份与恢复

特点 备份的数据全面而且最为完整 数据量大的时候备份时间长 备份数据会存在大量重复信息 增量备份 增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的
Linux运维 | mysql数据库的备份与恢复
2021-02-10

MySQL数据库的自动备份与恢复设置

在MySQL数据库中,自动备份与恢复设置可以通过多种方式实现,包括使用命令行工具、图形化管理工具或第三方备份软件。以下是一些常见的方法:一、使用mysqldump命令进行自动备份mysqldump是一个用于备份MySQL数据库的命令行工
MySQL数据库的自动备份与恢复设置
2024-10-21

MySQL INSERT锁与数据库备份恢复的性能

在MySQL中,INSERT操作通常会涉及锁定行或表,这可能会影响数据库的性能。如果在高负载环境下进行大量INSERT操作,可能会导致性能下降或阻塞其他查询。在进行数据库备份和恢复时,也可能会影响数据库的性能。备份操作可能会占用数据库资源
MySQL INSERT锁与数据库备份恢复的性能
2024-08-14

MySQL Galera集群的数据备份与恢复方案

MySQL Galera集群的数据备份与恢复方案主要包括备份策略的选择、备份工具的使用,以及数据恢复的步骤。以下是一些关键步骤和工具:数据备份方案物理备份:直接复制数据库文件,包括数据文件、日志文件等。这种备份方法通常速度较快,但需要停止
MySQL Galera集群的数据备份与恢复方案
2024-09-04

不同数据库存储引擎技术的优劣势分析

很多数据库管理员可能对存储引擎并不熟悉,但接触MySQL以及其他一些NoSQL分布式数据库比较多的人可能对存储引擎就会深有感受。不同的存储引擎对数据的结构、数据的存储方式、数据的读取方式等都有不同的要求和特点。存储引擎的基本思想是决定具体数

MySQL ORM框架的数据库备份与恢复策略

MySQL ORM框架(如Django ORM、SQLAlchemy等)通常不直接提供数据库备份与恢复功能,但你可以通过执行原生SQL语句或使用ORM框架提供的特定功能来实现这些操作。以下是一些常见的数据库备份与恢复策略:使用mysqldu
MySQL ORM框架的数据库备份与恢复策略
2024-10-05

MyBatis视图在数据备份恢复中的存储介质选择

MyBatis 视图本身并不直接涉及数据备份恢复的存储介质选择,因为视图是数据库层面的对象,而数据备份恢复通常涉及到将数据导出到某种存储介质上,并在需要时恢复这些数据。以下是关于数据备份恢复存储介质选择的相关信息:存储介质选择对象存储(O
MyBatis视图在数据备份恢复中的存储介质选择
2024-10-15

MySQL的存储引擎与HBase的存储层在数据持久化上的对比

MySQL和HBase在数据持久化方面各有特点,以下是对两者在数据持久化方面的对比:MySQL的存储引擎与HBase的存储层在数据持久化上的对比MySQL的数据持久化方式:存储引擎:MySQL支持多种存储引擎,如InnoDB、MyISAM
MySQL的存储引擎与HBase的存储层在数据持久化上的对比
2024-10-22

SQL Server和MySQL的数据备份与恢复策略对比。

SQL Server和MySQL是目前最常用的关系型数据库管理系统之一。在日常的数据库管理中,数据备份与恢复是非常重要的。本文将对SQL Server和MySQL的数据备份与恢复策略进行对比,并提供相应的代码示例。一、数据备份策略SQL S
2023-10-22

MySQL与HBase在数据备份恢复速度上的较量

MySQL和HBase在数据备份恢复速度上各有优势和特点,选择哪种数据库取决于具体的应用场景和需求。以下是MySQL与HBase在数据备份恢复速度上的较量:MySQL的备份恢复速度备份类型:MySQL支持逻辑备份和物理备份。逻辑备份通过S
MySQL与HBase在数据备份恢复速度上的较量
2024-10-19

编程热搜

目录