当前位置:Gxlcms > 数据库问题 > mysql 工具日志管理整理

mysql 工具日志管理整理

时间:2021-07-01 10:21:17 帮助过:32人阅读

  技术图片

 

1.错误日志(log_error)

  用来记录启动\关闭\日常运行过程中,状态信息,警告,错误。默认是开启的

1.1 错误日志配置

  1. <span style="color: #008080;"> 1</span> 默认就是开启的: /数据路径下/<span style="color: #0000ff;">hostname</span><span style="color: #000000;">.err
  2. </span><span style="color: #008080;"> 2</span> 查看错误日志位置:<span style="color: #0000ff;">select</span><span style="color: #000000;"> @@log_error;
  3. </span><span style="color: #008080;"> 3</span>
  4. <span style="color: #008080;"> 4</span> <span style="color: #000000;">手工指定位置:
  5. </span><span style="color: #008080;"> 5</span> vim /etc/<span style="color: #000000;">my.cnf
  6. </span><span style="color: #008080;"> 6</span> log_error=/var/log/<span style="color: #000000;">mysql.log
  7. </span><span style="color: #008080;"> 7</span> log_timestamps=<span style="color: #000000;">system
  8. </span><span style="color: #008080;"> 8</span> <span style="color: #000000;">重启生效
  9. </span><span style="color: #008080;"> 9</span>
  10. <span style="color: #008080;">10</span>
  11. <span style="color: #008080;">11</span> show variables like <span style="color: #800000;">‘</span><span style="color: #800000;">log_error</span><span style="color: #800000;">‘</span>;

1.2 日志内容查看

  1. <span style="color: #008080;">1</span> 主要关注[ERROR],看上下文

 

2. binlog(binary logs):二进制日志

2.1 作用

  1. <span style="color: #008080;">1</span> <span style="color: #000000;">备份恢复必须依赖二进制日志
  2. </span><span style="color: #008080;">2</span> <span style="color: #000000;">主从环境必须依赖二进制日志
  3. </span><span style="color: #008080;">3</span> <span style="color: #800080;">5</span>.x以上版本默认都没有开启二进制日志,需要手动配置来启用

2.2 binlog配置 (5.7必须加server_id)

  1. <span style="color: #008080;">1</span> <span style="color: #000000;">注意:MySQL默认是没有开启二进制日志的。
  2. </span><span style="color: #008080;">2</span>
  3. <span style="color: #008080;">3</span> <strong><span style="color: #000000;">基础参数查看:
  4. </span></strong><span style="color: #008080;">4</span> 开关状态: <span style="color: #0000ff;">select</span><span style="color: #000000;"> @@log_bin;
  5. </span><span style="color: #008080;">5</span> 日志路径及名字:<span style="color: #0000ff;">select</span><span style="color: #000000;"> @@log_bin_basename;
  6. </span><span style="color: #008080;">6</span> 服务ID号: <span style="color: #0000ff;">select</span><span style="color: #000000;"> @@server_id;
  7. </span><span style="color: #008080;">7</span> 二进制日志格式: <span style="color: #0000ff;">select</span><span style="color: #000000;"> @@binlog_format;
  8. </span><span style="color: #008080;">8</span> 双一标准之二: <span style="color: #0000ff;">select</span> @@sync_binlog;

2.2.1 创建日志目录

  1. <span style="color: #008080;">1</span> <span style="color: #0000ff;">mkdir</span> /data/<span style="color: #000000;">binlog
  2. </span><span style="color: #008080;">2</span> <span style="color: #0000ff;">chown</span> -R mysql.mysql /data/binlog

2.2.2 修改配置文件

  1. <span style="color: #008080;"> 1</span> vim /etc/<span style="color: #000000;">my.cnf
  2. </span><span style="color: #008080;"> 2</span>
  3. <span style="color: #008080;"> 3</span>
  4. <span style="color: #008080;"> 4</span> server_id=<span style="color: #800080;">6</span> (取值1-<span style="color: #800080;">65535</span>) <span style="color: #800080;">5</span><span style="color: #000000;">.6中,单机可以不需要此参数
  5. </span><span style="color: #008080;"> 5</span>
  6. <span style="color: #008080;"> 6</span> <span style="color: #000000;"># log_bin有两种配置方式,如下讲解
  7. </span><span style="color: #008080;"> 7</span> log_bin=<span style="color: #800080;">1</span><span style="color: #000000;"> 只打开二进制日志开关,文件存放在默认的位置
  8. </span><span style="color: #008080;"> 8</span> log_bin=/data/binlog/mysql-bin 开启二进制日志,按照路径生成二进制文件,mysql-<span style="color: #000000;">bin为指定的文件名前缀。
  9. </span><span style="color: #008080;"> 9</span> 指定路径后会在其下额外生成个mysql-<span style="color: #000000;">bin.index文件,其内存放的是二进制文件的名,便于统计
  10. </span><span style="color: #008080;">10</span>
  11. <span style="color: #008080;">11</span> binlog_format=row <span style="color: #800080;">5</span>.7默认的配置,可省略

