数据备份与还原

备份将当前已有的数据或者记录保留

还原:将已经保留的数据恢复到对应的表中

为什么要做备份还原?

1.防止数据丢失:被盗,误操作

2.保护数据记录

数据备份还原的方式有很多种:数据表备份,单表数据备份,SQL备份,增量备份。

数据表备份

不需要通过SQL来备份:直接进入到数据库文件夹复制对应的表结构以及数据文件,以后还原的时候,直接将备份的内容放进去即可。

数据表备份有前提条件:根据不同的存储引擎有不同的区别。

存储引擎:mysql进行数据存储的方式:主要是两种:innodb和myisam

mysql数据库备份与还原工具 mysql数据备份和还原_数据

对比myisam和innodb:数据存储方式

    innodb:只有表结构,数据全部存储到ibdata1文件中

    myisam:表,数据和索引全部单独分开存储

select @@version;
-- 创建myisam表
create table my_myisam(
id int)charset utf8 engine = myisam;

mysql数据库备份与还原工具 mysql数据备份和还原_数据备份_02

mysql数据库备份与还原工具 mysql数据备份和还原_mysql数据库备份与还原工具_03

这种文件备份通常适用于myisam存储引擎:直接复制三个文件即可,然后直接放到对应的数据库下即可以使用。

mysql数据库备份与还原工具 mysql数据备份和还原_字段_04

单表数据备份

每次只能备份一张表;只能备份数据(表结构不能备份)

通常的使用:将表中的数据进行导出到文件

备份:从表中选出一部分数据保存到外部的文件中(outfile)

select * /字段列表 into outfile 文件所在路径 from 数据源; --前提:外部文件不存在

-- 单表数据备份
select * into outfile 'D:/server/temp/student.txt'  from my_student;

mysql数据库备份与还原工具 mysql数据备份和还原_mysql数据库备份与还原工具_05

高级备份:自己指定字段和行的处理方式

select */字段列表 into outfile 文件所在路径 fields 字段处理 lines 行处理from数据源;

Fields:字段处理

    Enclosed by:字段使用什么内容包裹,默认是“,空字符串

    Terminated by:字段以什么结束,默认是‘\t',tab键

    Escaped by:特殊符号用什么方式处理,默认是'\\',使用反斜杠转义

Lines:行处理

    Starting by:每行以什么开始,默认是”,空字符串

    Terminated by:每行以什么结束,默认是“\r\n",换行符

mysql数据库备份与还原工具 mysql数据备份和还原_数据_06

数据还原:将一个在外部保存的数据重新恢复到表中(如果表结构不存在,那么sorry)

Load data infile 文件所在路径 into table 表名[(字段列表)] fields 字段处理 lines 行处理;-- 怎么备份的怎么还原

mysql数据库备份与还原工具 mysql数据备份和还原_数据_07

增量备份

不是针对数据或者SQL指令进行备份:是针对mysql服务器的日志文件进行备份

增量备份:指定时间段开始备份,备份数据不会重复,而且所有的操作都会备份(大项目都用增量备份)