zoukankan      html  css  js  c++  java
  • MySQL二进制日志binlog简单使用

             MySQL数据库进行了哪些CUD操作,通过binlog二进制文件可以查看。binlog不仅可以记录CUD的操作(select操作不包括在内),还是主从备份的基础。主库的操作记录成binlog文件,定期地从主库拷贝到从库。实际中使用binlog要考虑到文件大小的问题,要有定期删除的功能,否则会积累大量的文件。

            

             在my.ini下添加:

             log-bin=mysql-bin

             long_query_time=0.1

             log-slow-queries="Tempslow.log"

             log-queries-not-using-indexes=TRUE

             log-error="Templog-error.log"

             上面的配置将打开binlog记录功能,缓慢查询的记录功能,错误查询的记录功能等。

             mysql> show variables like '%datadir%';

      +---------------+----------------------+

      | Variable_name | Value                |

      +---------------+----------------------+

      | datadir       | D:NNM5MySQL5data |

      +---------------+----------------------+

      1 row in set (0.00 sec)

      mysql> show master status;

      +------------------+----------+--------------+------------------+

      | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

      +------------------+----------+--------------+------------------+

      | mysql-bin.000001 |   170435 |              |                  |

      +------------------+----------+--------------+------------------+

          则现在正在使用的binlog文件是D:NNM5MySQL5datamysql-bin.000001

          日志文件的生成将遵循如下规则:

          1. 每天生成一个新的文件,例如每天将生成mysql-bin.000002

          2. 文件大小超过设置的值时将生成新的文件:      

      mysql> show variables like '%max_binlog%';
      +----------------------------+----------------------+
      | Variable_name                   | Value                       |
      +----------------------------+----------------------+
      | max_binlog_cache_size      | 18446744073709547520 |
      | max_binlog_size                | 1073741824             |
      | max_binlog_stmt_cache_size | 18446744073709547520 |
      +----------------------------+----------------------+

             希望查看进行了哪些数据库操作,可以使用mysql自带的工具mysqlbinlog.exe

             D:NNM5MySQL5in>mysqlbinlog D:NNM5MySQL5datamysql-bin.000001

             可以看到类似下面的输出,从中可以找到已有的操作。

             SET TIMESTAMP=1415604740/*!*/;

      update versions set ver = "1.0.2" where module = 'WebNATService'

      /*!*/;

      # at 12755

      #141110 15:32:20 server id 1  end_log_pos 12782         Xid = 188

      COMMIT/*!*/;

      # at 12782

      #141110 15:32:23 server id 1  end_log_pos 12850         Query   thread_id=3     exec_time=0     error_code=0

      SET TIMESTAMP=1415604743/*!*/;

      BEGIN

      /*!*/;

      # at 12850

      #141110 15:32:23 server id 1  end_log_pos 13123         Query   thread_id=3     exec_time=0     error_code=0

      SET TIMESTAMP=1415604743/*!*/;

      另外MySQL安装目录data目录下的ib_logfile0和ib_logfile1虽然也是二进制文件,但是是记录innodb的操作,是不能使用mysqlbinlog.exe来查看的。

      MySQL无法启动或者启动时的一些遗产可以查看MySQL安装目录data目录下的RCYF-2265.err,其中RCYF-2265是操作系统的用户名。

          注意:

           开启了二进制文件而且数据库中有函数或存储过程,可能在数据库运行过程中会出现下面的错误:

      you *might* want to use the less safe log_bin_trust_function_creators variable

           出现上面的异常时,my.ini中需要添加:log-bin-trust-function-creators=1

      如果程序中有大量的sql操作时,记录日志就意味着大量的IO操作,会记录大量日志文件,影响软件的性能。慢查询的时间也需要考虑,太短会有问题,会记录到大部分的查询,影响系统的性能。

  • 相关阅读:
    ZOJ Problem Set–2417 Lowest Bit
    ZOJ Problem Set–1402 Magnificent Meatballs
    ZOJ Problem Set–1292 Integer Inquiry
    ZOJ Problem Set–1109 Language of FatMouse
    ZOJ Problem Set–1295 Reverse Text
    ZOJ Problem Set–1712 Skew Binary
    ZOJ Problem Set–1151 Word Reversal
    ZOJ Problem Set–1494 Climbing Worm
    ZOJ Problem Set–1251 Box of Bricks
    ZOJ Problem Set–1205 Martian Addition
  • 原文地址:https://www.cnblogs.com/lnlvinso/p/4087486.html
Copyright © 2011-2022 走看看