( 14 )MySQL数据库的备份与还原

数据库的备份与还原

备份: 将当前已有的数据或者记录进行保留.
还原: 将已经保留的数据恢复到对应的表中.
为什么要备份和还原?
1.防止数据丢失 : 被盗,误操作.
2.保护数据记录
数据备份还原的方式:
1.数据表备份
2.单表数据备份
3.SQL备份
4.增量备份
数据表备份
不需要通过SQL来备份,直接进入发哦数据文件夹复制对应的表结构以及数据文件,
以后还原的时候直接将备份内容放进去即可.
数据表备份的前提条件 : 根据不同的存储引擎有不同的区别
存储引擎:mysql进行数据存储的方式 主要用两种(innodb 和 myisam) 免费
( 14 )MySQL数据库的备份与还原

 

对比myisam和innodb :数据的存储方式
innodb : 只有表结构,数据全部存储到ibdate 文件中
myisam : 表 , 数据 和 索引 全部单独分开存储.
( 14 )MySQL数据库的备份与还原
myisam 可以将三个文件复制到任何一个数据库中,便可使用,但是innodb不行.
myisam优势:数据库的迁移很容易,数据库,不要断掉业务
maisam劣势:比较浪费磁盘空间.
单表数据备份
特点:每次只能备份一张表,只能备份数据,不能备份表结构
通常使用:将表中的数据进行导出到文件
备份
从表中选出一部分数据保存到外部文(outfile)中.
基本语法
--选择一部分数据 --外部文件 --选择数据源
select */字段列表 into outfile 外部文件路径 from 数据源;
前提是外部文件不存在;
eg. select * into outfile 'd/beiFen/user.txt' form user ;
select * into outfile "d/beiFen/user.txt"geo form user ;
高级备份
select */字段列表 into outfile ' 外部文件路径 ' fields 字段处理 lines 行处理 from 数据源;
fields 字段处理方式:
enclosed by : 字段使用什么包裹 默认是 '',空字符串 --用什么包裹
terminated by : 字段以什么结束 默认是 '\t' , tab键 --英文翻译为 : 终止
escape by : 特殊符号用什么方式处理 默认是'\\' , 使用反斜杠转义--转义
lines 字段处理方式:
starting by : 每行以什么开始 默认使用 '' , 空字符串
terminated by : 每行以什么结束 默认使用 '\r\n' 换行符
select * into outfile 'd:/beifen/users.txt' fields enclosed by '"' lines starting by 'staitng:' from user ;
还原
将一个在外部保存的数据重新恢复到表中,表结构不存在,就不能被还原
基本语法:
load data infile 文件所在路径 表名[(字段列表)] fields 字段处理 lines 行处理;
字段处理和行处理,怎么备份怎么还原;
load data infile 'd:/beifen/users.txt' fields enclosed by '"' lines starting by 'staitng:';
SQL备份
SQL备份: 备份的SQL语句, 系统会对表结构以及数据进行处理,变成对应的SQL语句,然后进行备份,还原的时候知道执行SQL指令即可.(针对表结构)
备份
MySQL中没有提供备份指令. 需要利用MySQL提供的软件:mysqldump.exe
mysqldump.exe 也是一种客户端,需要操作数据库:必须要连接认证,不需要分号.
mysqldump/mysqldump.exe -hPup 数据库名字 [表名1 [表名2...]] > 外部文件目录
还原
方案一:使用MySQL客户端还原
mysql.exe -hPup 数据库名字 < 备份的文件目录
数据库名字可以是别的数据库,可以还原到别的数据库中.
方案二: 使用SQL指令还原
source 本分文件所在的路径;
SQL备份优点 : 可以备份表结构以及数据
SQL备份缺点 : SQL语句增加,浪费空间
增量备份
增量备份:不是针对数据或者SQL指令进行备份,是针对MySQL服务器的日志文件进行备份.是制定时间段开始进行备份,备份不会重复,而且所有的操作都会备份