数据库-日志管理

1.日志类型

日志文件

记入文件中的信息类型

错误日志

记录启动、运行或停止时出现的问题。

查询日志

记录建立的客户端连接和执行的语句。

二进制日志

记录所有更改数据的语句。主要用于复制和即时点恢复。

慢日志

记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。

事务日志

记录InnoDB等支持事务的存储引擎执行事务时产生的日志。

1-2.错误日志

错误日志内容:

1.服务器启动和关闭过程中的信息服务器运行过程中的错误信息

2.事件调度器运行一个时间是产生的信息

3.在从服务器上启动从服务器进程是产生的信息

错误日志定义:(在/etc/my.cnf)中定义,定义完后重启服务

--log-error[=file_name]

如果没有给定file_name指,那么错误日志名是host_name.err 并在数据目录中写入日志文件。

如果执行flush logs,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件。(如果未给出--log-error选   项,则不会重新命名)。

1-3通用查询日志

启动开关:general_log={ON|OFF}

日志文件变量:general_log_file[=/PATH/TO/file]

全局日志开关:log={ON|OFF} 该开关打开后,所有日志都会被启记录类型:log_output={TABLE|FILE|NONE}

因此,要启用通用查询日志,需要至少配置general_log=ONlog_output={TABLE|FILE}。而

general_log_file如果没有指定,默认名是host_name.log看看上述几个值的默认配置:

SHOW GLOBAL VARIABLES LIKE '%general_log%';

mysql> SHOW GLOBAL VARIABLES LIKE '%log_output%';

1-4慢查询日志

MySQL如果启用了slow_query_log=ON选项,就会记录执行时间超过long_query_time的查询(初使表锁  定的时间不算作执行时间)。日志记录文件为slow_query_log_file[=file_name],如果没有给出file_name值,  默认为主机名,后缀为-slow.log。如果给出了文件名,但不是绝对路径名,文件则写入数据目录。

默认与慢查询相关变量:

mysql> SHOW GLOBAL VARIABLES LIKE '%slow_query_log%';

默认没有启用慢查询,为了服务器调优,建议开启开启方法:

SET GLOBAL slow_query_log=ON; 当前生效,永久有效配置文件中设置使用mysqldumpslow命令获得日志中显示的查询摘要来处理慢查询日志

# mysqldumpslow slow.log

如果查询时长超过long_query_time的定义值(默认10秒),即为慢查询:

mysql> SHOW GLOBAL VARIABLES LIKE 'long_query_time';

1-5二进制日志

二进制日志包含内容:

二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE的所有语  

 

语句以事件的形式保存,它描述数据更改。二进制日志还包含关于每个更新数据库的语句的执行时间信息。  它不包含没有修改任何数据的语句。

二进制日志启动开关:log-bin [= file_name]

查看二进制日志的工具为:mysqlbinlog

二进制日志的管理

日志滚动

my.cnf中设定max_binlog_size = 200M,表示限制二进制日志最大尺寸为200M,超过200M后进行滚动。MySQL的滚动方式与其他日志不太一样,滚动时会创建一个新的编号大1的日志用于记录最新的日志,而原  日志名字不会被改变。每次重启MySQL服务,日志都会自动滚动一次。

 

另外如果需要手动滚动,则使用命令 mysql> FLUSH LOGS;

查看有哪些二进制日志文件:mysql> SHOW BINARY LOGS;

查看当前正在使用的是哪一个二进制日志文件:mysql> SHOW MASTER STATUS;

查看二进制日志内容:mysql> SHOW BINLOG EVENTS IN 'mysqld-binlog.000002';

删除二进制日志文件:

二进制日志文件不能直接删除的,如果使用rm等命令直接删除日志文件,可能导致数据库的崩溃。

必须使用命令PURGE删除日志,语法如下:PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE datetime_expr }

reset master命令删除所有日志,新日志重新从000001开始编号

purge master logs to 'filename.******' 命令可以删除指定编号前的所有日志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值