mysql> flush logs;
3)显示所有的二进制日志文件
mysql> show binary logs;
格式:mysqlbinlog [参数] log-files
有以下四种参数选择:
-
--start-position
:用来指定二进制日志文件的起始位置;--stop-position
:用来指定二进制日志文件的结束位置。 -
--start-datetime
:用来指定二进制日志文件的起始日期;--stop-datetime
:用来指定二进制日志文件的结束日期。
使用 mysqlbinlog
工具来对 MySQL 进行增量备份:MySQL 增量备份与恢复
- 由
bin_log_format={ statement | row | mixed }
定义(5.7
版本之前是statement
,5.7
版本之后是row
)
1)statement
:
-
基于语句,记录生成数据的语句。
-
缺点:如果当插入信息为函数时,有可能不同时间点执行结果不一样。如
insert into test values(CURRENT_DATE())
2)row
:
- 基于行数据,缺点在于,有时候数据量会过大。
3)mixed
:
- 混合模式,由 MySQL 自行决定何时使用
statement
和row
模式。
查看当前二进制日志记录格式
mysql> show variables like ‘binlog_format’;
- 如果想要永久修改需:
sed -i '/\[mysqld]/a binlog_format=模式' /etc/my.cnf
来进行修改。
1)根据备份时,MySQL 服务是否在线
-
冷备:停掉 MySQL 这个服务,读写操作都不能进行。
-
温备:全局施加共享锁,只能读不能写。
-
热备:不停掉 MySQL 这个服务,读写照样进行。
2)根据备份时的接口
-
物理备份(Physical Backup):直接复制数据文件,打包归档。简单来说就是对 MySQL 的数据存放路径进行打包。
-
逻辑备份(Logical Backup):把数据抽取出来保存在 SQL 脚本中,
mysqldump
就属于逻辑备份。
各自特点:
-
物理:不需要额外工具,直接归档命令即可,但是跨平台能力比较差;如果数据量超过几十个 G,则适用于物理备份。
-
逻辑:导入方便,直接读取 SQL 语句即可;逻辑备份恢复时间慢,占用空间大;无法保证浮点数的精度;恢复完数据库后需要重建索引。
1)完全备份:每次对数据进行完整的备份,即对整个数据库的备份(是差异备份与增量备份的基础)
-
优点:备份与恢复操作简单方便。
-
缺点:数据存在大量的重复;占用大量的空间;备份与恢复时间长。
2)差异备份:
-
备份那些自从上次完全备份之后被修改过的所有文件,备份的时间起点是从上次完全备份起,备份数据量越来越大。
-
恢复数据时,只需要恢复上次的完全备份与最近的一次差异备份。