日志文件记录了MySQL数据库的各种类型的活动,MySQL数据库中常见的日志文件有 查询日志,慢查询日志,错误日志,二进制日志,中继日志 ,事务日志

  修改配置或者想要使配置永久生效需将内容写入配置文件中:/etc/my.cnf.d/server.cnf

一、查询日志

  查询日志在mysql中称为general log(通用日志),查询日志记录了数据库执行的命令,不管这些语句是否正确,都会被记录。由于数据库操作命令有可能非常多而且执行比较频繁,所以开启了查询日志以后,数据库可能需要不停的写入查询日志,这样会增大服务器的IO压力,增加很多系统开销,影响数据库的性能,所以默认情况下是关闭的,也不建议开启。

存储查询日志的方式:

  方式1:将查询日志存放于指定的日志文件中;

  方式2:将查询日志存放于mysql.general_log表中;

  方式3:将查询日志同时存放于指定的日志文件与mysql库的general_log表中。

1、查看查询日志的相关参数

MariaDB [mysql]> show global variables like '%gen%log%';
+------------------+----------+
| Variable_name    | Value    |
+------------------+----------+
| general_log      | OFF      |
| general_log_file | ren7.log |
+------------------+----------+
2 rows in set (0.00 sec)MariaDB [mysql]> show variables where variable_name like '%general_log%' or variable_name='log_output';
+------------------+----------+
| Variable_name    | Value    |
+------------------+----------+
| general_log      | OFF      |
| general_log_file | ren7.log |
| log_output       | FILE     |
+------------------+----------+
3 rows in set (0.00 sec)

2、查询日志变量详解

1 general_log:                指定是否开启查询日志(ON表示开启,OFF表示未开启,默认OFF)
2 general_log_file:           当log_output设置为“FILE”时,指定将查询日志保存成哪个文件、叫什么名,默认与主机名相同,一般位于/var/lib/mysql目录下
3 log_output:           指定将记录到的查询保存到什么位置(“NONE”、“FILE”、“TABLE”、“FILE,TABLE”)
4 file:                       保存成一个文件
5 table:                      保存成一张表
6 none:                       不记录

二、慢查询日志**

  慢查询日志用来记录响应时间超过阈值的SQL语句,所以我们可以设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询日志文件中。该阈值可以通过参数 slow_launch_time来设置,默认为2秒。

1、查看慢查询日志的变量

MariaDB [mysql]> show global variables like '%slow%';
+---------------------------+--------------------------------------------------------------------------------------------------------------+
| Variable_name             | Value                                                                                                        |
+---------------------------+--------------------------------------------------------------------------------------------------------------+
| log_slow_admin_statements | ON                                                                                                           |
| log_slow_filter           | admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk |
| log_slow_rate_limit       | 1                                                                                                            |
| log_slow_slave_statements | ON                                                                                                           |
| log_slow_verbosity        |                                                                                                              |
| slow_launch_time          | 2                                                                                                            |
| slow_query_log            | OFF                                                                                                          |
| slow_query_log_file       | ren7-slow.log                                                                                                |
+---------------------------+--------------------------------------------------------------------------------------------------------------+
8 rows in set (0.00 sec)

2、变量详解

1 slow_query_log = OFF|ON  (0|1)      #开启慢查询日志
2 slow_query_log_file = LOCALHOST-SLOW.log #慢查询日志的文件路径
3 long_query_time                 #慢查询时长;默认是10s
4 log_slow_rate_limit              #如果要记录的慢查询日志非常多的话,会按照速率来记录,默认1秒记录一个
5 log_slow_verbosity=full | query_plan    #记录的详细级别
6 log_output                    #指定将记录到的查询保存到什么位置

3、开启慢查询日志及测试

