[2024] 基于 mysqldump 的数据备份和恢复
最编程
2024-10-04 08:31:49
...
基于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
。
上一篇: 【笔记】平面
下一篇: Vue3 Pinia 持久存储
推荐阅读
-
[2024] 基于 mysqldump 的数据备份和恢复
-
构建三层交换与VTP、STP及Eth-Trunk融合实验:基于双核架构实现高效、稳定、冗余网络" 实验目标: 利用双核心结构,整合三层交换技术、VTP (Virtual Trunking Protocol)、生成树协议 (STP) 和以太网通道 (Eth-Trunk),达成网络高速切换、高可用性、高可靠性和备份连接,适用于双核心拓扑场景。 实验步骤: 1. VLAN划分与IP地址规划: - VLAN10:192.168.10.0/24,默认网关192.168.10.1 - VLAN20:192.168.20.0/24,默认网关192.168.20.1 - VLAN30:192.168.30.0/24,默认网关192.168.30.1 - VLAN40:192.168.40.0/24,默认网关192.168.40.1 2. MSW1三层交换机配置: - 开启三层路由功能:`MSW1(config)#ip routing` - 配置Trunk接口:`MSW1(config-if-range)#switchport trunk encapsulation dot1q; switchport mode trunk` - 设置VTP域和模式:`MSW1(config)#vtp domain test; vtp mode server; vtp password cisco; vtp version 2` - 创建并命名VLAN:`MSW1(config)#vlan 10; MSW1(config-vlan)#name caiwu; ... (为其他VLAN重复操作)` - 分配VLAN IP地址:`MSW1(config-if)#int vlan 10; ip address 192.168.10.1 255.255.255.0; no shutdown; ... (为其他VLAN重复操作)` - 配置生成树优先级:`MSW1(config)#spanning-tree vlan 10,20 root primary; MSW1(config)#spanning-tree vlan 30,40 root secondary` - 链接Eth-Trunk通道:`MSW1(config-if-range)#channel-group 1 mode on; ... (为其他相关接口重复操作)` 3. MSW2三层交换机配置类似MSW1,只需更改VLAN名称和IP地址以及相关端口配置即可。 通过以上步骤,两台三层交换机之间可通过Eth-Trunk实现高速数据交互,并通过VTP统一管理VLAN资源,STP则确保了网络流量的负载均衡,从而构建了一个高效、稳定且具备冗余保护的网络环境。
-
史上最污的技术解释,我居然几秒钟就明白了!-冷备份。 假设你是一个同时和两个男人恋爱的女人,这两个男人都是你的男朋友。而且他们还互不往来,各自为政。这就是双重热备份。 假设你是一名女性,对男友给你的安全感感到不安。在男友不知道的远方,你和一个男人保持联系,你告诉他你没有男朋友,你们处于纠缠期,一旦你和男友分开,你就可以立刻把感情转移到异地男人身上。这就是异地灾后恢复。 假设你是一个有男朋友的女人,你花钱请婚介所为你留意好的资源。一旦你和你的这个男朋友分开,婚介所马上为你安排资源,你们的感情不间断地运行,这就是云备份 。。。。。 数据安全大于一切,今天你备份自己了吗? 假设你是一位女性,你怀疑男友对你的忠诚度,于是购买了某宝测试忠诚度的服务。这就是一场灾难演习。友情提醒,千万不要在没有备份的情况下进行灾难演习,让数据大出血可不是个好主意。 假设你是女性,你有一个好得不能再好的闺蜜,好到可以共用一个男朋友,也就是 NAS。 备份突然有了女朋友,要不要收回去? 备份是为了更好地运行,所以再给大家普及一下运行维护知识: 假设你是一个女人,你的男朋友沉迷游戏经常不接电话无故停机,于是当你下午准备去逛街后就要时不时打个电话问问,看他是否还能正常提供服务,这叫心跳检测。 假设你是一位女性,你想去购物,而你的男朋友 A 在游戏中不接电话,于是你就把购物请求发送给替代的男朋友 B,这样就保证了服务的不间断运行,这就叫故障转移!
-
基于安卓的数据备份恢复实施方案
-
基于 velero 和 minio 实现 etcd 数据备份和恢复
-
担心 Harbor 数据丢失?谈谈 Harbor 的备份和恢复方法。
-
TiDB 数据库 08 - TiDB 群集的升级和备份恢复策略
-
iMazing2024Windows和Mac的iOS设备管理软件(可以替代iTunes进行数据备份和管理)-iMazing3Win-最新绿色安装包下载如下:
-
达梦DM数据库的远程备份和恢复
-
DM数据库导入和导出工具:dexp和dimp的备份恢复功能