【2024】基于mysqldump的数据备份与恢复

基于mysqldump备份与恢复

mysqldump是一个用于备份 MySQL 数据库的实用工具。

它可以将数据库的结构(如数据库、表、视图、存储过程等的定义)和数据(表中的记录)导出为文本文件,这些文本文件可以包含 SQL 语句,用于重新创建数据库结构和插入数据,从而实现数据库的备份和恢复功能。

优点:

  • 简单易用:
    它是MySQL自带工具,安装了MySQL即可使用此工具,不需要额外安装。
  • 备份灵活:
    可以备份整个数据库、单个数据库中的某些表,甚至可以只备份数据库的结构而不备份数据。
  • 跨平台兼容:
    由于它基于 SQL 语句进行备份,备份文件本质上是 SQL 脚本,所以在不同的操作系统和 MySQL 版本之间具有较好的兼容性。
  • 数据一致性好:
    在备份过程中,mysqldump会尽量保证数据的一致性。

缺点:

  • 性能问题:
    对于大型数据库,备份和恢复过程可能会比较慢。
  • 备份文件大小问题:
    备份文件是文本格式,包含了 SQL 语句,相比一些二进制的备份方式,文件大小可能会比较大。
  • 锁表问题:
    当使用默认的备份方式(获取全局读锁)时,会对数据库中的表进行锁定,这期间其他对这些表的写入操作(如插入、更新、删除)会被阻塞。

使用方法:

  • 备份整个数据库
    此命令为将student库备份到/backup目录下
[root@localhost ~]# mysqldump -uroot -p student > /backup/student_backup.sql
Enter password: 
  • 备份多个数据库
    通过--databases参数添加多个需要备份得数据库
mysqldump -uroot -p --databases db1 db2 > /backup/dbs_backup.sql
  • 备份数据库中的部分表
mysqldump -uroot -p mydb table1 table2 > partial_tables_backup.sql
  • 只备份数据结构
    可以使用-d参数
mysqldump -uroot -p -d mydb > mydb_structure_backup.sql
  • 恢复备份
    登录到MySQL,进入到命令行页面;
    创建一个空数据库(如果恢复的数据库不存在);
    进入到数据库;
    恢复备份。

案例:模拟student库被删除,从备份中恢复数据

  • 登录到数据库
[root@localhost ~]# mysql -uroot -p
Enter password: 
  • 模拟误删库,删除student库
mysql> DROP DATABASE IF EXISTS student;
Query OK, 1 row affected (0.16 sec)mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.02 sec)

可以看到已经没有student库了

  • 创建一个新的student库
mysql> CREATE DATABASE student;
Query OK, 1 row affected (0.91 sec)
  • 进入到需要恢复数据的库
mysql> USE student;
Database changed
  • 进行数据恢复
mysql> SOURCE /backup/student_backup.sql
Query OK, 0 rows affected (0.00 sec)
  • 查看是否恢复成功
mysql> SHOW TABLES;
+-------------------+
| Tables_in_student |
+-------------------+
| grade_1           |
+-------------------+
1 row in set (0.01 sec)mysql> SELECT * FROM grade_1;
+----+--------+-----+--------+------------+
| id | name   | age | gender | birth_date |
+----+--------+-----+--------+------------+
|  1 | 张三   |   7 || 2017-05-10 |
|  2 | 赵六   |   7 || 2017-07-12 |
|  3 | 孙七   |   7 || 2017-04-18 |
|  4 | 周八   |   7 || 2017-08-05 |
|  5 | 熊大   |   7 || 2017-09-10 |
|  6 | 熊二   |   7 || 2017-09-11 |
+----+--------+-----+--------+------------+
6 rows in set (0.00 sec)

可以看到数据已经恢复了。

除上述案例外还有一些参数可能会用到:

  • -R:备份数据库中的存储过程和函数
  • --where:根据指定的条件备份表中的数据
  • --column-statistics:用于决定是否在备份文件中包含列统计信息
  • --single-transaction:对于 InnoDB 存储引擎的数据库,这个参数可以在备份过程中保证数据的一致性
  • events:用于备份数据库中的事件

更多参数用法,请参考mysqldump --help

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/881005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从 ElasticSearch 中删除数据的几种方式

在Elasticsearch中删除数据是一个常见的操作,它可以通过多种方式实现,以满足不同的应用场景和需求。以下是从Elasticsearch中删除数据的几种主要方式: 1. 删除索引(Index) 删除索引是Elasticsearch中删除数据的最彻底…

【C语言】数组练习

【C语言】数组练习 练习1:多个字符从两端移动,向中间汇聚练习2、二分查找 练习1:多个字符从两端移动,向中间汇聚 编写代码,演示多个字符从两端移动,向中间汇聚 练习2、二分查找 在⼀个升序的数组中查找指…

--- java数据结构 map set ---

java中map 和 set的底层实现是通过搜索树和哈希函桶来实现 搜索树 二叉搜索树有叫二叉排序树 他具有以下的特点 若存在左节点,那么他左节点的值一定小于根节点 若存在右节点,那么他右节点的值一定大于根节点 它的左右子树也是搜索树 对他进行中序…

Oracle架构之物理存储中各种文件详解

文章目录 1 物理存储1.1 简介1.2 数据文件(data files)1.2.1 定义1.2.2 分类1.2.2.1 系统数据文件1.2.2.2 撤销数据文件1.2.2.3 用户数据文件1.2.2.4 临时数据文件 1.3 控制文件(Control files)1.3.1 定义1.3.2 查看控制文件1.3.3…