MariaDB [(none)]> set global slow_query_log=on;  #当前会话不生效,需重新连接数据库
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> select @@global.slow_query_log;
+-------------------------+
| @@global.slow_query_log |
+-------------------------+
|                       1 |
+-------------------------+
1 row in set (0.00 sec)
MariaDB [(none)]> select sleep(15);  #测试4次
+-----------+
| sleep(15) |
+-----------+
|         0 |
+-----------+
1 row in set (15.00 sec)
[root@ren7 mysql]# tailf /var/lib/mysql/ren7-slow.log  #查看慢查询日志的文件(默认保存类型是FILE)# Time: 190907 15:47:18
# User@Host: root[root] @ localhost []
# Thread_id: 10  Schema:   QC_hit: No
# Query_time: 15.008583  Lock_time: 0.000000  Rows_sent: 1  Rows_examined: 0
# Rows_affected: 0
SET timestamp=1567842438;
select sleep(15);
MariaDB [ren]> show global status like '%slow_queries%';  #查看一共记录了多少条慢查询语句
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Slow_queries  | 4     |
+---------------+-------+
1 row in set (0.00 sec)

4、mysqldumpslow命令

  mysqldumpslow是mysql自带的慢查询日志统计分析工具,可以对慢查询日志进行排序、查找、统计(只有我们将log_output的值设置为“FILE”或者“FILE,TABLE”时,mysqldumpslow才可以用)

(1)使用

[root@ren7 ~]# mysqldumpslow -s t /var/lib/mysql/ren7-slow.log Reading mysql slow query log from /var/lib/mysql/ren7-slow.log
Count: 4  Time=15.01s (60s)  Lock=0.00s (0s)  Rows_sent=1.0 (4), Rows_examined=0.0 (0), Rows_affected=0.0 (0), root[root]@localhostselect sleep(N)

(2)参数说明

[root@ren7 ~]# mysqldumpslow --help
Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]Parse and summarize the MySQL slow query log. Options are--verbose    verbose--debug      debug--help       write this text to standard output-v           verbose-d           debug-s ORDER     what to sort by (aa, ae, al, ar, at, a, c, e, l, r, t), 'at' is defaultaa: average rows affectedae: aggregated rows examinedal: average lock time(平均锁定时间)ar: average rows sent(平均返回记录数)at: average query time(平均执行时间)a: rows affectedc: count(执行计数)e: rows examined l: lock time(锁定时间)r: rows sent(返回记录)t: query time(执行时间)  -r           reverse the sort order (largest last instead of first)-t NUM       just show the top n queries(指定只查看多少条统计信息)-a           don't abstract all numbers to N and strings to 'S'-n NUM       abstract numbers with at least n digits within names-g PATTERN   grep: only consider stmts that include this string(正则表达式)-h HOSTNAME  hostname of db server for *-slow.log filename (can be wildcard),default is '*', i.e. match all-i NAME      name of server instance (if using mysql.server startup script)-l           don't subtract lock time from total time

三、错误日志

主要记录:(很重要的信息日志文件)

(1)mysqld启动和关闭过程中输出的事件信息
(2)mysqld运行中产生的错误信息
(3)event scheduler 运行一个event时产生的日志信息
(4)在主从复制架构中的从服务器IO复制线程时产生的信息

1、查看参数

MariaDB [mysql]> show variables like '%log_error%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_error     |       |
+---------------+-------+
1 row in set (0.00 sec)MariaDB [mysql]> show variables like '%log_warnings%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings  | 2     |
+---------------+-------+
1 row in set (0.01 sec)

2、参数详解

1 log_error = /var/log/mysql_error.log  #指定错误日志的输出位置
2 log_warnings 为0, 表示不记录告警信息。
3 log_warnings 为1, 表示告警信息写入错误日志。
4 log_warnings 大于1, 表示各类告警信息,例如有关网络故障的信息和重新连接信息写入错误日志。(默认为2)

四、二进制日志***

在mysql中二进制日志为binlog,它记录了对数据库执行更改的所有操作,但是不包括 select 和 show 这类操作,因为这类操作对数据本身并没有修改,如果你还想记录select和show操作,那只能使用查询日志了,而不是二进制日志。(增删改的SQL语句)

