备份还原
最后更新于:2022-04-02 03:56:18
[TOC]
## 概述
### 备份策略
1. 确定要备份的表的存储引擎是事务型还是非事务型,两种不同的存储引擎备份方式在处理数据一致性方面是不太一样的。
2. 确定使用全备份还是增量备份。全备份的优点是备份保持最新备份,恢复的时候可以花费更少的时间;缺点是如果数据量大,将会花费很多的时间,并对系统造成较长时间的压力。增量备份相反,只需要备份每天的增量日志,备份时间少,对负载压力也小;缺点就是恢复的时候需要全备份加上次备份到故障前的所有日志,恢复时间长一些。
3. 可以考虑采用复制的方法来做异地备份,但不能代替备份,它对数据库的误操作也无能为力。
4. 要定期做备份,备份的周期要充分考虑系统可以承受的恢复时间。备份要在系统负载较小的时候进行
5. 确保 MySQL 打开 log-bin 选项,有了 binlog,MySQL 才可以在必要的时候做完整恢复,或基于时间点的恢复,或基于位置的恢复
## 备份
### 备份数据库
```
mysqldump -uroot -p test > test.sql
```
### 备份数据表
表可以有多个
```
mysqldump -uroot -p test emp dept > emp_dept.sql
```
## 还原
### 备份数据库
```
mysql -uroot -p db_name < backfile
```
将备份恢复后数据并不完整,还需要将备份后执行的日志进行重做
```
mysqlbinlog binlog-file | mysql -uroot -p
```
';