OUTFILE如何改进?

  • 自动发select语句,不需要手动发送
  • 自动开始事务
  • 输出insert语句,可以直接用于还原

    使用mysqldump进行备份

  • 非常常用的MySQL逻辑备份工具

  • MySQL Server自带
  • 输出的备份内容为SQL语句,平衡了阅读和还原
  • SQL语句占空间较小

    原理

  • mysqldump使用以下语句对数据进行备份:

select SQL_NO_CACHE FROM t;

  • SQL_NO_CACHE查询出的数据不会进入SQL缓存
  • mysqldump使用以下语句对数据进行备份:

    1. mysqldump -uroot -p123456 --databases d1 --single-transaction > test.sql;
  • 直接执行导出的sql文件即可进行还原

    1. source test.sql;

    mysqldump + binlog增量增量

  • binlog忠实记录了MySQL数据的变化

  • mysqldump全量备份之后,可以用binlog做增量
  • mysqldump全量备份时,切换新的binlog文件

    步骤1

    使用下面语句对数据进行全量备份:

    1. mysqldump -uroot -p123456 --databases d1 --single-transaction --flush-logs --master-data=2 > test.sql

    —flush-logs:备份后切换binlog文件
    —master-data=2:记录切换后的binlog文件名

    步骤2

    切换binlog文件

    1. mysqladmin -uroot -p123456 flush-logs

    步骤3

    还原

  • 首先恢复旧的全量备份

    1. source test.sql;
  • 然后将binlog增量还原至数据库

    1. mysqlbinlog MySQL-bin.000002 | mysql -u root p123456