二进制还包括了执行数据库更改操作的时间和执行时间等信息,它主要用于时间点恢复(备份恢复)以及主从复制结构

  • 恢复(recovery) : 某些数据的恢复需要二进制日志,如当一个数据库全备文件恢复后,我们可以通过二进制的日志进行 point-in-time 的恢复
  • 复制(replication) : 通过复制和执行二进制日志使得一台远程的 MySQL 数据库(一般是slave 或者 standby) 与一台MySQL数据库(一般为master或者primary) 进行实时同步
  • 审计(audit) :用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入攻击

1、查看变量

MariaDB [mysql]> show global variables like '%bin%';
+-----------------------------------------+--------------------------------+
| Variable_name                           | Value                          |
+-----------------------------------------+--------------------------------+
| binlog_annotate_row_events              | ON                             |
| binlog_cache_size                       | 32768                          |
| binlog_checksum                         | CRC32                          |
| binlog_commit_wait_count                | 0                              |
| binlog_commit_wait_usec                 | 100000                         |
| binlog_direct_non_transactional_updates | OFF                            |
| binlog_format                           | MIXED                          |
| binlog_optimize_thread_scheduling       | ON                             |
| binlog_row_image                        | FULL                           |
| binlog_stmt_cache_size                  | 32768                          |
| encrypt_binlog                          | OFF                            |
| gtid_binlog_pos                         | 0-1-1                          |
| gtid_binlog_state                       | 0-1-1                          |
| innodb_locks_unsafe_for_binlog          | OFF                            |
| log_bin                                 | ON                             |
| log_bin_basename                        | /var/lib/mysql/mysql-bin       |
| log_bin_compress                        | OFF                            |
| log_bin_compress_min_len                | 256                            |
| log_bin_index                           | /var/lib/mysql/mysql-bin.index |
| log_bin_trust_function_creators         | OFF                            |
| max_binlog_cache_size                   | 18446744073709547520           |
| max_binlog_size                         | 1073741824                     |
| max_binlog_stmt_cache_size              | 18446744073709547520           |
| read_binlog_speed_limit                 | 0                              |
| sql_log_bin                             | ON                             |
| sync_binlog                             | 0                              |
| wsrep_forced_binlog_format              | NONE                           |
+-----------------------------------------+--------------------------------+
27 rows in set (0.00 sec)

2、变量详解

二进制日志文件的构成:

(1)日志文件:mysql-bin.xxxxxx,二进制格式

(2)索引文件:mysql-bin,index,索引文件(十进制文件)

log_bin = LOG_NAME:                        (只读变量)只能通过修改配置文件来指定是否启用二进制日志(全局的)     #my.cnf配置文件中没有log_bin的配置,表示未开启二进制日志,如果存在log_bin的配置,则表示开启了二进制日志,同时,二进制日志文件的名称将会以log_bin对应的值为文件名前缀,文件默认位置在/var/lib/mysql/下,二进制日志文件的后缀名会进行自动编号,每次日志滚动后,后缀名编号自动加1.
log_bin_basename = /var/lib/mysql/mysql-bin: 指定二进制日志的文件的基名
log_bin_index = /var/lib/mysql/mysql-bin.index:指定二进制日志文件的索引文件
binlog_format = STATEMENT|ROW|MIXED:        指定基于哪种方式进行记录          STATEMENT:            基于“语句”记录          ROW:                基于“行”记录          MIXED:              让系统自行判定该基于哪种方式记录sync_binlog = 1|0:                           设定是否启动二进制日志同步功能-->每次提交事务,会将缓存中的内存刷新到二进制日志文件中。-->默认每个sql语句是一个事务,而且默认事务会自动提交,所以,默认的性能很差        -->此值为0时,表示当事务提交后,不会立即将内存中的binlog刷新到磁盘中;安全性最差,性能最高        -->此值为1时,表示每一次事务提交后,都会立即将内存中的二进制文件同步到磁盘中;安全性最高,性能最差        -->还能设置为N,当设置为3时,表示每3次事务提交后,将binlog从内存刷写到磁盘一次,值设置的越大,有可能丢失的日志数据越多,但性能会越好max_binlog_size = SIZE:                     指定二进制日志文件的上限,超过上限会滚动,以字节为单位(默认为1G,为1073741824B)
max_binlog_cache_size = SIZE:               指定二进制日志缓存空间大小,空间被填满,会自动滚动
sql_log_off = on|off:                       是否将一般的查询操作记录到二进制日志中
sql_log_bin = ON |OFF:                      指定是否启用二进制日志(会话级别)
log_bin_trust_function_creators = on|off:   指定是否允许创建可能导致不安全的函数

