MySQL二进制日志的备份和恢复
二进制日志:记录数据库修改的相关操作,作用是即时点回复,主从复制
可以按时间滚动,也可以按大小滚动
server-id:服务器身份标识
一、二进制文件的删除方法,千万不要手动删除
PURGE BINARY LOGS TO 'mysql-bin.010';
PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';
二、常用的操作:
SHOW MASTER STATUS;
FLUSH LOGS;
SHOW BINARY LOGS;
SHOW BINLOG EVENTS IN ‘log_file’\G;
查看从某个点开始的操作:
mysqlbinlog --start-position=123 mysql-bin.000001 > fansik.sql
mysqlbinlog
--start-time
--stop-time
--start-position
--stop-position
三、MySQL记录二进制日志的格式:
基于语句:statement
基于行:row
混合模式:mixed
四、MySQL二进制日志内容格式:
事件发生的日期和时间
服务器ID
事件的结束位置
事件的类型
原服务器生成此事件的线程ID
语句的时间戳和写入二进制日志文件的时间差
错误代码
事件内容
事件位置,相当于下一个事件的开始位置
五、服务器参数
log_bin = {ON|OFF}还可以是个文件路径
log_bin_trust_function_creators
sql_log_bin = {ON|OFF}
sync_binlog
binlog_format = {statement|row|mixed}
max_binlog_cache_size =
二进制日志缓冲空间大小,从MySQL5.5.9以后,仅用于缓冲事务类的语句
max_binlog_stmt_cache_size
事务类和非事务类语句共用的缓冲区大小
max_binlog_size = 二进制日志文件的上限
建议:切勿将二进制日志与数据文件放在同一设备
六、中继日志
relay_log_purge={ON|OFF}
是否自动清理不再需要的中继日志
七、备份和恢复
1、灾难恢复;
2、审计
3、测试
备份:目的用于恢复,对备份数据做恢复测试
备份类型:
- 根据备份时,数据库是否在线:
冷备:cold backup
温备:warm backup
热备:hot backup
- 根据备份的数据集:
完全备份:full backup
部分备份:partial backup
- 根据备份时的接口(直接备份数据文件还是通过MySQL服务器导出数据):
物理备份(physical backup):直接复制(归档)数据文件的备份方式
逻辑备份(logical backup):把数据从库中提出来保存为文本文件
- 根据备份时是备份整个数据还是仅备份变化的数据
完全备份:full backup
增量备份:incremental backup
差异备份:differential backup
八、备份策略
选择备份方式
选择备份时间
考虑到恢复成本
恢复时长
备份成本:锁时间、备份时长、备份负载