您的位置:首页 > 数据库

数据库——(12)数据备份与还原

2017-07-25 21:13 260 查看
备份:将当前已有的数据或者纪录保留

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

为什么要做备份还原?

1.防止数据丢失:被盗、误操作。
2.保护数据纪录


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

数据表备份

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

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

比较适合myisam存储引擎。

单表数据备份

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

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

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

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

select * into outfile
'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/a.txt'
from my_stu;


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

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

fields:字段处理

enclosed by:字段使用什么内容包裹,默认是 空字符串。
teminated by:字段以什么结束,默认是 tab键。
escaped by:特殊符号用什么方式处理,默认是‘\\’,使用反斜杠转义。


lines:行处理

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


select * into outfile
'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/b.txt'
-- 字段处理
fields
enclosed by '"' -- 数据使用双引号包裹
terminated by '|' -- 数据使用竖线分隔
-- 行处理
lines
starting by 'START:'
from my_class;


数据还原:将一个外部保存的数据重新恢复到表中(需要表结构存在)

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

SQL备份

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

备份:可惜MySQL没有提供备份指令,所以需要利用MySQL提供的软件:mysqldump.exe。

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

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

mysqldump  -uroot -proot mydatabase my_stu > C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/c.sql


SQL还原数据:两种方式

方案1:使用mysql.exe客户端还原

Mysql.exe/mysql.exe -hPup 数据库名字 < 备份文件路径

mysql -uroot -proot mydatabase < C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/c.sql


方案2:使用SQL指令还原

source 备份文件路径

source C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/c.sql;


SQL备份优缺点

1.优点:可以备份结构。
2.缺点:会浪费空间(额外增加SQL指令)。


增量备份

不是针对数据或者SQL指令进行备份,而是针对MySQL服务器的日志文件进行备份。

增量备份:指定时间段开始进行备份,备份数据不会重复,而且所有的操作都会备份(大项目都用增量备份)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