MySQL数据库备份与恢复

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

  在使用MySQL的过程中,我们免不了数据的备份与恢复,数据库的迁移等操作,针对不同的情形,可以选取不同的方案。还记得之前GitLab删库事件吗?在那么多牛逼的工程师力挽狂澜下,最后还是丢失6小时的数据,已经是损失最小了。多么惨痛的教训,也是对运维工程师、数据库管理员等朋友的一次经典案例,所以我们不仅要制定合理的数据备份计划,同时还要保证备份数据的可恢复性,整个过程要适当的演练。避免备份机制出现意外情况。

  本文主要是介绍不同的备份方式的原理和特点,例如物理备份、逻辑备份、联机备份、脱机备份等。相互比较,分析总结,更好的选择适合自己的备份方式与计划。

物理备份

  所谓物理备份就是原始数据在操作系统上呈现什么样的形式,备份出来就是什么样,这种方式纯属I/O型的备份方案,备份形式上就是将组成数据库的数据文件、配置文件、日志文件等相关文件,复制到其他路径或者其他主机上。常用的方法有 (cp、rsync等),一般情况下需要停止mysql服务或者锁表,恢复比较快。
适用场景大型、重要、出现故障时需要快速恢复的场景
物理备份的特点
    备份数据中包括完整的数据库目录和数据文件,对于MySQL来说,就是指MySQL的数据目录
    物理备份一般都比较快,因为基本都是I/O复制,不存在数据转换。
    备份时的粒度是整个数据库服务级,某些存储引擎有时也能吃吃更新的表粒度,备份粒度也决定了恢复的粒度,因此对备份策略也会有影响。
    备份数据中可以包含关联文件,例如日志文件、配置文件等
    对于像MEMORY引擎表这类对象,由于其数据并不保存在磁盘中,而是保存在内存中,因此不会备份,仅能备份相关的表结构。但是可以利用工具备份,例如MySQL Enterprise Backup(企业级产品)工具备份内存表中的数据。
    备份能够轻易恢复到配置类似的机器上。
    对于物理备份操作来说,一般是在未启动的状态下进行,如果MYSQL服务已经启动,那就只能对相关的系统对象进行适当的锁定,保证数据库的数据不会不会改变,否则备份的数据可能不是完整数据,恢复后,可能存在丢失数据的情况

 执行物理备份的方式
        操作系统层:cp rsync  scp  tar 
        第三方工具:mysqlbackup   MySQL Enterprise Backup  MyISAM引擎专用 mysqlhotcopy

逻辑备份

  所谓的逻辑备份就是将数据库定义语言和所有的数据转换成SQL文件存储,一般有mysqldump等方式,这种方式比较适合小数据量的库和表,当数据量达到一定量后,备份、恢复时间长,同时会在备份过程中锁表,影响比较大。
适用场景:小型、以便在其他服务器上面进行恢复的情景
逻辑备份特点
    备份集是基于查询MySQL服务获得数据库的结构和内容信息
    备份速度慢于物理备份
    数据备份文件比物理备份更大,因为是以纯文本报存,数据没有经过任何压缩,一般是采用gzip  或者tar等方式压缩
    备份和恢复的粒度比较灵活,可以是服务级(所有数据库),也可以是某个库中的某些表,甚至可以是某张表中的部分数据
    备份集不包括日志和配置文件或者其他与数据库相关的日志文件,这些文件都需要手动备份
    备份集通用性比较强,不仅仅是针对MySQL数据库,甚至将备份文件拿到其他关系型数据库平台上恢复
    MySQL原始的逻辑备份工具包括mysqldump,甚至 select into  outfile  也可以算在内。这些工具可以支持所有的存储引擎甚至Memory,这种存储在内存中的引擎
    恢复时,备份的SQL文件,可以用mysql 命令导入,也可以在登录mysql后使用source命令加载。对于部分定界文件可以使用 load  data  infile  或者mysqlimport导入。
   除了物理备份与逻辑备份,某些文件系统支持创建快照,但是MYSQL是通过第三方解决方案实现,例如 VEritas LVM 或者ZFS等。



本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1927655,如需转载请自行联系原作者
目录
打赏
0
0
0
0
265
分享
相关文章
mysql数据库备份与恢复
MySQL数据库的备份与恢复是确保数据安全性和业务连续性的关键操作。
289 4
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
PolarDB开源数据库进阶课5 在线备份
本文介绍了如何在PolarDB RAC一写多读集群中进行在线备份,特别针对共享存储模式。通过使用`polar_basebackup`工具,可以将实例的本地数据和共享数据备份到本地盘中。实验环境依赖于Docker容器中用loop设备模拟的共享存储。
68 1
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
96 28
利用Cron表达式实现MySQL数据库的定时备份
以上就是如何使用Cron表达式和mysqldump命令实现MySQL数据库的定时备份。这种方法的优点是简单易用,而且可以根据需要定制备份的时间和频率。但是,它也有一些限制,例如,它不能备份MySQL服务器的配置文件和用户账户信息,也不能实现增量备份。如果需要更复杂的备份策略,可能需要使用专门的备份工具或服务。
44 15
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
1043 11
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
418 3
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
222 3
介绍一下数据库的备份和恢复策略
【10月更文挑战第21】介绍一下数据库的备份和恢复策略

热门文章

最新文章