- 数据库备份
-按备份结果分- 逻辑备份
- 物理备份
- 按备份数据库分
逻辑备份通常是可读的,一般表现为建立数据库的库表,和对象的SQL,以及存储sql语句的数据集。对于MyISAM来说,会发生锁表。mysqldump就是例子
物理备份通常快一点。离线备份,在线备份(PERCONA的XtraBackup)。
mysqldump不支持增量备份,只能通过备份mysql的二级备份日志而实现
进行时间点的备份,都需要mysql的二进制日志的备份
mysqldump
语法
参数
如果备份的数据库包涵存储过程,触发器和数据库调度事件时,则用到如下参数
–hex-blob对 BINARY, VARBINARY, the BLOB types, and BIT.等类型的列转码
https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_hex-blob
备份管理员
备份数据库
备份单个表
全量备份(系统数据库+其他数据库)
–tab备份
需要目录具有可写权限,所以使用tmp目录
向系统写数据,需要文件权限 grant file on . to ‘backup’@’localhos’;
chown mysql:mysql mc_orderdb
.sql文件是保存表结构,.txt文件是记录了表的数据
mysqldump全备Where及脚本备份
mysqldump恢复
误删除全备恢复
查询出两表差异的数据,查询完数据然后把它插入到原来的库中
-tab 恢复
-tab有一个好处,如果只需要恢复一个数据表的数据,那么时间成本大大减少
region_info为例
source /tmp/mc_order/region_info.sql; 建立数据表的结构
load data infile '/tmp/mc_order/region_info.txt' into table region_info; 导入数据
指定时间点恢复
建立统计表,统计每个用户消费金额
删除数据,假设误操作
需求:如何恢复?
- 全备,查看二进制日志名和时间点
- 分析二进制日志,查看DELETE操作的时间点
- 备份在两点日志点之间的日志信息,导入
实时二进制日志备份(>5..6)
XtraBackup备份和恢复
XtraBackup更适用于InnoDB(物理备份)
备份过程中,不会影响表的读写操作
只会备份数据文件,而不会备份表的结构