数据备份与还原
备份:将当前已有的数据或者记录保留
还原:将已经保留的数据恢复到对应的表中
为什么要做备份还原?
1.防止数据丢失:被盗,误操作
2.保护数据记录
数据备份还原的方式有很多种:数据表备份,单表数据备份,SQL备份,增量备份。
数据表备份
不需要通过SQL备份:直接进入到数据库文件夹复制对应的表结构以及数据文件,以后还原的时候,直接将备份的内容放进去即可。
数据表备份有前提条件:根据不同的存储引擎有不同的区别
存储引擎:MYSQL进行数据存储方式innoDB和myisam
对比innoDB和myisam:数据存储方式
InnoDB: 只有表结构,数据全部存储到ibdata1文件中
myisam: 表数据和索引全部单独分开存储
frm是结构
MYD是数据
MYI是索引
这种文件备份通常适用于myisam存储引擎:直接复制三个文件即可,然后直接放到对应的数据库下就可使用
单表数据备份
每次只能备份一张表:只能备份数据(表结构不能备份)
通常的使用:将表中的数据进行导出到文件
备份:从表中选出一部分数据保存到外部的文件中(outfile)
select */字段列表 into outfile 文件所在路径 from 数据源; -- 前提是外部文件不存在
高级备份:自己定制字段和行的处理方式
select */字段列表 into outfile 文件所在路径 fields 字段处理 lines 行处理 from 数据源;
fields:字段处理
enclosed by: 字段使用什么内容包裹,默认是“,空字符串
terminated by:字段以什么结束,默认是“\f”,tab键
escaped by:特殊符号用什么方式处理默认是'\\',使用反斜杠转义
lines处理:
starting by:每行以什么开始,默认是' ',空字符串
terminated by:每行以什么结束,默认是''\r\n",换行符
数据还原
将一个在外部保存的数据重新恢复到表中(如果表结构不存下那么sorry)
load data infile 文件所在路径 into table 表名 【字段列表】fields 字段处理 lines 行处理;
怎么备份的就怎么还原
SQL备份
备份的是SQL语句:系统会对表结构以及数据进行处理,变成对应的SQL语句,然后进行备份;还原的时候只要执行SQL指令即可(主要就是针对表结构)
备份:mysql没有提供备份指令:需要利用mysql提供的软件:mysqldump
mysqldump/mysqldump.exe -hpup 数据库名字 [数据表名字1] [数据表名字2...] > 外部文件.sql (建议使用.sql)
单表备份
整库备份
SQL还原
SQL还原数据:两种还原方式
方案一:使用mysql 客户端还原
mysql -hPup 数据库名字 < 备份文件目录
方案二:使用SQL指令还原
source 备份文件所在路径
SQL备份优缺点
1.优点:可以备份结构
2.缺点:会浪费空间(额外的增加SQL指令)
增量备份
不是针对数据或者SQL指令进行备份:是针对mysql服务器的日志文件进行备份
增量备份:指定时间段开始进行备份,备份数据不会重复,而是所有的操作都会备份(大项目都用增量备份)