数据库备份类型:
· 冷备份:在数据库关闭状态下进行备份操作
· 热备份:在数据库处于运行状态时进行备份操作
· 温备份:数据库锁定表格(不可写入但可读取)的状态下进行备份操作
数据库完全备份操作
1. 物理冷备份与恢复 使用tar命令
1)备份数据库
[root@localhost /]# systemctl stop MySQLdtar: 从成员名中删除开头的"/"
[root@localhost /]# mkdir /backup
[root@localhost /]# tar zcf /backup/mysql_all-$(date +%F).tar.gz /usr/local/mysql/data/
· /usr/local/mysql/data/:mysql的数据库文件夹
[root@localhost /]# ls -l /backup/
总用量 724
-rw-r--r--. 1 root root 741318 8月 10 08:29 mysql_all-2020-08-10.tar.gz

文章插图
2) 恢复数据库
执行以下操作将数据库文件夹移除到bak目录,模拟丢失文件故障
[root@localhost /]# mkdir /bak执行以下操作从备份文件恢复数据
[root@localhost /]# mv /usr/local/mysql/data/ /bak/
[root@localhost /]# mkdir /restoretcp6 0 0 :::3306 :::* LISTEN 3970/mysqld
[root@localhost /]# tar zxf /backup/mysql_all-2020-08-10.tar.gz -C /restore/
[root@localhost /]# mv /restore/usr/local/mysql/data/ /usr/local/mysql/
[root@localhost /]# systemctl start mysqld
[root@localhost /]# netstat -anput |grep 3306

文章插图
2. mysqldump备份与恢复
通过此命令可以将指定的库,表或全部的库导出为SQL脚本,便于该命令在不同版本的MySQL服务器上使用 。例如,当需要升级mysql服务器时,可以先使用mysqldump命令将原有库信息导出,然后直接在升级后的MySQL服务器导入即可 。
[root@localhost /]# mysqladmin -u root -p password '123456'1) 备份数据库
格式一:将mysql库中的user表导出为mysql-user.sql
[root@localhost /]# mysqldump -u root -p mysql user > mysql-user.sqlEnter password: 输入密码

文章插图
格式二:将整个test库导出为test.sql尾巴文件,所有操作均以root用户身份验证
[root@localhost /]# mysqldump -u root -p --databases test > test.sqlEnter password:

文章插图
格式三:备份导出整个MySQL服务器中的库 。使用—opt优化执行速度
[root@localhost /]# mysqldump -u root -p --opt --all-databases > all-data.sqlEnter password:

文章插图

文章插图
2) 查看备份文件
[root@localhost /]# grep -v "^–" 备份完成的名称3) 恢复数据库
使用sqldump命令导出的SQL备份脚本,在恢复时通过mysql命令对其进行导入操作 。
格式:mysql 【选项】【库名】【表名】< /备份路径/备份文件名
模拟故障:删除上述三个备份的原文件,使用dump导入恢复 。
mysql> drop table user;Query OK, 0 rows affected (0.00 sec)
[root@localhost /]# mysql -u root -p mysql < /mysql-user.sqlEnter password:
备份的文件
数据库

文章插图
查询是否恢复
mysql> show tables;+---------------------------+
| Tables_in_mysql |
+---------------------------+ |
………
| user |
+---------------------------+
28 rows in set (0.00 sec)
模拟故障:删除test数据库,再导入恢复 。
mysql> drop database test;Query OK, 0 rows affected (0.01 sec)

文章插图
导入备份数据恢复

文章插图
3. MySQL的增量备份与恢复(重点)
增量备份没有重要数据,备份量不大,时间短;但恢复及其麻烦,需要上次完全备份+之后所有的增量备份才能恢复,需要对所有增量备份进行逐个反推恢复 。Mysql没有提供直接的增量备份办法,可以通过mysql提供的二进制日志间接实现增量备份 。
推荐阅读
- 桃花劫什么意思?
- 又一个小而美的Java Web框架:Solon
- ROS的几个重要概念:节点、消息、主题、服务
- 颠覆了我认知!阿里架构师原来是这样定义微服务、分布式构架的
- HashMap这次是真的懂了,扰动函数、负载因子、扩容拆分全搞定
- 万字详文:Java内存泄漏、性能优化、宕机死锁的N种姿势
- 孝庄皇后死后埋在哪里了? 孝庄太后的一生
- 春秋时期晋国是怎么灭亡的 晋国不亡秦国能统一
- 历史上的虢国夫人 虢国夫人是哪个朝代
- 千里江山图王希孟画了多久 王希孟的《千里江山图》
