mysql--日志文件

摘要:
mysqldump转储包括在报告中重新创建这些表,以便它们在重新加载转储文件后不会消失。不转储日志表内容2慢查询日志慢_查询_日志慢查询日志由执行时间超过几秒的long_queyr_Time SQL语句查询,并且必须至少检查分钟_检查_行_限制行。

1 选择常规查询日志和慢查询日志输出目标

1.1  log_output查看、定义

  所谓的输出目标就是日志写入到哪里,mysql中用系统变量 log_output来指定输出目标,log_output的值有三个:

NONE   FILE   TABLE  (其中NONE优先级最高)

  mysql中log_output语法 :

  show variables like "log_output"     查看log_output

  set global log_output='FILE'            设置log_output

  如果log_output在日志启动的时候没有指定,则默认日志记录目标是FILE,如果log_output在日志启动的时候已经指定那么他的只可以是  TABLE 或  FILE 或 NONE ,也可以是他们的组合(多个值之间用,分隔),如果开启了任何一个日志,服务器会打开相应的日志文件并向其写入启动消息,但是必须选择log_output,否则日志就不会进一步的写入日志文件中

  –log-output=TABLE,FILE,NONE NONE表示不记录到文件或者表中。如果NONE出现,则其他的输出目标也无效。
  –log-output=TABLE,FILE 同时输出到文件或表中  
  –log-output 则输出到默认的文件中

1.2日志表的好处和特征

日志表的好处:

  1. 每条日志具有标准的格式,要显示日志表的当前结果,请使用一下语句

    SHOW  CREATE  TABLE  mysql.general_log;    常规查询日志

    SHOW  CREATE  TABLE mysql.slow_log;           慢查询日志

  2. 可以通过语句访问日志,可以很容易获取满足特定条件的日志查询,例如获取特定时间段或某一个用户的日志

  3. 日志的内容可以通过客户端远程连接进行查询。

日志表的具体实现特征:

  1. 日志表可以进行CREATE TABLE, ALTER TABLE,和DROP TABLED操作,但是对于日志表ALTER TABLE和DROP TABLE不能用,必须禁用,

  2. 默认情况下,日志表使用CVS存储引擎将日志数据写到逗号分割的数据格式中国,这种格式更容易被导入到其他程序中进行分析使用

  3. 可以更改日志表以使用 MyISAM存储引擎,但不能在日志使用的时候用LATER TABLE修改日志表,必须要先禁止日志,而且日志表的存储引擎只能用CVS或MyISAM, 禁用日志并修改存储引擎:

    SET @old_log_state = @@GLOBAL.general_log;

    SET GLOBAL general_log = 0;

    ALTER TABLE mysql.general_log ENGINE = MyISAM;

    SET NGLBAL general_log = @old_log_state;

    (注:上面示例使用通用查询日志; 慢查询日志的过程类似)

  4 TRUNCATE TABLE是对日志表的有效操作。它可用于使日志条目到期(清空日志)

  5. 可以通过RENAME_TABLE重命名日志表的表名(例如,执行日志轮换) :

    DROP TABLE IF EXISTS general_log2;

    CREATE TABLE generla_log2 LIKE general_log;

    RENAME TABLE general_log TO general_log_backup, general_log2 TO general_log;

  6. CHECK TABLE  是对日志表有效的操作

    检查InnoDB和MyIsam是否有错误。检查表或者视图是否存在错误,对 MyISAM 和 InnoDB 存储引擎的表有作用。对于 MyISAM 存储引擎的表进行表检查,也会同时更新关键字统计数据。语法:

    CHECK TABLE tbl_name [, tbl_name]  [option] 

  7. LOCK TABLES 不能再日志表上使用,同时  INSERT  DELETE  UPDATE 不能再日志表上使用,这些操作仅允许在服务器本身内部执行

  8 FLUSH TABLES WITH READ LOCK 并且read_only系统变量的状态 对日志表没有影响。服务器始终可以写入日志表。

  9 写入日志表的条目不会写入二进制日志,因此不会复制到从属服务器

  10 要刷新日志表或日志文件,请分别使用 FLUSH TABLES或 FLUSH LOGS

  11 不允许对日志表进行分区。

  12 一个mysqldump的转储包括报表中重新创建这些表,以便它们不会重新加载转储文件后失踪。不转储日志表内容