3、查看二进制日志文件列表及事件

  SHOW {BINARY | MASTER} LOGS
  SHOW BINLOG EVENTS [IN 'log_name']
  show master status;

--修改配置文件[root@ren7 ~]# vim /etc/my.cnf.d/server.cnf
#############################
[server]
log_bin = mysql-binlog
##############################--重启服务
[root@ren7 ~]# systemctl restart mariadb
[root@ren7 ~]# mysql -uroot -proot -D ren;
--查看二进制日志文件列表MariaDB [ren]> show master logs;
+---------------------+-----------+
| Log_name            | File_size |
+---------------------+-----------+
| mysql-binlog.000001 |       331 |
+---------------------+-----------+
1 row in set (0.00 sec)
MariaDB [ren]> show binary logs;
+---------------------+-----------+
| Log_name            | File_size |
+---------------------+-----------+
| mysql-binlog.000001 |       331 |
+---------------------+-----------+
1 row in set (0.00 sec)
--查看当前正在使用的二进制日志文件MariaDB [ren]> show master status;
+---------------------+----------+--------------+------------------+
| File                | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+----------+--------------+------------------+
| mysql-binlog.000001 |      331 |              |                  |
+---------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

--修改数据库的文件
MariaDB [ren]> drop table test4;
Query OK, 0 rows affected (0.00 sec)MariaDB [ren]> delete from test where name='李连杰';
Query OK, 1 row affected (0.00 sec)MariaDB [ren]> insert into test set name='漩涡鸣人';
Query OK, 1 row affected (0.01 sec)
--再次查看二进制日志文件
MariaDB [ren]> show master status;
+---------------------+----------+--------------+------------------+
| File                | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+----------+--------------+------------------+
| mysql-binlog.000001 |      840 |              |                  |
+---------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

