菜鸟学Linux 第078篇笔记 mysql 备份mysqldump

本文涉及的产品
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

菜鸟学Linux 第078篇笔记 mysql 备份mysqldump




内容总览

备份类型、备份类型详解

备份工具

mysqldump实现备份还原






MySQL的备份和还原

备份:副本


RAID1,RAID10 保证硬件损坏而不会影响业务中止



备份类型

热备份、温备份、冷备份

热备份:读、写不受影响

温备份:仅可执行读操作

冷备份:离线备份 读、写操作均中止


物理备份、逻辑备份

物理备份:直接复制数据文件

逻辑备份:将数据导出至文本文件中


完全备份、增量备份和差异备份

完全备份:备份全部数据

增量备份:仅备份上次完全备份或增量备份以后变化的数据

差异备份:仅备份上次完全备份以来变化的数据


增量和差异区别:增量是每次备份是比较与前一次的区别并进行备份

差异是与第一次完全备份作比较,并将有差异的备份

(差异相对浪费硬盘空间一些,易于管理)


备份可自由根据需求来组合

在线物理完全备份

在线逻辑增量备份...





热备份(技术复杂度最高)

MyISAM lvm 热备   温备

InnoDB 支持热备 xtrabackup, mysqldump

冷备 mysql --> 从



物理备份 速度快,移植性不是特别好

逻辑备份 速度慢,会丢失浮点数精度,

 方便使用文本处理工具直接对其处理,可移植能力强




备份策略: 完全+增量;完全+差异

数据变量的频度,和变化量

可以忍受的还原时长



备份的东东

数据、配置文件、二进制日志、事务日志


还原 测试,预演,多人分工,还原紧急处理方案



MySQL备份工具:

mysqldump  逻辑备份工具 冷备 MyISAM(温) InnoDB(热)

mysqlhostcopy  物理备份工具 温备份


文件系统工具

cp 冷备

lv 逻辑卷的快照功能,几乎热备

mysql> FLUSH TABLES;

mysql> LOCK TABLES;


创建快照:释放锁,而后复制数据即可

InnoDB:


第三组工具:

ibbackup (InnoDB) 商业工具

xtrabackup 开源工具





mysqldump 逻辑备份

mysqldump (完全备份) + 二进制日志

完全+增量


mysqldump DB_NAME [tb1] [tb2] 


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

0 不记录二进制日志文件及其事件位置

1 以CHANGE MASTER TO方式记录位置,可用于恢复后直接启动从服务器

2 以CHANGE MASTER TO的方式记录位置,但默认被注释


--lock-all-tables  锁定所有表


--flush-logs  执行日志flush


如果指定库中的表类型均为InnoDB,可使用--single-transaction启动热备

(不要和--lock-all-tables一起使用)


--events

--routines

--triggers


备份多个库

--all-databases  备份所有库

--databases DB_NAME1,DB_NAME2 备份指定库

(使用此种备份,恢复时则不需要自己手动新建数据库名)




实验备份和还原


备份策略: 每周完全+每日增量

完全备份:mysqldump

增量备份:备份二进制日志文件(flush logs)



1.备份数据库

完全备份(备份文件要放在其它硬盘这里做测试所以只是放在其它目录里了)

# mysqldump -uroot -p --master-data=2 --flush-logs --all-databases \

--lock-all-tables > /root/all-dbs.sql 

(此为一行命令)

mysql> PURGE BINARY LOGS TO 'mysql-bin.000007'; (不建议删除,只是为了做测试)

可以备份后再删除掉


做增量备份(第二天)

mysql> FLUSH LOGS;

将滚动后的日志备份(直接复制即可) 前边的目录是二进制日志所放目录

cp /mydata/data/mysql-bin.000007 /root/binary-`date +%Y-%m-%d`.sql

mysqlbinlog /mydata/data/mysql-bin.000007 > /root/monday-incremental.sql

(推荐此上条备份二进制日志文件)


第三天做增量和此一样   模拟此天不小心把数据库给删除了

(但是造成不要把二进制日志删除了哈,,这要没了就挂了)

先将二进制文件复制出来

cp /mydata/data/mysql-bin.000008 > /root/mysql-bin.000008.sql

# rm -rf /mydata/data/* (模拟数据库损坏)




还原数据库

由于我模拟的太暴力直接把库文件也给删除了所以需要重新初始化数据库

# killall mysqld

初始化数据库

# ./scripts/mysql_install_db --user=mysql --datadir=/mydata/data


还原完全备份

# mysql -uroot -p < /root/all-dbs.sql


导入增量备份

# mysql -uroot -p < /root/monday-incremental.sql (使用的是mysqlbinlog)


最后一步把最后一次的二进制日志导入到数据库

# mysqlbinlog mysql-bin.000008.sql | mysql -uroot -p

(到此步便为即时点还原)


mysqldump虽然可以实现备份还原,但是会丢失精度,只适合小型的数据库



最后作业 

脚本完成完全备份

脚本完成增量备份

并添加至任务计划让其自动执行备份

(目前个人未做出来)

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1891676如需转载请自行联系原作者


Winthcloud

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
9月前
|
关系型数据库 MySQL 索引
MySQL多表练习笔记
链接可行,多表查询语法
190 0
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
817 17
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
501 18
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
694 11
|
Linux 数据库 关系型数据库
Linux基础命令---mysqldump数据库备份
mysqldump是一个客户端的备份程序,他可以备份数据库,或者将数据库传输到另外一个服务器。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora。 1、语法 mysqldump [options] [db_name [tbl_name .
1198 1
|
9月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
984 1
二、Linux文本处理与文件操作核心命令
|
9月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
579 137
|
9月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1517 58
|
8月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
1366 2
|
9月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
750 16