2  慢查询日志   slow_query_log

  慢查询日志由long_queyr_time执行时间超过几秒钟的SQL语句组成,并且要求至少检查min_examined_row_limit行。慢速查询日志可用于查找执行时间较长的查询,因此是优化的候选查询

  2.1 慢查询日志的参数

    slow_query_log  = 0|1    禁用|启用慢查询日志, 可在运行时启用或禁用 日志

    slow_query_log_file       指定慢查询日志记录文件 ,如果这里没有指定慢查询日志文件默认为 host_name_slow.log, 同时可在运行是改变日志文件,如果日志文件已打开,则会关闭该文件打开新文件

    long_query_time            如果查询花费时间超过此秒数,会将此查询记录到慢查询日志中    默认10,最小值0     该值可以指定为微秒的分辨率:

    log-short-format  = {OFF|ON}   默认值  OFF  如果已激活,则将较少的信息记录到慢查询日志中

    log_slow_admin_statements    启用此系统变量会在慢查询日志中记录管理语句,其中包括:ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP TABLE, OPTIMIZE TABLE, 和 REPATR TABLE.

    log_queries_not_using_indexes ={0|1}  要在写入慢查询日志的语句中包含不使用索引进行行查找的查询

    log_throttle_queries_not_using_indexes  系统变量限制可以写入慢查询日志的每分钟此类查询的数量,   值 0 (默认值) 标识“无限制”。正值会对不使用索引的查询的日志记录市价每分钟限制。

  2.2 服务器判断是否记录慢查询日志的顺序:

    1.  查询必须不是管理语句,如果想记录管理语句,开启log_slow_admin_statements

    2. 查询必须花费long_query_time秒钟,如果想记录不使用行索引的查询,开启log_queries_not_using_indexes

    3 查询必须至少检查过min_examined_row_limit行

    4 不得根据log_throttle_queries_not_using_indexes 设置禁止查询 

免责声明:文章转载自《mysql--日志文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇64位虚拟机安装64位ubuntu出现问题office 2013 快速换KEY下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL的读写分离---主从复制、主主复制

1.复制是基于BinLog日志 存在三种日志格式:Statement:存储Sql语句,存储日志量是最小的。有可能复制不一致Row:存储event数据,存储日志量大,但是不能很直接进行读取;Mixed:介于Row和statment之间 2.复制的基础 一、主从复制 1.原理    mysql要做到主从复制,其实依靠的是二进制日志,即:假设主服务器叫A,...

MySQL5.6 与 MySQL5.7 的区别

目录 编译安装区别 初始化的区别 其他区别 编译安装区别 # 5.7在编译安装的时候多了一个 boost 库 [root@db02 mysql-5.7.20]# yum install -y gcc gcc-c++ automake autoconf make cmake bison-devel ncurses-devel libaio-dev...

LeetCode 36——有效的数独

1. 题目 2. 解答 将数独中数字的 ASCII 码值转化到 0-8 之间作为散列值,建立一个散列表,然后分别逐行、逐列、逐宫(3*3小块)统计每个数字的出现次数,若出现次数大于 1,则数独无效。 class Solution { public: bool isValidSudoku(vector<vector<char>&g...

【SequoiaDB】2 巨杉数据库SequoiaDB可视化部署

上篇介绍了如何可视化安装巨杉数据库Sequoia DB SAC,本篇进行演示如何一键部署集群以及数据库。 1)登录SAC (http://192.168.56.101:8000/) 2)点击 一键部署 3)在弹出的窗口,填写集群名、用户名、密码等信息 4)在扫描主机界面,填写集群的IP地址/主机名、密码信息,点击扫描 5)勾选主机列表中...

MySQL UDF提权 过程及注意事项

MySQL UDF提权 过程及注意事项 0x00 udf = ‘user defined function’,即‘用户自定义函数’。是通过添加新函数,对MYSQL的功能进行扩充,性质就象使用本地MYSQL函数如abs()或concat()。udf在mysql5.1以后的版本中,存在 思路 当获得webshell后发现权限比较低,但是在inc文件中拿到数据库...

mysql日期加减

一、MySQL 为日期增加一个时间间隔:date_add()。 1、  示例: set @dt = now(); select date_add(@dt, interval 1 day);           - 加1天 select date_add(@dt, interval 1 hour);                -加1小时 select d...