--查看二进制日志文件中的事件(查看binlog内容)MariaDB [ren]> show binlog events;
MariaDB [ren]> show binlog events in 'mysql-binlog.000001';
+---------------------+-----+-------------------+-----------+-------------+---------------------------------------------------------+
| Log_name            | Pos | Event_type        | Server_id | End_log_pos | Info                                                    |
+---------------------+-----+-------------------+-----------+-------------+---------------------------------------------------------+
| mysql-binlog.000001 |   4 | Format_desc       |         1 |         256 | Server ver: 10.2.26-MariaDB-log, Binlog ver: 4          |
| mysql-binlog.000001 | 256 | Gtid_list         |         1 |         285 | []                                                      |
| mysql-binlog.000001 | 285 | Binlog_checkpoint |         1 |         331 | mysql-binlog.000001                                     |
| mysql-binlog.000001 | 331 | Gtid              |         1 |         373 | GTID 0-1-1                                              |
| mysql-binlog.000001 | 373 | Query             |         1 |         483 | use `ren`; DROP TABLE `test4` /* generated by server */ |
| mysql-binlog.000001 | 483 | Gtid              |         1 |         525 | BEGIN GTID 0-1-2                                        |
| mysql-binlog.000001 | 525 | Query             |         1 |         630 | use `ren`; delete from test where name='李连杰'         |
| mysql-binlog.000001 | 630 | Xid               |         1 |         661 | COMMIT /* xid=22 */                                     |
| mysql-binlog.000001 | 661 | Gtid              |         1 |         703 | BEGIN GTID 0-1-3                                        |
| mysql-binlog.000001 | 703 | Query             |         1 |         809 | use `ren`; insert into test set name='漩涡鸣人'         |
| mysql-binlog.000001 | 809 | Xid               |         1 |         840 | COMMIT /* xid=23 */                                     |
+---------------------+-----+-------------------+-----------+-------------+---------------------------------------------------------+
11 rows in set (0.00 sec)MariaDB [ren]> show binlog events in 'mysql-binlog.000001' from 256;
+---------------------+-----+-------------------+-----------+-------------+---------------------------------------------------------+
| Log_name            | Pos | Event_type        | Server_id | End_log_pos | Info                                                    |
+---------------------+-----+-------------------+-----------+-------------+---------------------------------------------------------+
| mysql-binlog.000001 | 256 | Gtid_list         |         1 |         285 | []                                                      |
| mysql-binlog.000001 | 285 | Binlog_checkpoint |         1 |         331 | mysql-binlog.000001                                     |
| mysql-binlog.000001 | 331 | Gtid              |         1 |         373 | GTID 0-1-1                                              |
| mysql-binlog.000001 | 373 | Query             |         1 |         483 | use `ren`; DROP TABLE `test4` /* generated by server */ |
| mysql-binlog.000001 | 483 | Gtid              |         1 |         525 | BEGIN GTID 0-1-2                                        |
| mysql-binlog.000001 | 525 | Query             |         1 |         630 | use `ren`; delete from test where name='李连杰'         |
| mysql-binlog.000001 | 630 | Xid               |         1 |         661 | COMMIT /* xid=22 */                                     |
| mysql-binlog.000001 | 661 | Gtid              |         1 |         703 | BEGIN GTID 0-1-3                                        |
| mysql-binlog.000001 | 703 | Query             |         1 |         809 | use `ren`; insert into test set name='漩涡鸣人'         |
| mysql-binlog.000001 | 809 | Xid               |         1 |         840 | COMMIT /* xid=23 */                                     |
+---------------------+-----+-------------------+-----------+-------------+---------------------------------------------------------+
10 rows in set (0.00 sec)MariaDB [ren]> show binlog events in 'mysql-binlog.000001' limit 1,2;
+---------------------+-----+-------------------+-----------+-------------+---------------------+
| Log_name            | Pos | Event_type        | Server_id | End_log_pos | Info                |
+---------------------+-----+-------------------+-----------+-------------+---------------------+
| mysql-binlog.000001 | 256 | Gtid_list         |         1 |         285 | []                  |
| mysql-binlog.000001 | 285 | Binlog_checkpoint |         1 |         331 | mysql-binlog.000001 |
+---------------------+-----+-------------------+-----------+-------------+---------------------+
2 rows in set (0.00 sec)

4、二进制日志滚动

(1)flush logs;

(2)文件超出指定大小;

(3)重启数据库(service mariadb restart / systemctl restart mariadb)

5、查看二进制日志文件(mysqlbinlog命令)

  除了前面提到的可以通过show binlog events命令在mysql中查看日志内容,还可以通过mysqlbinlog命令在文件系统下查看对应的二进制日志文件。

