Mysql数据库–备份和还原

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

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

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

mysql 备份大数据量表 mysql备份数据表和结构_SQL


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

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

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

mysql 备份大数据量表 mysql备份数据表和结构_数据_02


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

mysql 备份大数据量表 mysql备份数据表和结构_字段_03

单表数据备份

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

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

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

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

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备份数据表和结构_SQL_05

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

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

mysql 备份大数据量表 mysql备份数据表和结构_SQL_06

SQL备份

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

备份: mysql没有提供备份指令: 需要利用mysql提供的软件: mysqldump.exe
Mysqldump.exe也是一种客户端,需要操作服务器: 必须连接认证
Mysqldump/mysqldump.exe -hPup 数据库名字 [数据表名字1[ 数据表名字2…]] > 外部文件目录(建议使用.sql)

单表备份

mysql 备份大数据量表 mysql备份数据表和结构_SQL_07

整库备份

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

mysql 备份大数据量表 mysql备份数据表和结构_字段_08


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

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

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

mysql 备份大数据量表 mysql备份数据表和结构_字段_09


方案2: 使用SQL指令还原

Source 备份文件所在路径;

mysql 备份大数据量表 mysql备份数据表和结构_数据_10


SQL备份优缺点

1.优点: 可以备份结构

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

增量备份

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

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