首页 > 代码库 > mysql中的数据备份与还原
mysql中的数据备份与还原
一、有三种备份方式:
1. 数据表文件备份
2. 单表数据备份
3. SQL备份
4. 增量备份
二、mysql中的存储引擎
主要有两种:myisam 和 innodb. -- 免费的
其他收费的还有:BDB, Memory, Archive
innodb的存储方式:表结构单独存放,所有数据都存储在ibdata1文件中。
myisam的存储方式:表、数据和索引全部单独分开存储。
二、数据表文件备份与还原
直接复制数据库目录下的文件夹复制对应的表结构和数据文件,还原的时候直接放回去即可。
但是此方法根据不同的存储引擎有不同的区别:
innodb下,因为除了表结构外其他数据都在ibdata1文件中,所以还原到本来的数据库可以,跨数据库时表将不能使用。
myisam下,因为表、数据和索引全部单独分开存储,所以只需要复制这三个文件,就可以在任意数据库进行还原使用。
三、单表数据备份与还原
1. 数据备份
每次只能备份一张表,且只能备份数据,不能备份表结构。通常用于导出数据到文件。
select */字段列表 into outfile ‘文件路径‘ [fields 字段处理 lines 行处理] from 数据源; -- 文件不存在才能导出
fields字段处理:
enclosed by: 字段使用什么内容包裹,默认为‘‘;
terminated by: 字段使用什么内容结束,默认为‘\t‘;
escaped by: 特殊符号用什么方式处理,默认‘\\‘ 反斜杠转义;
lines行处理:
starting by: 每行以什么开始,默认为‘‘;
terminated by: 每行以什么结束,默认为换行符;
示例:
1 select * into outfile ‘D:\BaiduNetdiskDownload\mysql\class.sql‘ 2 fields terminated by ‘---‘ enclosed by ‘"‘ 3 lines starting by ‘be:‘ terminated by ‘ed\r\n‘ 4 from my_class;
2. 数据还原
必须保证表结构存在,才能进行数据还原。
lode data infile ‘文件路径‘ into table 表名 fields 字段处理 lines 行处理; -- 怎么备份的,就怎么还原
示例:
1 load data infile ‘D:\BaiduNetdiskDownload\mysql\class.sql‘ into table my_class 2 fields terminated by ‘---‘ enclosed by ‘"‘ 3 lines starting by ‘be:‘ terminated by ‘ed\r\n‘;
三、 SQL备份
1.数据备份
备份的是SQL语句,需要使用mysql提供的mysqldump.exe软件。
mysqldump/mysqldump.exe -hPup 数据库名 [表名1[,表名2...]] > 外部文件路径 -- 可以多表备份, 如果不写表名,表示整库备份
mysqldump -uroot -p jdbc my_student > D:\BaiduNetdiskDownload\mysql\student.sql -- 单表备份
mysqldump -uroot -p jdbc> D:\BaiduNetdiskDownload\mysql\jdbc.sql -- 整库备份
2. 数据还原
① 使用mysql客户端还原:
mysql.ext/mysql -hPup 数据库名< 备份文件路径
mysql -uroot -p jdbc < D:\BaiduNetdiskDownload\mysql\student.sql
②使用SQL指令还原:
source 备份文件路径;
source D:\BaiduNetdiskDownload\mysql\student.sql;
四、增量备份
此方式针对mysql服务器的日志文件进行备份,可以指定时间段进行备份,因此备份数据不会重复,并且中间的操作过程也会备份。
mysql中的数据备份与还原