mysql数据的备份与恢复

本文涉及的产品
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介:

在科技迅速发展的今天,我们每个人都生活在大数据时代,谁掌握的数据越多,就越能了解消费者的需求,也就更能拥有更好的发展前景,因此数据变得很重要。这时数据的备份就不可缺少了。今天我们就来谈一下mysql数据的备份与恢复。                                                  

数据备份按业务划分可分为:完全备份,增量备份,差异备份。

1. 完全备份Full Backup)                               

所谓全备份就是对整个数据库的数据和数据结构进行备份。这种备份方式的好处就是很直观,容易被人理解。而且当发生数据丢失的灾难时,只要用灾难之前的备份文件,就可以恢复丢失的数据。然而它也有不足之处:首先由于每天都对系统进行完全备份,因此在备份数据中有大量是重复的。这些重复的数据占用了大量的空间,这对用户来说就意味着增加成本;其次,由于需要备份的数据量相当大,因此备份所需时间较长。对于那些业务繁忙,备份窗口时间有限的单位来说,选择这种备份策略无疑是不明智的。

2、增量备份(IncrementalBackup

就是每次备份的数据只是相当于上一次备份后增加的和修改过的数据。这种备份的优点很明显:没有重复的备份数据,即节省空间,又缩短了备份时间。但它的缺点在于当发生灾难时,恢复数据比较麻烦。举例来说,如果系统在星期四的早晨发生故障,丢失大批数据,那么现在就需要将系统恢复到星期三晚上的状态。这时管理员需要首先找出星期一的那份完全备份数据进行系统恢复,然后再找出星期二的数据来恢复星期二的数据,然后在找出星期三的数据来恢复星期三的数据。很明显这比第一种策略要麻烦得多。另外这种备份可靠性也差。在这种备份下,各备份数据间的关系就象链子一样,一环套一环,其中任何一个备份数据出了问题都会导致整条链子脱节。

3、差异备份(DifferentialBackup

就是每次备份的数据是相对于上一次全备份之后新增加的和修改过的数据。管理员先在星期一进行一次系统完全备份;然后在接下来的几天里,管理员再将当天所有与星期一不同的数据(新的或经改动的)备份到磁带上。

b139e6c6f93de5816966e61b50aa3001.png

按方式划分:可分为热备、温备、冷备

热备份Hot Backup)是指在数据库运行中直接备份,对正在运行的数据库没有任何影响。

冷备份Cold Backup)是指在数据库停止的情况下进行备份,这种备份最为简单,一般只需要拷贝相关的数据库物理文件即可。

温备份Warm Backup)备份同样是在数据库运行时进行,但是会对当前数据库的操作有所影响,例如加一个全局读锁以保证备份数据的一致性。


mysqldump逻辑备份工具,适用于所有存储引擎,可用于温备,能实现完全备份,部分备份;对InnoDB存储引擎支持热备;cp, tar等文件系统工具:物理备份工具,适用于所有存储引擎;用于冷备,能实现完全备份,部分备份;


mysqldump+binlog

命令的语法格式

mysqldump [OPTIONS] database [tables]:备份单个库,或库指定的一个或多个表

mysqldump [OPTIONS] --databases [OPTIONS]DB1 [DB2 DB3...]:备份一个或多个库

mysqldump [OPTIONS] --all-databases[OPTIONS]:备份所有库

mysqldump+binlog

其他选项

-x, --lock-all-tables:锁定所有表

-l, --lock-tables:锁定备份的表

--single-transaction:启动一个大的单一事务实现备份

-C, --compress:压缩传输

-E, --events:备份指定库的事件调度器

-R, --routines:备份存储过程和存储函数

--triggers:备份触发器

--master-data={0|1|2}

0:不记录

1:记录CHANGE MASTER TO语句;此语句未被注释

2:记录为注释语句

-F--flush-logs:锁定表之后执行flushlogs命令


实战训练


1、  准备备份目录

mkdir -pv /backup/binlog

2、  准备备份数据库及表

bc57a7ae5f9e1ad39daaa4adca9ac05f.png

3、  进行完整备份

mysqldump --all-databases --lock-all-tables --flush-log --master-data=2 >/backup/'data +%F_%T'-all.sql

查看备份数据:ls /backup/

4、  向表中插入数据

2eb91fa00ce5b29eff10ffc76540d4c7.png

5、  进行增量备份,备份二进制日志

mysqlbinlog --start-position=245 --stop-position=440 /var/log/mariadb/mariadb_bin.000004 > /backup/'data +%F_%T'-all.sql 

6、  继续插入数据,在没备份的情况下删除数据库,模拟误操作

1b94610649cfb49cdebd73a1a262fd79.png

7、数据恢复,由于最后我们没有备份就删除了数据库,所以我们首先需要保护最后的二进制日志,查看删除操作之前的position值 

mysqlbinlog /mydata/data/mysql-bin.000015

、将最后操作的二进制日志备份

mysqlbinlog --stop-position=630 /var/lib/mysql/mysql_bin.000004 > /backup/binlog/binlog-`date +%F_%T`.sql

