时间:2021-07-01 10:21:17 帮助过:32人阅读
用来记录启动\关闭\日常运行过程中,状态信息,警告,错误。默认是开启的
- <span style="color: #008080;"> 1</span> 默认就是开启的: /数据路径下/<span style="color: #0000ff;">hostname</span><span style="color: #000000;">.err
- </span><span style="color: #008080;"> 2</span> 查看错误日志位置:<span style="color: #0000ff;">select</span><span style="color: #000000;"> @@log_error;
- </span><span style="color: #008080;"> 3</span>
- <span style="color: #008080;"> 4</span> <span style="color: #000000;">手工指定位置:
- </span><span style="color: #008080;"> 5</span> vim /etc/<span style="color: #000000;">my.cnf
- </span><span style="color: #008080;"> 6</span> log_error=/var/log/<span style="color: #000000;">mysql.log
- </span><span style="color: #008080;"> 7</span> log_timestamps=<span style="color: #000000;">system
- </span><span style="color: #008080;"> 8</span> <span style="color: #000000;">重启生效
- </span><span style="color: #008080;"> 9</span>
- <span style="color: #008080;">10</span>
- <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>;
- <span style="color: #008080;">1</span> 主要关注[ERROR],看上下文
- <span style="color: #008080;">1</span> <span style="color: #000000;">备份恢复必须依赖二进制日志
- </span><span style="color: #008080;">2</span> <span style="color: #000000;">主从环境必须依赖二进制日志
- </span><span style="color: #008080;">3</span> <span style="color: #800080;">5</span>.x以上版本默认都没有开启二进制日志,需要手动配置来启用
- <span style="color: #008080;">1</span> <span style="color: #000000;">注意:MySQL默认是没有开启二进制日志的。
- </span><span style="color: #008080;">2</span>
- <span style="color: #008080;">3</span> <strong><span style="color: #000000;">基础参数查看:
- </span></strong><span style="color: #008080;">4</span> 开关状态: <span style="color: #0000ff;">select</span><span style="color: #000000;"> @@log_bin;
- </span><span style="color: #008080;">5</span> 日志路径及名字:<span style="color: #0000ff;">select</span><span style="color: #000000;"> @@log_bin_basename;
- </span><span style="color: #008080;">6</span> 服务ID号: <span style="color: #0000ff;">select</span><span style="color: #000000;"> @@server_id;
- </span><span style="color: #008080;">7</span> 二进制日志格式: <span style="color: #0000ff;">select</span><span style="color: #000000;"> @@binlog_format;
- </span><span style="color: #008080;">8</span> 双一标准之二: <span style="color: #0000ff;">select</span> @@sync_binlog;
- <span style="color: #008080;">1</span> <span style="color: #0000ff;">mkdir</span> /data/<span style="color: #000000;">binlog
- </span><span style="color: #008080;">2</span> <span style="color: #0000ff;">chown</span> -R mysql.mysql /data/binlog
- <span style="color: #008080;"> 1</span> vim /etc/<span style="color: #000000;">my.cnf
- </span><span style="color: #008080;"> 2</span>
- <span style="color: #008080;"> 3</span>
- <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中,单机可以不需要此参数
- </span><span style="color: #008080;"> 5</span>
- <span style="color: #008080;"> 6</span> <span style="color: #000000;"># log_bin有两种配置方式,如下讲解
- </span><span style="color: #008080;"> 7</span> log_bin=<span style="color: #800080;">1</span><span style="color: #000000;"> 只打开二进制日志开关,文件存放在默认的位置
- </span><span style="color: #008080;"> 8</span> log_bin=/data/binlog/mysql-bin 开启二进制日志,按照路径生成二进制文件,mysql-<span style="color: #000000;">bin为指定的文件名前缀。
- </span><span style="color: #008080;"> 9</span> 指定路径后会在其下额外生成个mysql-<span style="color: #000000;">bin.index文件,其内存放的是二进制文件的名,便于统计
- </span><span style="color: #008080;">10</span>
- <span style="color: #008080;">11</span> binlog_format=row <span style="color: #800080;">5</span>.7默认的配置,可省略
- server_id=<span style="color: #800080;">3306</span><span style="color: #000000;">
- 主要是在主从复制过程中必须要加的,但是在5.7版本中,要用以下参数(log_bin),开启binlog日志,即使是单机也是必加的
- log_bin</span>=/data/binlog/mysql-<span style="color: #000000;">bin
- (</span><span style="color: #800080;">1</span><span style="color: #000000;">)开启二进制日志功能
- (</span><span style="color: #800080;">2</span><span style="color: #000000;">)设置二进制日志目录及名称前缀<br>
- binlog_format</span>=<span style="color: #000000;">row
- binlog中记录dml语句的记录格式</span>
- <span style="color: #008080;">1</span> binlog是SQL层的功能。记录的是变更SQL语句,不记录查询语句。
- <span style="color: #000000;">DDL :原封不动的记录当前DDL(statement语句方式)。
- DCL :原封不动的记录当前DCL(statement语句方式)。
- DML :只记录已经提交的事务DML</span>
- <span style="color: #000000;">binlog_format=xx(binlog的记录格式)参数影响,取值如下:
- (</span><span style="color: #800080;">1</span>)statement(<span style="color: #800080;">5</span><span style="color: #000000;">.6默认)SBR(statement based replication) :语句模式原封不动的记录当前DML。
- (</span><span style="color: #800080;">2</span>)ROW(<span style="color: #800080;">5.7</span><span style="color: #000000;"> 默认值) RBR(ROW based replication) :记录数据行的变化(用户看不懂,需要工具分析)
- (</span><span style="color: #800080;">3</span>)mixed(混合)MBR(mixed based replication)模式 :以上两种模式的混合
- <span style="color: #008080;"> 1</span> <span style="color: #000000;">SBR与RBR模式的对比:
- </span><span style="color: #008080;"> 2</span>
- <span style="color: #008080;"> 3</span>
- <span style="color: #008080;"> 4</span> <span style="color: #000000;">STATEMENT(SBR):可读性较高,日志量少,但是不够严谨
- </span><span style="color: #008080;"> 5</span> <span style="color: #000000;">ROW(RBR) :可读性很低,日志量大,足够严谨,一些高可用环境中的新特性要依赖RBR模式
- </span><span style="color: #008080;"> 6</span>
- <span style="color: #008080;"> 7</span> <span style="color: #000000;">示例:
- </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>
- <span style="color: #008080;"> 9</span> <span style="color: #000000;">SBR会把update语句记录下来,
- </span><span style="color: #008080;">10</span> <span style="color: #000000;">RBR会把所有受影响的行的变化状态给记录下来
- </span><span style="color: #008080;">11</span>
- <span style="color: #008080;">12</span> <span style="color: #000000;">解析:
- </span><span style="color: #008080;">13</span> <span style="color: #000000;">为什么说SBR不严谨或某些情况下不准确呢?
- </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获取时间场景
- </span><span style="color: #008080;">15</span>
- <span style="color: #008080;">16</span>
- <span style="color: #008080;">17</span> 我们建议使用:row记录模式
mysql 工具日志管理整理
标签:dex文件 单机 sed basename 记录 png src 变更 var