[root@ren7 mysql]# pwd
/var/lib/mysql
[root@ren7 mysql]# mysqlbinlog mysql-binlog.000001
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#190907 17:15:09 server id 1  end_log_pos 256 CRC32 0x16b33f7c     Start: binlog v 4, server v 10.2.26-MariaDB-log created 190907 17:15:09 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '
HXVzXQ8BAAAA/AAAAAABAAABAAQAMTAuMi4yNi1NYXJpYURCLWxvZwAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAddXNdEzgNAAgAEgAEBAQEEgAA5AAEGggAAAAICAgCAAAACgoKAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAEEwQADQgICAoKCgF8P7MW
'/*!*/;
# at 256
#190907 17:15:09 server id 1  end_log_pos 285 CRC32 0x6a3abc7d     Gtid list []
# at 285
#190907 17:15:09 server id 1  end_log_pos 331 CRC32 0x01d5789f     Binlog checkpoint mysql-binlog.000001
# at 331
#190907 17:27:38 server id 1  end_log_pos 373 CRC32 0x17565195     GTID 0-1-1 ddl
/*!100101 SET @@session.skip_parallel_replication=0*//*!*/;
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
/*!100001 SET @@session.gtid_seq_no=1*//*!*/;
# at 373
#190907 17:27:38 server id 1  end_log_pos 483 CRC32 0xc4f951a5     Query    thread_id=9    exec_time=0    error_code=0
use `ren`/*!*/;
SET TIMESTAMP=1567848458/*!*/;
SET @@session.pseudo_thread_id=9/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
SET @@session.sql_mode=1411383296/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
DROP TABLE `test4` /* generated by server */
/*!*/;
# at 483
#190907 17:28:11 server id 1  end_log_pos 525 CRC32 0x331814aa     GTID 0-1-2 trans
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
BEGIN
/*!*/;
# at 525
#190907 17:28:11 server id 1  end_log_pos 630 CRC32 0x2a7828ea     Query    thread_id=9    exec_time=0    error_code=0
SET TIMESTAMP=1567848491/*!*/;
delete from test where name='李连杰'
/*!*/;
# at 630
#190907 17:28:11 server id 1  end_log_pos 661 CRC32 0x13fd72a8     Xid = 22
COMMIT/*!*/;
# at 661
#190907 17:30:06 server id 1  end_log_pos 703 CRC32 0x4fd1715e     GTID 0-1-3 trans
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
BEGIN
/*!*/;
# at 703
#190907 17:30:06 server id 1  end_log_pos 809 CRC32 0xd387e70f     Query    thread_id=9    exec_time=0    error_code=0
SET TIMESTAMP=1567848606/*!*/;
insert into test set name='漩涡鸣人'
/*!*/;
# at 809
#190907 17:30:06 server id 1  end_log_pos 840 CRC32 0x62252207     Xid = 23
COMMIT/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

二进制日志格式:#190613 14:17:32 server id 1  end_log_pos 666 CRC32 0xeb1cde6b  Query   thread_id=9     exec_time=0       error_code=0use `testdb`/*!*/;事件发生的日期和时间:190613 14:17:32事件发生的服务器标识:server id 1事件的结束位置:end_log_pos 666事件的类型:Query事件发生时所在服务器执行此事件的线程ID:thread_id=9语句的时间戳与将其写入二进制文件中的时间差:exec_time=0错误代码:error_code=0事件内容:GTID:Global Transaction ID;专属属性:GTID

mysqlbinlog:客户端命令工具mysqlbinlog [options] log_file ...--start-datetime=--stop-datetime=    --start-position=--stop-position=

五、中继日志

  复制架构中,备服务器用于保存主服务器的二进制日志中读取到的事件;用于实现mysql的主从复制。

1、查看中继日志变量

MariaDB [ren]> show global variables like "%relay%";
+-----------------------+----------------+
| Variable_name         | Value          |
+-----------------------+----------------+
| max_relay_log_size    | 1073741824     |
| relay_log             |                |
| relay_log_basename    |                |
| relay_log_index       |                |
| relay_log_info_file   | relay-log.info |
| relay_log_purge       | ON             |
| relay_log_recovery    | OFF            |
| relay_log_space_limit | 0              |
| sync_relay_log        | 10000          |
| sync_relay_log_info   | 10000          |
+-----------------------+----------------+
10 rows in set (0.00 sec)

2、变量详解

1 relay_log fileName:       指定中继日志的文件名。【文件名为空,表示禁用了中继日志】
2 relay_log_index:          索引表
3 relay_log_info_file:      记录中继日志文件的相关信息
4 relay_log_purge:          指定是否自动删除无用的中继日志文件
5 relay_log_recovery:       是否可以对中继日志做自动恢复相关的配置
6 relay_log_space_limit:    指定中继日志可以占用的空间大小(0表示不限制)

