数据备份与还原


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


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



为什么要做备份还原?
1.防止数据丢失,被盗,误操作


2.保护数据记录



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



数据表备份


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



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



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




mysql库备份和还原 mysql数据备份和还原_mysql




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


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


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



mysql库备份和还原 mysql数据备份和还原_mysql库备份和还原_02




这种文件备份通常适用于myisam存储引擎:直接复制三个文件即可



mysql库备份和还原 mysql数据备份和还原_sql_03




单表数据备份


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



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



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


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



mysql库备份和还原 mysql数据备份和还原_mysql库备份和还原_04




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


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


 


fields:字段处理


            enclosed by:字段使用什么内容包裹,默认是‘’,空字符串


            terminated by:字段以什么结束,默认是“\t”,tab键


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


lines:行处理


           starting by:每行以什么开始,默认是‘’,空字符


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



mysql库备份和还原 mysql数据备份和还原_数据库_05





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


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



mysql库备份和还原 mysql数据备份和还原_数据库_06




sql备份


备份的是sql语句:系统会对表结构以及数据进行处理,变成对应的sql语句,然后进行备份:还原的时候只要执行sql指令即可(主要就是针对表结构)



备份:mysql没有提供备份指令:需要利用mysql提供的软件:mysqldump.exe


mysqldump.exe是一种客户端,需要操作服务器,必须连接认证


Mysqldump/mysqldump.exe-hPup 数据库名字[数据表名字1][数据表名字2...]>外部文件目录(建议使用.sql)



单表备份



mysql库备份和还原 mysql数据备份和还原_mysql库备份和还原_07




整库备份


Mysqldump/mysqldump.exe-hPup 数据库名字  > 外部文件目录



mysql库备份和还原 mysql数据备份和还原_数据库_08




sql还原数据:两种方式还原


方案一:使用mysql.exe客户端


Mysql.exe/mysql -hPup 数据库名 <备份文件目录



mysql库备份和还原 mysql数据备份和还原_大学生_09




方案二:使用sql指令还原


source 备份文件所在路径;



mysql库备份和还原 mysql数据备份和还原_mysql库备份和还原_10




sql备份优缺点


1.优点:可以备份结构


2.缺点:会浪费空间(额外的增加sql指令)



增量备份


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



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