三大主流数据备份比较

逻辑备份

1、导出create table 、create index、insert into 表等语句(逻辑备份)

mysql:mysqldump、load data infile、select into outfile

sqlserver:生成脚本、导入导出向导

oracle:(exp/imp)

 物理备份

2、直接复制文件(物理备份)

sqlserver:backup database语句、backup log语句、停SQLSERVER服务直接拷贝数据文件

mysql:mysqlhotcopy、innobackupex

oracle:rman、直接将关键性文件拷贝到另外的位置、(exp/imp)、(expdp/impdp)


相似点:上面的各种数据库的各种备份还原方法,每一种基本上都会有一个单独的工具来做

例如

sqlserver导入导出向导就是一个单独的exe来做

oracle的rman也是一个单独的工具

冷备份和热备份:无论oracle、sqlserver、mysql都有冷备份和热备份的概念

冷备份其实可以简单理解为:停止服务进行备份

热备份其实可以简单理解为:不停止服务进行备份(在线)

上面的停止服务,正确的来讲应该是停止数据库的写入


为什么mysql的myisam引擎只支持冷备份呢?

大家可以先想一下innodb引擎,innodb引擎是事务性存储引擎,每一条语句都会写日志,并且每一条语句在日志里面都有时间点

那么在备份的时候,mysql可以根据这个日志来进行redo和undo,将备份的时候没有提交的事务进行回滚,已经提交了的进行重做

但是myisam不行,myisam是没有日志的,为了保证一致性,只能停机或者锁表进行备份



你可能感兴趣的:(数据库)