您的位置:首页 > 数据库 > MySQL

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

2016-12-21 22:45 926 查看
一,二进制日志文件的作用   

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

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

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

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

   

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









  

 三,配置二进制日志

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)

本文出自 “好好活着” 博客,请务必保留此出处http://wolfword.blog.51cto.com/4892126/1287742
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息