2.2.3 重启数据库生效

2.2.4 参数说明

  1. server_id=<span style="color: #800080;">3306</span><span style="color: #000000;">
  2. 主要是在主从复制过程中必须要加的,但是在5.7版本中,要用以下参数(log_bin),开启binlog日志,即使是单机也是必加的
  3. log_bin</span>=/data/binlog/mysql-<span style="color: #000000;">bin
  4. (</span><span style="color: #800080;">1</span><span style="color: #000000;">)开启二进制日志功能
  5. (</span><span style="color: #800080;">2</span><span style="color: #000000;">)设置二进制日志目录及名称前缀<br>
  6. binlog_format</span>=<span style="color: #000000;">row
  7. binlog中记录dml语句的记录格式</span>

2.3 binlog记录了什么?

2.3.0 引入

  1. <span style="color: #008080;">1</span> binlog是SQL层的功能。记录的是变更SQL语句,不记录查询语句。

2.3.1 记录SQL语句种类

  1. <span style="color: #000000;">DDL :原封不动的记录当前DDL(statement语句方式)。
  2. DCL :原封不动的记录当前DCL(statement语句方式)。
  3. DML :只记录已经提交的事务DML</span>

2.3.2 DML三种记录格式,仅对dml语句有效

  1. <span style="color: #000000;">binlog_format=xx(binlog的记录格式)参数影响,取值如下:
  2. (</span><span style="color: #800080;">1</span>)statement(<span style="color: #800080;">5</span><span style="color: #000000;">.6默认)SBR(statement based replication) :语句模式原封不动的记录当前DML。
  3. (</span><span style="color: #800080;">2</span>)ROW(<span style="color: #800080;">5.7</span><span style="color: #000000;"> 默认值) RBR(ROW based replication)       :记录数据行的变化(用户看不懂,需要工具分析)
  4. (</span><span style="color: #800080;">3</span>)mixed(混合)MBR(mixed based replication)模式     :以上两种模式的混合

2.3.3 三种记录格式如何选取:

  1. <span style="color: #008080;"> 1</span> <span style="color: #000000;">SBR与RBR模式的对比:
  2. </span><span style="color: #008080;"> 2</span>
  3. <span style="color: #008080;"> 3</span>
  4. <span style="color: #008080;"> 4</span> <span style="color: #000000;">STATEMENT(SBR):可读性较高,日志量少,但是不够严谨
  5. </span><span style="color: #008080;"> 5</span> <span style="color: #000000;">ROW(RBR) :可读性很低,日志量大,足够严谨,一些高可用环境中的新特性要依赖RBR模式
  6. </span><span style="color: #008080;"> 6</span>
  7. <span style="color: #008080;"> 7</span> <span style="color: #000000;">示例:
  8. </span><span style="color: #008080;"> 8</span> update t1 set xx=xx where <span style="color: #0000ff;">id</span>><span style="color: #800080;">10</span>
  9. <span style="color: #008080;"> 9</span> <span style="color: #000000;">SBR会把update语句记录下来,
  10. </span><span style="color: #008080;">10</span> <span style="color: #000000;">RBR会把所有受影响的行的变化状态给记录下来
  11. </span><span style="color: #008080;">11</span>
  12. <span style="color: #008080;">12</span> <span style="color: #000000;">解析:
  13. </span><span style="color: #008080;">13</span> <span style="color: #000000;">为什么说SBR不严谨或某些情况下不准确呢?
  14. </span><span style="color: #008080;">14</span> insert into t1 values(<span style="color: #800080;">1</span>,<span style="color: #800000;">‘</span><span style="color: #800000;">zs</span><span style="color: #800000;">‘</span><span style="color: #000000;">,now())这种场景下使用now获取时间场景
  15. </span><span style="color: #008080;">15</span>
  16. <span style="color: #008080;">16</span>
  17. <span style="color: #008080;">17</span> 我们建议使用:row记录模式

 

mysql 工具日志管理整理

标签:dex文件   单机   sed   basename   记录   png   src   变更   var   

人气教程排行