3、SQL线程应用中继日志流程

六、事务日志

事务日志:transaction log(ib_logfile0,ib_logfile1)

1、查看参数

MariaDB [ren]> show global variables like '%innodb%log%';
+-------------------------------------------+------------+
| Variable_name                             | Value      |
+-------------------------------------------+------------+
| innodb_encrypt_log                        | OFF        |
| innodb_flush_log_at_timeout               | 1          |
| innodb_flush_log_at_trx_commit            | 1          |
| innodb_locks_unsafe_for_binlog            | OFF        |
| innodb_log_arch_dir                       |            |
| innodb_log_arch_expire_sec                | 0          |
| innodb_log_archive                        | OFF        |
| innodb_log_block_size                     | 0          |
| innodb_log_buffer_size                    | 16777216   |
| innodb_log_checksum_algorithm             | DEPRECATED |
| innodb_log_checksums                      | ON         |
| innodb_log_compressed_pages               | ON         |
| innodb_log_file_size                      | 50331648   |
| innodb_log_files_in_group                 | 2          |
| innodb_log_group_home_dir                 | ./         |
| innodb_log_optimize_ddl                   | ON         |
| innodb_log_write_ahead_size               | 8192       |
| innodb_max_undo_log_size                  | 10485760   |
| innodb_mirrored_log_groups                | 0          |
| innodb_online_alter_log_max_size          | 134217728  |
| innodb_scrub_log                          | OFF        |
| innodb_scrub_log_speed                    | 256        |
| innodb_track_redo_log_now                 | OFF        |
| innodb_undo_log_truncate                  | OFF        |
| innodb_undo_logs                          | 128        |
| innodb_use_global_flush_log_at_trx_commit | OFF        |
+-------------------------------------------+------------+
26 rows in set (0.00 sec)

2、部分参数详解

innodb_buffer_pool_size                    一般设置成为物理内存的3/4,或者4/5
innodb_log_files_in_group = 2              事务日志文件的个数,默认为2个事务日志文件
innodb_log_file_size = 50331648(48m)      事务日志文件的单个大小48m
innodb_log_group_home_dir = ./             事务日志文件的所在路径,默认就在mariadb的数据目录/var/lib/mysql
事务型存储引擎自行管理和使用(Innodb,myisam引擎是不支持事务,外键,行级锁)redo log : 重做日志undo log :撤销日志
buffer_pool:缓冲池(一般而言,装完数据库第一个要调的参数)

转载于:https://www.cnblogs.com/renyz/p/11480909.html

