8.2 使用 OUTFILE 命令进行备份(简单导出数据)



介绍一种,最简单的备份方法。

其实,算不上是备份方法,只能算是导出数据的方法。

一、OUTFILE 命令

1.1 概述

DBA运维,常用;

开发,会找DBA运维,线上导出一些数据,就是用的这个;

二、OUTFILE 命令的使用方式

2.1 理论

  • MySQL,都会有一个安全操作的文件目录。

​ 即,想要将OUTFILE的内容,导出为文件,可以查询导出路径目录:

  • 没有中间红框,就是一个非常正常的SQL语句

2.2 示例

1.找到MySQL的安全操作的文件目录:

show variables like '%secure%';

variables

变量

2.看数据表中的数据

  • 切库;
  • 看一下该库下,数据表t1的数据

3.使用into outfile命令,存进安全目录里的一个文件中;

  • 本来是select * from t1;
  • 需要将上述查询的内容,存放到安全目录的一个新文件里:select * into outfile '/var/lib/mysql-files/t1-out' from t1;
  • 退出数据库,再用cat命令,查看这个系统中的文件:确实存进去了

4.能否通过最简单的OUTFILE 命令,来备份同一时刻的,所有的数据表呢?

可以。因为MySQL数据库,的默认隔离级别是Compeatable Read可重复读,即事务begin时的状态。

这非常重要,否则就是备份的是这一秒的t1数据表,下一秒的t2数据表,存在不一致性。

5.适当美化:

中间加逗号:select * into outfile '/var/lib/mysql-files/t2-out' fields terminated by ',' from t2;

行末加分号:select * into outfile '/var/lib/mysql-files/t2-out2' fields terminated by ',' lines terminated by ';' from t2;

2.3 注意事项

  • 这是MVCC的贡献

MVCCMySQL InnoDB 中的实现主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读。

2.4 缺陷

  • 不像数据备份的命令,而只是数据导出的命令
  • 不能数据还原。运维、开发,只是用它来简单的导出数据,看一看

三、小结

  • 虽然OUTFILE 命令,有缺陷不足,但是,它是有启发性的。它是后面的备份工具的基础。

声明:Jerry's Blog|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 8.2 使用 OUTFILE 命令进行备份(简单导出数据)


Follow excellence, and success will chase you.