MySQL数据库(五)mysqldump备份与恢复
mhr18 2024-10-12 04:48 21 浏览 0 评论
3.2 mysql备份与恢复
3.2.1 备份的概念与分类
1、概念
为防止文件、数据丢失或损坏等可能出现的意外情况,将电子计算机存储设备中的数据复制到磁带等大容量存储设备中,从而在原文中独立出来单独贮存的程序或文件副本; 如果系统的硬件或存储媒体发生故障,“备份”工具可以帮助您保护数据免受意外的损失。
mysql数据备份其实就是通过SQL语句的形式将数据DUMP出来,以文件的形式保存,而且导出的文件还是可编辑的,这和Oracle数据库的rman备份还是很不一样的,mysql更像是一种逻辑备份从库中抽取SQL语句,这就包括建库,连库,建表,插入等就像是将我们之前的操作再通过SQL语句重做一次。
2、分类
一般的备份可分为:
(1)系统备份:指的是用户操作系统因磁盘损伤或损坏,计算机病毒或人为误删除等原因造成的系统文件丢失,从而造成计算机操作系统不能正常引导,因此使用系统备份,将操作系统事先贮存起来,用于故障后的后备支援。
(2)数据备份:指的是用户将数据包括文件,数据库,应用程序等贮存起来,用于数据恢复时使用。
备份更专业地可分为:
i. 全量备份:完全备份就是指对某一个时间点上的所有数据或应用进行的一个完全拷贝
ii. 增量备份:增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件
iii. 差异备份:差异备份是指在一次全备份后到进行差异备份的这段时间内,对那些增加或者修改文件的备份
3.2.2 备份工具:mysqldump、mydumper、xtrabackup
3.2.2.1 使用mysqldump工具备份与恢复
1.命令介绍:
mysqldump是mysql提供的一个基于命令行的mysql数据备份工具,提供了丰富的参数选择,用于各种需求形式的备份,如单库备份,多库备份,单表与多表备份,全库备份,备份表结构,备份表数据等。
2.备份还原语法格式:
以下为备份还原,lol数据库和hero表为演练。
(1)、单库备份及还原
备份
mysqldump -uroot -p123456 lol >/opt/backup/lol.sql
注意:此操作只备份其中的表(包括创建表的语句和数据)。
?
还原
mysql -uroot -p123456 -e 'create database lol;'
mysql -uroot -p123456 lol </opt/backup/lol.sql
(2)、多库备份及还原
备份
mysqldump -uroot -p123456 -B 库1 库2 库3 >/opt/backup/mysql_bak_db.sql
?
还原
mysql -uroot -p123456 </opt/backup/mysql_bak_db.sql
注意:多个库之间用空格分隔
(3)、单表备份及还原
备份
mysqldump -uroot -p123456 lol hero>/opt/backup/hero.sql
?
还原
mysql -uroot -p123456 lol </opt/backup/hero.sql
(4)、多表备份及还原
备份
mysqldump -uroot -p123456 库名 表1 表2>/opt/backup/mysql_bak_db.sql
?
还原
mysql -uroot -p123456 库名 </opt/backup/mysql_bak_db.sql
(5)、全库备份
mysqldump -uroot -p123456 -A >/opt/backup/mysql_bak_db.sql
或者
mysqldump -uroot –p123456 --all-databases >/opt/backup/mysql_bak_db.sql
3.常用参数解析:
(1)、-B等同于--databases
如果想一次备份多个库需要添加B参数,B参数会在备份数据中添加create database和use语句
(2)、-F 在备份之前会先刷新日志,可以看到二进制文件前滚产生新的二进制文件。 (3)、--master-data 有二个值1或者2,等于1会在备份数据中增加如下语句:
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000040',MASTER_LOG_POS=4543;
等于2会在备份数据中增加如下语句:
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000040',MASTER_LOG_POS=4543;
唯一区别就是有没有被“--”注释掉,如果备份的数据用于slave,等于1即可,此时从库就知道应该从哪个地方开始读二进制日志,如果仅用于备份标识当前二进制是哪一个和位置点等于2合适。
(4)、-x
锁表,备份的时候锁表来保证数据一致性。
(5)、-d
只备份表结构不备份数据。
(6)、-A等同于--all-databases
备份所有数据库
(7)、-X等同于--xml
导出为xml文件
(8)、--single-transaction Innodb引擎保证数据一致性的参数,使用此参数后会话的安全隔离级别会被置为repeatble-read,此时其它会话提交的数据是不可视的,从而保证数据的一致性。 更多参数请参考help
4.还原备份
方法一:
#备份lol数据库
[root@ c6s02 ~]# mysqldump -uroot -p123456 -B lol >lol.sql
?
?
#先删除lol数据库
[root@ c6s02 ~]# mysql -uroot -p123456
?
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| lol |
| mysql |
| performance_schema |
| test |
| wg |
+--------------------+
6 rows in set (0.00 sec)
?
mysql> drop database lol;
Query OK, 3 rows affected (0.03 sec)
?
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| wg |
+--------------------+
5 rows in set (0.00 sec)
?
mysql> \q
?
#测试恢复并查看
[root@ c6s02 ~]# mysql -uroot -p123456 <lol.sql
Warning: Using a password on the command line interface can be insecure.
?
[root@ c6s02 ~]# mysql -uroot -p123456
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| lol |
| mysql |
| performance_schema |
| test |
| wg |
+--------------------+
6 rows in set (0.00 sec)
?
mysql> select * from lol.hero;
+----+--------+--------+-----------+--------+
| id | 角色 | 职业 | 攻击力 | 血量 |
+----+--------+--------+-----------+--------+
| 1 | 蛮王 | 战士 | 200 | NULL |
| 2 | 狗头 | 战士 | 100 | NULL |
| 3 | 剑圣 | 战士 | 300 | NULL |
+----+--------+--------+-----------+--------+
3 rows in set (0.00 sec)
方法二:source方法
[root@ c6s02 ~]# mysql -uroot -p123456
mysql> source /root/lol.sql
相关推荐
- IM群聊消息如此复杂,如何保证不丢不重?
-
群聊是多人社交的基本诉求,不管是QQ群,还是微信群,一个群友在群内发了一条消息:(1)在线的群友能第一时间收到消息(2)离线的群友能在登陆后收到消息群消息的复杂度要远高于单对单消息。群消息的实时性,可...
- Python 网络爬虫实战:从零到部署的完整流程
-
适用人群:初-中级Python开发者、数据分析师、运维/测试自动化工程师工具栈:Python3.11+requests+BeautifulSoup/lxml+pandas+(...
- 用上Kiro之后,完全没理由为Cursor续费了
-
替Cursor续费前最后一秒,免费IDEKiro把钱包按死在屏幕前五位数年费的AI编程助手,被一匹黑马零元秒杀。用过Kiro的人,开note第一件事就是删掉Cursor的自动续费,动作快到连...
- 分布式微服务中的搜索引擎:架构与实战盘点
-
01、为什么微服务需要分布式搜索?在单体应用时代,我们通常使用单一数据库的全文检索功能(如MySQL的LIKE语句)或简单的搜索引擎(如早期的Lucene)。但随着业务规模扩大,这种架构暴露出诸多问题...
- 产品列表获取API接口详解
-
在现代软件开发中,API(应用程序编程接口)是获取产品列表的核心工具,它允许开发者从远程服务器高效地检索数据。本文将逐步介绍如何设计和使用产品列表获取API接口,包括核心概念、实现步骤、代码示例以及最...
- 企业和个人基于业务知识和代码库增强的大模型生成代码实践
-
作者:京东零售杨亚龙1.源起李明是今年刚加入某互联网公司的研发新人,满怀期待地开始了他的职业生涯。然而,短短两周后,他的热情就被现实浇了一盆冷水。第一周:当他第一次接手需求时,mentor只是简单...
- 从零到一:独立运行若依框架系统并进行本地二次开发
-
####一、环境准备1.**基础环境**:-JDK1.8+(推荐JDK17)-Maven3.6+-MySQL5.7+(推荐8.0)-Redis5.0+-Node.js16...
- 一文教你高效优化在Spring Boot3中遇到深度分页查询性能难题?
-
你有没有这样的经历?在使用SpringBoot3开发项目时,深度分页查询操作让程序运行得越来越慢,页面加载时间变得难以忍受,不仅影响用户体验,还可能导致项目进度受阻。明明代码逻辑看起来没问题,可...
- JAVA面试|如何优化limit分页
-
我们来详细通俗地聊聊如何优化LIMIToffset,size分页。核心问题在于OFFSET的值很大时,性能会急剧下降。想象一下数据库的工作方式,你就明白为什么了。一、为什么OFFSET大时慢?假...
- MySQL(143)如何优化分页查询?
-
优化分页查询是提升数据库性能和用户体验的重要手段。特别是在处理大数据集时,分页查询的效率对系统性能有显著影响。以下是优化分页查询的详细步骤和代码示例。一、传统分页查询传统的分页查询使用OFFSET...
- Seata概述
-
什么是SeataSeata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务也是SpringCloudAlibaba提供的组件Seata官方文档https...
- Docmost:一款开源的Wiki和文档协作软件
-
是一款开源的团队协作Wiki与文档管理工具,定位为Confluence和Notion的开源替代品,专注于提供高效、安全且可定制的知识库解决方案。Docmost的核心优势在于开源免...
- B端系统管理「字典管理」模块实战指南
-
字典管理听起来像“后端杂务”,其实是B端系统配置能力的关键支点。本指南将从真实业务场景出发,系统拆解该模块的设计逻辑、关键字段与典型坑位,让你一文读懂如何搭建一个能跑得久、配得稳的字典模块。一、字典管...
- Spring Boot 整合 Redis BitMap 实现 签到与统计
-
要在SpringBoot中实现RedisBitMap来进行签到和统计,您需要按照以下步骤进行操作:添加Redis依赖:在pom.xml文件中添加Redis依赖:<dependen...
- 周期性清除Spark Streaming流状态的方法
-
在SparkStreaming程序中,我们经常需要使用有状态的流来统计一些累积性的指标,比如各个商品的PV。简单的代码描述如下,使用mapWithState()算子:valproductPvSt...
你 发表评论:
欢迎- 一周热门
-
-
Redis客户端 Jedis 与 Lettuce
-
高并发架构系列:Redis并发竞争key的解决方案详解
-
redis如何防止并发(redis如何防止高并发)
-
Java SE Development Kit 8u441下载地址【windows版本】
-
开源推荐:如何实现的一个高性能 Redis 服务器
-
redis安装与调优部署文档(WinServer)
-
Redis 入门 - 安装最全讲解(Windows、Linux、Docker)
-
一文带你了解 Redis 的发布与订阅的底层原理
-
Redis如何应对并发访问(redis控制并发量)
-
Oracle如何创建用户,表空间(oracle19c创建表空间用户)
-
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle主从同步 (56)
- oracle 乐观锁 (53)
- redis 命令 (83)
- php redis (97)
- redis 存储 (67)
- redis 锁 (74)
- 启动 redis (73)
- redis 时间 (60)
- redis 删除 (69)
- redis内存 (64)
- redis并发 (53)
- redis 主从 (71)
- redis同步 (53)
- redis结构 (53)
- redis 订阅 (54)
- redis 登录 (62)
- redis 面试 (58)
- redis问题 (54)
- 阿里 redis (67)
- redis的缓存 (57)
- lua redis (59)
- redis 连接池 (64)