数据库备份
- 一、按照数据库的运行状态分类:
- 热备
- 热备份的优点:
- 热备份的缺点:
- 热备演示
- 冷备
- 冷备份的优点:
- 冷备份的缺点:
- 温备
- 二、按照备份方式分类:
- 物理备份:
- 逻辑备份:
- 三、按照业务划分
- (1)完全备份
- (2)增量备份
- (3)差异备份
一、按照数据库的运行状态分类:
热备
热备:在数据库运行时,直接进行备份,对运行的数据库没有影响
热备份的优点:
1.可在表空间或数据文件级备份,备份时间短。
2.备份时数据库依然可以使用。
3.可达到秒级恢复,能够恢复到某一个时间点上。
4.恢复的速度很快,在大多数情况下在数据库工作时就可恢复。
5.几乎所有的数据库实体都可以进行恢复。
热备份的缺点:
1.尽量不要出错,否则后果会很严重。
2.如果热备份不成功,所得结果不可用于时间点的数据恢复。
3.维护的工作比较困难。
热备演示
在linux下表找到要备份的表
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hive |
| mydemo |
| mydemo1 |
| mysql |
| performance_schema |
+--------------------+
6 rows in set (0.00 sec)
mysql> use mydemo;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------+
| Tables_in_mydemo |
+------------------+
| customs |
| userinfos |
+------------------+
2 rows in set (0.00 sec)
准备热备customs这个表
mysqldump -uroot -pok mydemo customs> abc 不指定就在当前目录
或者可指定备份位置
mysqldump -uroot -pok mydemo customs> /opt/abc 指定目录
得到备份之后导入另个一个表
mysql -uroot -pok mydemo1<abc;
mysql> use mydemo1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+-------------------+
| Tables_in_mydemo1 |
+-------------------+
| customs |
+-------------------+
1 row in set (0.00 sec)
冷备
冷备:在数据库停止运行的时候进行备份,这种备份方式最为简单,只需要拷贝数据库物理文件即可。
冷备份的优点:
1.是非常快速的备份方法,因为只需要拷贝文件即可
2.容易归档,容易恢复到某个时间点上(只需将文件再拷贝回去即可)
3.能与归档方法相结合,作数据库(最新状态)的恢复。
4.容易维护,且比较安全。
冷备份的缺点:
1.单独使用时,只能提供到"某一时间点的上"的恢复。
2.再实施备份的全过程中,数据库必须是关闭状态。
3.不能按表或按用户恢复。
注意:
冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。而且在恢复后一定要把数据库文件的属组和属主改为mysql。
温备
温备:同样是在数据库运行的时候进行备份的,但对当前数据库的操作会产生影响。
二、按照备份方式分类:
物理备份:
直接复制数据文件进行的备份
优点:不需要其他的工具,直接复制就好,恢复直接复制备份文件即可
缺点:与存储引擎有关,跨平台能力较弱
逻辑备份:
从数据库中导出数据另存而进行的备份
优点:能使用编辑器处理,恢复简单,能基于网络恢复,有助于避免数据损坏
缺点:备份文件较大,备份较慢,无法保证浮点数的精度,使用逻辑备份数据恢复后,还需要手动重建索引,十分消耗cpu资源。
三、按照业务划分
(1)完全备份
即对整个数据库的数据和数据结构进行备份。
这种备份方式的好处:
就是很直观容易被人理解。而且当发生数据丢失的灾难时,只要用灾难之前的备份文件,就可以恢复丢失的数据。
不足之处:
首先由于每天都对系统进行完全备份,因此在 备份数据中有大量是重复的。这些重复的数据占用了大量的空间, 这对用户来说就意味着增加成本;其次,由于需要备份的数据量相当大,因此备份所需时间较长。对于那些业务繁忙,备份窗口时间有限的单位来说,选择这种备份策略无疑是不明智的。
(2)增量备份
每次备份的数据只是相当于上一次备份后增加的和修改过的数据。
这种备份的优点很明显:没有重复的备份数据,即节省空间,又缩短了备份时间。
但它的缺点在于当发生灾难时,恢复数据比较麻烦。
举例来说,如果系统在星期四的早晨发生故障,丢失大批数据,
那么现在就需要将系统恢复到星期三晚上的状态。
这时管理员需要首先找出星期一的那份完全备份数据进行系统恢复,
然后,再找出星期二的数据来恢复星期二的数据,然后在找出星期三的数据来恢复星期三的数据。
很明显这比第一种策略要麻烦得多。
另外这种备份可靠 性也差。
在这种备份下,各备份数据间的关系就象链子一样,一环套一环
其中任何一个备份数据出了问题都会导致整条链子脱节。
(3)差异备份
每次备份的数据是相对于上一次全备份之后新增加的和修改过的数据。管理员先在星期一进行一次系统完全备份;然后在接下来的几天里,管理员再将当天所有与星期一不同的数据(新的或经改动的)备份到磁带上。