菜鸟学Linux 第077篇笔记 mysql logs

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
简介:

菜鸟学Linux 第077篇笔记 mysql logs




内容总览

错误日志

一般查询日志

慢查询日志

二进制日志(重点)

中继日志

事务日志

存储引擎






日志系统

错误日志

一般查询日志

慢查询日志

二进制日志 DML, DDL(任何引起或可能引起数据库变化操作的日志)

复制,即时点恢复;

中继日志 (中继日志格式和二进制日志格式相同)

事务日志


SHOW GLOBAL VARIABLES LIKE '%log%';  查看日志相关全局变量




错误日志记录内容

服务器启动和关闭过程中的信息

服务器运行过程中的错误信息

事件调度器运行一个事件时产生的信息

在从服务器上启动从服务器进程时产生的信息


log_warnings 

log_error



一般查询日志(默认不开启)

log_output={TABLE|FILE|NONE}

SELECT 查询记录


general_log 

general_log_file



慢查询日志 (只是查询时间比较长与一般查询日志相同)

 SHOW GLOBAL VARIABLES LIKE '%long%';  指定慢查询语句执行时长


 log_slow_queries={YES|NO}

 long_query_time

 slow_query_log  

 slow_query_log_file



二进制日志

mysqlbinlog

可以重现 重新执行sql语句


二进制日志相关的全局变量

SHOW GLOBAL VARIABLES LIKE '%log%';

binlog_format  二进制日志文件格式{statement|row|mixed}


log_bin {on|off}  是否启用二进制日志(可以指定路径,不指定则在数据目录中)


binlog_cache_size 二进制日志缓冲大小默认32768


binlog_stmt_cache_size 二进制日志语句缓冲大小(不建议设置太大)


sql_log_bin={on|off} 用户控制二进制日志信息是否记录进日志文件


sync_binlog 0不同步 如果为其它数据表示以多长时间同步二进制日志文件到硬盘


expire_logs_days 日志的过期天数  (是指的所有日志不只是事务日志)


max_binlog_cache_size

max_binlog_size 

max_binlog_stmt_cache_size  

(此三条用来设置二进制日志文件大小的上限,一般不用配置)



二进制日志格式

基于语句 statement

基于行 row

混合方式 mixed


二进制日志事件

产生的时间 starttime

相对位置 position


二进制日志文件

索引文件   (默认数据库位置下 mysql-bin.index文件 )

二进制日志文件 (默认数据库位置下 mysql-bin.0000001-....)

(建议和数据库存储位置分开,最好硬盘级区分 基于数据可靠性,和性能考虑)


查看当前所拥有的二进制日志文件

SHOW BINARY LOGS;


查看当前使用的二进制日志文件   

SHOW MASTER STATUS;  


查看二进制文件里记录的内容   

SHOW BINLOG EVENTS IN 'mysql-bin.000005';

SHOW BINLOG EVENTS IN 'mysql-bin.000005' FROM 205;  指定从某个位置显示

SHOW BINLOG EVENTS IN '二进制日志文件名' [FROM pos];


手动让日志实现滚动

FLUSH LOGS;

SHOW MASTER STATUS;

重启mysql服务器也可以实现日志滚动


清除某个二进制日志文件之前的二进制日志文件

PURGE { BINARY | MASTER } LOGS {TO 'log_name' | BEFORE datetime_expr};

PURGE BINARY LOGS TO 'mysql-bin.000002';


即时点还原

当服务器出现故障时,虽然mysql有备份,但未必是故障时间点正好备份了数据

所以当mysql服务器出现故障时只可以还原故障之前某个备份时间点的数据,而备份

点之后的数据要想恢复就需要依靠二进制日志所存储的信息来还原到故障发生时的

数据库状态,需要手动去查找备份出备份时间点之后的二进制日志,将其导入数据服务

器里重新执行一次操作命令即可恢复到故障点时的数据服务器状态,此流程就叫做

即时点还原


mysqlbinlog  (命令行命令)

--start-datetime

--stop-datetime


--start-position

--stop-position


显示二进制日志文件全部内容 

mysqlbinlog mysql-bin.000004


显示指定时间的二进制日志文件内容

mysqlbinlog --start-datetime='2017-01-11 16:48:35' 

--stop-datetime='2017-01-12 01:21:52' mysql-bin.000004

(此为一行命令)

如果不指定结束时间则默认显示到文件尾部

将上述命令进行重定向写到某文件并以.sql结尾 则在进入数据库后

将此文件导入命令,即可实现即时点还原(这里只作解释之后有详细解释)


显示指定位置的二进制日志文件内容

与时间类似这里不再讲解,只需要把命令datetime 换成position 

=号后改为位置即可




中继日志

从主服务器的二进制日志文件中复制而来的事件,并保存为的日志文件

此日志文件会在从服务器里再执行一次复制过来的事件


IOPS

IO 100, 200

SSD 500, 1000, 




事务日志

事务性存储引擎用于保证原子性、一致性、隔离性和持久性

ACID (Atomicity Consistency Isolation Durability)


提交的事务要同步到数据硬盘

未提交的事务要撤消其事务操作


innodb_flush_log_at_trx_commit = {0|1|2}

0 每秒从缓存同步到事务日志一次(到内核时不会缓存,直接同步硬盘)

1 每事务提交便同步,并执行硬盘flush操作;(默认为1)

2 每事务提交同步,但不执行硬盘flush操作;


innodb_log_buffer_size

内存缓存大小


innodb_log_file_size

事务日志大小(不建议设置太大)


innodb_log_files_in_group

事务日志组文件个数 事务日志文件可以有多个,当一个写满后会切换到下一个事务

日志文件,被切换的事务日志将同步操作到数据硬盘


innodb_log_group_home_dir

事务日志存放目录


innodb_mirrored_log_groups

事务日志镜像



存储引擎

MyISAM

不支持事务

只支持表锁

不支持外键

支持B树索引,FULLTEXT索引,空间索引

支持表压缩


数据文件

.frm 表格式

.MYD 数据文件

.MYI 索引文件


InnoDB

事务

行级锁

支持B树索引,聚簇索引,自适应hash索引

表空间,raw磁盘设备(裸设备)


数据文件

.frm 表格式

.ibd 表空间


设置每表一个表空间 SHOW GLOBAL VARIABLES LIKE 'innodb%';

innodb_file_per_table=on


MRG_MYISAM

支持将MYISAM逻辑上合起来显示


CSV

将表存储为文本文件(数据库导入导出)


ARCHIVE

归档,将表归档压缩存放


MEMORY

将表存储到内存里(读写速度快,安全性相对低)


BLACKHOLE

黑洞存储引擎(以后再详细了解)



存储引擎也称之为表类型,一个库里边表的存储引擎可以不一样,

但是不建议混合使用存储引擎

(如果一个表支持事务一个表不支持,当撤消操作时 你懂得)

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1891583如需转载请自行联系原作者

Winthcloud
相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
7月前
|
关系型数据库 MySQL 索引
MySQL多表练习笔记
链接可行,多表查询语法
170 0
|
11月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
661 17
|
11月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
337 18
|
11月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
604 11
|
11月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
310 10
|
11月前
|
运维 监控 中间件
Linux运维笔记 - 如何使用WGCLOUD监控交换机的流量
WGCLOUD是一款开源免费的通用主机监控工具,安装使用都非常简单,它可以监控主机、服务器的cpu、内存、磁盘、流量等数据,也可以监控数据库、中间件、网络设备
|
7月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
485 158
|
7月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
7月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1198 152
|
7月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
900 156