mysql数据库中,flush logs

在mysql数据库,如果数据库启动的时候,启用了log-bin选项,那么,

所有对于数据库的修改都会记录在binary log中,binary log可以用于数据库的恢复。

     1.查看my.cnf中配置的log-bin参数

[mysql@redhat6 ~]$ grep "log-bin" /etc/my.cnf 
log-bin=/mysql/data/mysql-bin/mysql-bin   #定义binary log所在的目录及bin log以什么名字开始。
2.查看binary log在操作系统上生成的文件
[mysql@redhat6 ~]$ cd /mysql/data/mysql-bin/
[mysql@redhat6 mysql-bin]$ ls -l
total 969552
-rw-rw----. 1 mysql mysql     27693 Jan 18 17:15 mysql-bin.000001
-rw-rw----. 1 mysql mysql   1133097 Jan 18 17:15 mysql-bin.000002
-rw-rw----. 1 mysql mysql       264 Jan 18 17:20 mysql-bin.000003
-rw-rw----. 1 mysql mysql     26636 Jan 18 17:24 mysql-bin.000004
-rw-rw----. 1 mysql mysql   1133097 Jan 18 17:24 mysql-bin.000005
-rw-rw----. 1 mysql mysql       126 Jan 18 17:34 mysql-bin.000006
-rw-rw----. 1 mysql mysql       126 Jan 18 17:36 mysql-bin.000007
-rw-rw----. 1 mysql mysql       126 Jan 18 17:38 mysql-bin.000008
-rw-rw----. 1 mysql mysql       126 Jan 18 17:40 mysql-bin.000009
-rw-rw----. 1 mysql mysql       126 Jan 19 09:59 mysql-bin.000010
-rw-rw----. 1 mysql mysql       126 Jan 19 10:03 mysql-bin.000011
-rw-rw----. 1 mysql mysql       126 Jan 19 10:05 mysql-bin.000012
-rw-rw----. 1 mysql mysql       126 Jan 19 10:06 mysql-bin.000013
-rw-rw----. 1 mysql mysql      8428 Jan 19 17:57 mysql-bin.000014
3.mysql-bin.index文件是所有bin log文件的列表(列出所有binary log所在路径和名字,./表示的是data目录)
[mysql@redhat6 mysql-bin]$ cat mysql-bin.index 
./mysql-bin.000001
./mysql-bin.000002
./mysql-bin.000003
./mysql-bin.000004
./mysql-bin.000005
./mysql-bin.000006
./mysql-bin.000007
./mysql-bin.000008
./mysql-bin.000009
./mysql-bin.000010
 4.查看当前数据库binary log的位置
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000089 |      107 |              |                  |
+------------------+----------+--------------+------------------+
当前使用的bin log是“mysql-bin.000089”,位置是107
5.执行flush logs命令
mysql> flush logs;
Query OK, 0 rows affected (0.04 sec)

mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000090 |      107 |              |                  |
+------------------+----------+--------------+------------------+
通过执行flush logs命令之后,再次查询binary log信息,发现已经使用了一个新的bin log文件了。
flush logs命令的作用就是关闭当前使用的binary log,然后打开一个新的binary log文件,binlog文件的序号递增加1。

原文地址:https://www.cnblogs.com/vzhangxk/p/15603169.html