PostgreSQL 创建账号与数据库:从连接到权限配置的完整指南

PostgreSQL 创建账号与数据库:从连接到权限配置的完整指南 文章目录 PostgreSQL 创建账号与数据库:从连接到权限配置的完整指南一 使用 psql 连接数据库二 创建数据库和账号三 退出当前连接四 用新的账号登录连接五 运行 SQL 文件六 App 连接 本文详细讲…

大数据与人工智能:基础与应用的多维思考

大数据与人工智能:基础与应用的多维思考 前言一、时代定位与发展方向二、人工智能的本质与学科融合三、大数据和人工智能的构成要素与大众需求四、计算机系统结构与基础软件的重要性五、研究途径与领域知识的作用六、发展的态度与责任 前言 当下,大数据…

分布式学习02-CAP理论

文章目录 CAP三指标一致性可用性分区容错性 CAP不可能三角P存在的必要性CP理论AP理论 CAP理论对分布式系统的特性做了高度抽象,将其抽象为一致性、可用性、分区容错性。 并对特征间的冲突做了总结:CAP不可能三角。 CAP三指标 一致性(Consis…

JS进阶 4——深浅拷贝、异常处理、节流防抖

JS进阶 4——深浅拷贝、异常处理、节流防抖 1.深浅拷贝 直接复制对象的问题 const obj {uname: xiao,age: 18}const o objo.age 20console.log(o) //原来对象的age也被彻底改变了console.log(obj)浅拷贝——内部引用仍然拷贝的是地址 拷贝对象:Object.assdin(…

实现实时数据推送:设计一个WebSocket服务器的实用指南

实现实时数据推送:设计一个WebSocket服务器的实用指南 在现代Web应用中,实时数据推送已成为一种重要的交互方式。无论是在线聊天、实时通知还是数据监控,WebSocket都提供了一种高效的双向通信机制。本文将详细介绍如何使用Python设计一个WebSocket服务器,支持实时数据推送…

python 实现djb2哈希算法

djb2哈希算法介绍 DJB2哈希算法是一种简单且快速的哈希算法,由Daniel J. Bernstein设计。这种算法的实现非常简单,适用于短键值的哈希表,也常被用于嵌入式设备和资源受限的系统。 基本原理 DJB2算法的原理是将输入的字符串视为一个字节数组…

Windows环境Apache httpd 2.4 web服务器加载PHP8:Hello,world!

Windows环境Apache httpd 2.4 web服务器加载PHP8:Hello,world! (1)首先需要安装apache httpd 2.4 web服务器: Windows安装启动apache httpd 2.4 web服务器-CSDN博客文章浏览阅读222次,点赞5次&…

std::string

std::string是C标准库中的一个基本类模板,专门用于处理字符串。它提供了一个可变长度的字符序列,以及一系列用于字符串操作的方法。std::string是值类型,这意味着当它作为函数参数传递或赋值时,整个字符串数据会被复制。 std::st…

Git 下载及安装超详教程(2024)

操作环境:Win 10、全程联网 一、什么是Git? Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 创立,用于有效、高速地处理从小到大的项目版本管理。Git 是目前世界上最流行的版本控制系统,被广泛用于软件开发中…

ECCV 2024 | 融合跨模态先验与扩散模型,快手处理大模型让视频画面更清晰!

计算机视觉领域顶级会议 European Conference on Computer Vision(ECCV 2024)将于9月29日至10月4日在意大利米兰召开,快手音视频技术部联合清华大学所发表的题为《XPSR: Cross-modal Priors for Diffusion-based Image Super-Resolution》——…

安防监控/视频系统EasyCVR视频汇聚平台如何过滤134段的告警通道?

视频汇聚/集中存储EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。平台支持国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为…

基于Zynq SDIO WiFi移植三(支持2.4/5G)

应用问题-WIFI作为AP-hostapd多次连接 设备作为WIFI热点时,连接出现了下述问题: 1 手机连接需要三次,三次都需要输入密码; 2 平板连接需要三次,三次都需要输入密码; 3 电脑连接需要一次,无感…

【优选算法】(第十七篇)

目录 判断字符是否唯⼀(easy) 题目解析 讲解算法原理 编写代码 丢失的数字(easy) 题目解析 讲解算法原理 编写代码 判断字符是否唯⼀(easy) 题目解析 1.题目链接:. - 力扣&#xff08…

计算机视觉——图像修复综述篇

目录 1. Deterministic Image Inpainting 判别器图像修复 1.1. sigle-shot framework (1) Generators (2) training objects / Loss Functions 1.2. two-stage framework 2. Stochastic Image Inpainting 随机图像修复 2.1. VAE-based methods 2.2. GAN-based methods …

WPF C# 读写嵌入的资源 JSON PNG JPG JPEG 图片等资源

WPF C# 读写嵌入的资源 JSON PNG JPG JPEG 图片等资源 1、嵌入资源读取 当文件属性的生成操作设置为嵌入资源时,读取方式如下: string name System.Reflection.Assembly.GetExecutingAssembly().GetName().Name "Resource\testproject\test.pn…

YOLOv11改进 | Conv篇 | YOLOv11引入SKConv

1. SKConv介绍 1.1 摘要:在标准卷积神经网络(CNN)中,每层中阿尔蒂神经元的感受野被设计为共享相同的大小。在神经科学界众所周知,视觉皮层神经元的感受野大小受到刺激的调制,这在构建CNN时很少考虑。我们在CNN中提出了一种动态选择机制,允许每个神经元根据输入信息的多…