且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

mysql dba系统学习(5)二进制日志之一

更新时间:2022-07-18 15:13:23

    一,二进制日志文件的作用   

    Mysql的二进制日志记录的是所有mysql数据库发生变更的信息,因此对数据库非常重要,二进制日志的作用我概括了一下主要包含如下几个方面:

1、可以用于数据库基于时间点的还原。

2、可以用来分析数据库发生更改的情况,比如程序的bug导致数据库数据更改等等。

3、二进制日志还可以用来重建数据库。

   

   二,二进制日志相关的变量和参数

mysql dba系统学习(5)二进制日志之一

mysql dba系统学习(5)二进制日志之一


  

 三,配置二进制日志

1,开启bin-log日志,在my.cnf中修改

  指定了bin-log日志的路径,开启日志后需要myssqladmin flush log才生效,重启后我们发现在刚才设定的路径新增了log文件,这就是我们需要的二进制日志
   log-bin=/tmp/mysql-bin
 2,启动二进制文件的mysql服务
   [root@test4 /]# mysqld_safe  --defaults-file=/etc/my.cnf  --log-bin=/tmp/1.0001 --log-bin-index=/tmp/logbin.index  --max-binlog-size=10M --binlog-do-db=test 

3,二进制日志index文件的内容

  mysql> system  cat  /tmp/logbin.index
   /tmp/1.000001
   /tmp/1.000002


 四,管理二进制日志 

1,查看是否打开二进制日志文件的功能

 mysql> show  variables like "%log_bin%";
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin                         | ON    |
| log_bin_trust_function_creators | OFF   |
| log_bin_trust_routine_creators  | OFF   |
| sql_log_bin                     | ON    |
+---------------------------------+-------+


2,查看二进制文件的情况

mysql> show master logs;
+----------+-----------+
| Log_name | File_size |
+----------+-----------+
| 1.000001 |       141 |
| 1.000002 |       106 |
+----------+-----------+
2 rows in set (0.00 sec)

mysql> show binary logs;
+----------+-----------+
| Log_name | File_size |
+----------+-----------+
| 1.000001 |       141 |
| 1.000002 |       106 |
+----------+-----------+
2 rows in set (0.00 sec)

3,切换二进制文件

mysql> flush logs;
Query OK, 0 rows affected (0.02 sec)

mysql> show binary logs;
+----------+-----------+
| Log_name | File_size |
+----------+-----------+
| 1.000001 |       141 |
| 1.000002 |       141 |
| 1.000003 |       106 |
+----------+-----------+
3 rows in set (0.01 sec)

4,删除或者初始化二进制文件

mysql> reset master;
Query OK, 0 rows affected (0.03 sec)

mysql> show binary logs;
+----------+-----------+
| Log_name | File_size |
+----------+-----------+
| 1.000001 |       106 |
+----------+-----------+
1 row in set (0.00 sec)

5,删除指定的二进制文件

mysql> purge binary logs to '1.000003'; 删除二进制文件1.000001和1.000002

Query OK, 0 rows affected (0.48 sec)

mysql> show binary logs;
+----------+-----------+
| Log_name | File_size |
+----------+-----------+
| 1.000003 |       141 |
| 1.000004 |       141 |
| 1.000005 |       141 |
| 1.000006 |       141 |
| 1.000007 |       141 |
| 1.000008 |       106 |
+----------+-----------+

6,指定二进制日志失效期

mysql> show variables like "%expire%";
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 0     |
+------------------+-------+
1 row in set (0.01 sec)

mysql> set global  expire_logs_days=5;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like "%expire%";
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 5     |
+------------------+-------+
1 row in set (0.00 sec)


本文转自陈仲阳0 51CTO博客,原文链接:http://blog.51cto.com/wolfword/1287742