数据库原理及MySQL应用 | 日志管理(附限免视频)

数据库原理及MySQL应用 | 日志管理(附限免视频)
文章图片
数据库系统管理维护阶段需要通过日志对数据库的性能进行监督、分析和改进 。
日志是数据库系统的重要组成部分 , 记录了数据库的运行状态、数据的变更历史、错误信息及用户操作等信息 。 在日常管理中 , 数据库管理员可通过日志监控数据库的运行状态、优化数据库性能 。 在数据库出现问题时 , 可通过日志查询出错原因 , 并进行数据恢复 。
MySQL中有几种不同类型的日志 , 包括二进制日志、错误日志、通用查询日志、慢查询日志、中继日志等 , 功能如下 。
(1)二进制日志:记录除查询语句以外所有的DDL和DML语句的操作 , 可用于数据库复制 。
(2)错误日志:记录服务器启动、运行或停止时出现的问题 , 一般也会记录警告信息 。
(3)通用查询日志:记录服务器接收到的所有操作 , 包括启动/关闭服务器、查询操作、更新操作等 。
(4)慢查询日志:记录时长超过指定时间的查询 , 可用于优化查询 。
(5)中继日志:记录从主服务器的二进制日志文件中复制而来的事件 。
01
二进制日志
二进制日志 , 简称BINLOG , 对数据损坏后的恢复起着至关重要的作用 , 是MySQL中最重要的日志之一 。 它用二进制文件的形式记录了除查询语句以外所有的DDL和DML语句的操作 , 即记录对数据库对象进行的创建(CREATE)、修改(ALTER)、删除(DROP)操作和对数据表中记录的插入(INSERT)、更新(UPDATE)、删除(DELETE)等操作 , 但不记录SELECT或SHOW等不修改数据的操作 。 语句以“事件”形式存储 , 记录了语句的发生时间、执行时长、操作的数据等 。
启用二进制日志会给服务器带来轻微的性能影响 , 但它能保证数据库出故障前的数据是可以恢复的 。 在进行数据恢复时 , 可以利用二进制日志 , 将数据恢复到指定的时间点 。
另外 , 使用二进制日志 , 可以把对数据库所做的修改以“流”的方式传输到另一台服务器上 , 实现数据库复制功能 。
数据库原理及MySQL应用 | 日志管理(附限免视频)】1.启用二进制日志
要启用二进制日志 , 必须修改数据库配置文件my.ini , 在[mysqld]组下加入以下变量声明 , 然后重新启动服务器 。
语法说明如下 。 path是二进制日志文件的存储路径 , 默认位于MySQL安装目录下的Data文件夹中 。 logfilename是二进制日志的文件名 , MySQL会自动创建二进制日志文件 , 并将第一个二进制文件命名为logfilename.000001 , 当这个文件的大小达到max_binlog_size设定的值(默认为1GB)或MySQL重新启动时 , 会创建第二个二进制日志文件logfilename.000002 , 以此类推 。 若没有指定logfilename , 则默认的格式为hostname-bin.number , 其中hostname为服务器的主机名 。 可以用“SET@@global.max_binlog_size=10240;”命令设置全局系统变量@@global.max_binlog_size的值来更改max_binlog_size的大小 。 也可以在配置文件my.ini的[mysqld]组下加入“max_binlog_size=100M”这一变量声明 , 并重新启动服务器来设置二进制日志单个日志文件的大小 。
提示/
在MySQL中 , 一个事务包含的所有操作必须记录在同一个二进制文件中 , 这可能会导致有些二进制文件的大小超出max_binlog_size设定的值 。
2.查看二进制日志
(1)查看是否启用了二进制日志的基本语法格式如下所示 。
执行结果如图10-1所示 , log_bin的值为ON表示启用 。
数据库原理及MySQL应用 | 日志管理(附限免视频)
文章图片
■图10-1验证是否启用二进制日志