mysql基础之日志管理(查询日志、慢查询日志、错误日志、二进制日志、中继日志、事务日志)...相关推荐

  1. Java学习day051 记录日志(基本日志、高级日志、修改日志管理器配置、本地化、处理器、过滤器、格式化器、日志记录说明)

    使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识. day051   记录日志(基本日志.高级日志.修改日志管理器配置.本地化.处理器.过滤器.格式化器 ...

  2. 05-linux日志管理-04-journalctl 命令(查询、日志清理、大小限制)

    文章目录 1. 日志查询 1.1 输出所有日志 1.2 按服务查询 1.3 按级别查询 1.4 按时间查询 1.5 其他 2. 清理和限制 2.1 查看占据磁盘空间 2.2 清理日志 2.3 限制大小 ...

  3. MySQL基础回顾(六):数据查询语言DQL---select查询语句总结(篇一)

    目录 先建一个数据库和若干张表 完整语法 1.基础查询 2.字段别名 3.去重 4.where子句查询 5.模糊查询 6.联表查询 7.分页和排序 8.子查询和嵌套查询 9.分组查询和having语句 ...

  4. Mysql基础中篇[数据库的使用和数据查询]~

    基本概念: 数据库: 英文单词DataBase,简称DB,按照一定格式存储数据的一些文件的组合,顾名思义:存储数据的仓库,实际上就是一堆文件,这些文件中存储了具有特定格式的数据. 数据库管理系统: D ...

  5. MySQL基础(3)----其他函数 约束 多表查询 子查询 组合查询

    1.其他函数 1.1.字符串函数  --- 操作字符串 常用函数: 函数 功能 CONCAT(s1, s2, ..., sn) 字符串拼接,将s1, s2, ..., sn拼接成一个字符串 LOWER ...

  6. MySQL基础:客户端管理工具mysqladmin

    mysqladmin是mysql的客户端管理工具,虽然有相当一部分功能使用mysql客户端就可以实现,这篇文章整理一下mysqladmin的常见用法. 确认版本 可以使用如下方式进行mysqladmi ...

  7. mysql基础(表管理语句)

    文章目录 前言 查看表 创建表 删除表 修改表 例 前言 WEB安全–MYSQL–语法 查看表 1.列出当前数据库上所有表 show tables; 2.查看当前库中所有表的具体属性信息 show t ...

  8. 楼梯在SQL Server事务日志管理,三级:事务日志,备份和恢复(16周翻译)

    楼梯在SQL Server事务日志管理,三级:事务日志,备份和恢复 通过托尼•戴维斯,2011/09/07 该系列 本文是楼梯系列的一部分:楼梯在SQL Server事务日志管理 当一切都很顺利,没有 ...

  9. MySQL数据库备份恢复(日志管理)

    MySQL数据库日志管理 1.数据库中数据丢失或被破坏可能原因 2.日志类型 1)错误日志 2)查询日志 3)慢查询日志 4)二进制日志(极其重要) 1.数据库中数据丢失或被破坏可能原因 误删除数据库 ...

  10. mysql之 日志体系(错误日志、查询日志、二进制日志、事务日志、中继日志)...

    一. mysql错误日志: 错误日志记录的事件: a).服务器启动关闭过程中的信息 b).服务器运行过程中的错误信息 c).事件调试器运行一个事件时间生的信息 d).在从服务器上启动从服务器进程时产生 ...

最新文章

  1. 智能合约和区块链技术:入门指南
  2. 命名人工智能最高奖,破译德军密码,却被祖国逼得自杀-6月7日
  3. iOS11和iPhone X的适配
  4. python 任务计划_windows 10 设定计划任务自动执行 python 脚本的方法
  5. 【thinkPHP框架】Failed opening required 'header.php' include_path='.;c:\php5\pear 终级解决方案...
  6. 织梦首页html在哪儿,dedecms织梦首页去index.html
  7. 使用express搭建服务器获取MySQL数据库数据
  8. [转帖]Oracle 11G RAC For Windows 2008 R2部署手册
  9. 宇轩网络面试题目PHP,二十道接地气的php面试题,让你直接通过面试!就此奉上~...
  10. python登录验证程序_python – 测试Flask登录和身份验证?
  11. 绍兴“智慧城市”建设推进 WiFi扩大覆盖 流量“不用愁”
  12. 删除悬镜linux安装教程,Linux安全运维之如何活用history命令
  13. 「翻版王攀」?深大研究生控诉导师不让毕业:读研三年,猪狗不如
  14. linux 程序 减肥,程序减肥三步走
  15. 3dmax界面由哪几部分组成
  16. dllMain函数的作用
  17. windows聚焦壁纸不更新_win10系统聚焦壁纸不更新怎么办?
  18. 如何在 HTML 中调整图像大小?
  19. 金属与氧气、酸的反应
  20. ecshop首页幻灯片大小设置

热门文章

  1. 如何在macOS中查找和删除潜在的驱动程序冲突?
  2. 如何禁用 7 个完全不必要的设置来优化 Mac?
  3. Mac远程管理软件Royal TSX
  4. Sublime Merge for Mac(git客户端软件)2064
  5. Mac上的Spotlight搜索都能干什么?
  6. Python基本数据类型(列表)
  7. 专注技术,回归本质,这就是太平洋未来科技的创新之处...
  8. c#简易学生信息管理系统
  9. almost a hero 差不多英雄 攻略
  10. laravel的表单验证(下面有些信息未验证,转的)