查看备份的日志:ls /backup/binlog/

9导入之前的所有备份

mysql < /backup/2017.....-all.sql 完全备份

mysql < /backup/2017......sql 增量备份

mysql < /backup/2017 .......sql 误操作之前的备份

10、查看数据库及数据



lvm2快照+binlog

LVM 快照简单来说就是将所快照源分区一个时间点所有文件的元数据进行保存,如果源文件没有改变,那么访问快照卷的相应文件则直接指向源分区的源文件,如果源文件发生改变,则快照卷中与之对应的文件不会发生改变。快照卷主要用于辅助备份文件。


实验

、添加硬盘,并划分磁盘类型为lvm 类型

在设置里添加硬盘以后,要使其写入内核,可以用 echo '- - -'/sys/class/scsi_host/host0/scan

partx -a/dev/sdb 使内核识别新磁盘

pvcreate/dev/sdb1 添加物理卷

vgcreatemyvg /dev/sdb1 添加卷组

 lvcreate -nmydata -L 5G myvg 添加逻辑卷

mkfs.ext4/dev/mapper/myvg-mydata 格式化逻辑卷

挂载mount/dev/mapper/myvg-mydata /lvm_data 使用,挂载点若没有,要提前创建

修改Mysql 配置,使得数据文件在逻辑卷上 datadir=/lvm_data

       修改文件:vim /etc/my.cnf

service mysqld restart 启动Mysql 服务

10  创建数据库,进行操作

11 mysql>FLUSH TABLES WITH READ LOCK; 锁定表

12 lvcreate -L1G -n mydata-snap -p r -s /dev/mapper/myvg-mydata # 创建快照卷Logicalvolume "mydata-snap" created.

13 mysql>UNLOCK TABLES; # 解锁所有表

14  mount/dev/myvg/mydata-snap /lvm_snap/ # 挂载snap

15 tar cvf/tmp/mysqlback.tar ./* # 打包物理备份

16 umount/lvm_snap/ # 卸载snap

17 lvremovemyvg mydata-snap # 删除snap

18 删除mysql 数据 rm -rf/lvm_data/*

19 解压恢复删除数据tar xvf /tmp/mysqlback.tar ./

20 验证数据库数据是否正确恢复


本文转自    honeyorange   51CTO博客,原文链接:http://blog.51cto.com/13172732/1983291

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
10月前
|
SQL 人工智能 关系型数据库
如何实现MySQL百万级数据的查询?
本文探讨了在MySQL中对百万级数据进行排序分页查询的优化策略。面对五百万条数据,传统的浅分页和深分页查询效率较低,尤其深分页因偏移量大导致性能显著下降。通过为排序字段添加索引、使用联合索引、手动回表等方法,有效提升了查询速度。最终建议根据业务需求选择合适方案:浅分页可加单列索引,深分页推荐联合索引或子查询优化,同时结合前端传递最后一条数据ID的方式实现高效翻页。
548 0
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
9月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
724 10
|
11月前
|
存储 关系型数据库 MySQL
【赵渝强老师】使用select...into outfile语句备份MySQL
本文介绍了MySQL中使用`SELECT...INTO OUTFILE`语句将表数据导出为文本文件的方法。通过示例演示了如何备份员工表(emp)的数据,包括创建存储目录、设置权限、配置参数`secure_file_priv`以及解决相关错误的过程。字段分隔符和行终止符可自定义,确保数据格式符合需求。最后展示了备份文件的内容,验证操作成功。
676 36
|
11月前
|
存储 SQL 关系型数据库
【赵渝强老师】使用mysqldump备份MySQL
本文介绍了 MySQL 自带的逻辑备份工具 mysqldump 的使用方法。通过 mysqldump,可以将数据库中的数据转换为对应的 SQL 插入语句,便于备份和还原。文章详细说明了如何备份所有数据库、指定数据库及特定表,排除某些表不备份的操作,以及删除数据库后如何通过备份文件恢复数据。同时提供了视频讲解和具体命令示例,帮助用户更好地理解和应用该工具。
1170 5
|
10月前
|
SQL 存储 缓存
MySQL 如何高效可靠处理持久化数据
本文详细解析了 MySQL 的 SQL 执行流程、crash-safe 机制及性能优化策略。内容涵盖连接器、分析器、优化器、执行器与存储引擎的工作原理,深入探讨 redolog 与 binlog 的两阶段提交机制,并分析日志策略、组提交、脏页刷盘等关键性能优化手段,帮助提升数据库稳定性与执行效率。
285 0
|
存储 SQL 关系型数据库
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
568 28
|
存储 关系型数据库 MySQL
利用Cron表达式实现MySQL数据库的定时备份
以上就是如何使用Cron表达式和mysqldump命令实现MySQL数据库的定时备份。这种方法的优点是简单易用,而且可以根据需要定制备份的时间和频率。但是,它也有一些限制,例如,它不能备份MySQL服务器的配置文件和用户账户信息,也不能实现增量备份。如果需要更复杂的备份策略,可能需要使用专门的备份工具或服务。
385 15

推荐镜像

更多