mysql dba系统学习(7)二进制日志之三

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

二进制日志的相关系统变量


1,binlog_cache_sizemax_binlog_cache_size

表示的为每个session的事物分配的缓存

一般的当插入或者修改数据的时候,不会立刻写磁盘,一般会缓存起来,缓存的大小有binlog_cache_size 来控制

mysql> show variables like"%binlog_cache%";

+-----------------------+----------------------+

| Variable_name| Value|

+-----------------------+----------------------+

| binlog_cache_size| 32768|

| max_binlog_cache_size |18446744073709547520 |

+-----------------------+----------------------+


2,binlog_cache_use

表示的是当前事物的数量

当前没有事物

mysql> showstatus like "%binlog_cache_use%";

+------------------+-------+

| Variable_name| Value |

+------------------+-------+

| Binlog_cache_use | 0|

+------------------+-------+


创建事物

mysql>show table status like 'tt'\G;

*************************** 1. row***************************

Name: tt

Engine: MyISAM(这种引擎不支持事物)

Version: 10

Row_format: Fixed

Rows: 1

Avg_row_length: 8

Data_length: 8

Max_data_length: 2251799813685247

Index_length: 1024

Data_free: 0

Auto_increment: NULL

Create_time: 2013-09-03 11:42:18

Update_time: 2013-09-03 15:24:13

Check_time: NULL

Collation: utf8_general_ci

Checksum: NULL

Create_options:

Comment:

1 row in set (0.00 sec)

mysql>drop table tt;

Query OK, 0 rows affected (0.01 sec)


mysql> create table tt(id int)engine=innodb; 设置成innodb的引擎

Query OK, 0 rows affected, 2 warnings (0.02sec)


mysql> insert into tt values(1);

Query OK, 1 row affected (0.00 sec)


mysql> show variables like"autocommit";

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| autocommit| ON|

+---------------+-------+

1 row in set (0.00 sec)


mysql> setautocommit=0;关闭自动提交事物

Query OK, 0 rows affected (0.00 sec)


mysql> show variables like"autocommit";

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| autocommit| OFF|

+---------------+-------+

1 row in set (0.01 sec)


mysql> insert into tt values(2);

Query OK, 1 row affected (0.01 sec)


mysql> commit;

Query OK, 0 rows affected (0.00 sec)


mysql>showstatus like"%binlog_cache_use%";

+------------------+-------+

| Variable_name| Value |

+------------------+-------+

| Binlog_cache_use | 2|

+------------------+-------+

1 row in set (0.00 sec)



3max_binlog_size

表示的是二进制日志文件的大小


4sync_binlog

当前的参数是0,说明由系统来控制什么时候同步

mysql> show variables like"%sync_binlog%";

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| sync_binlog| 0|

+---------------+-------+

1 row in set (0.00 sec)

如果这个参数是1,那么每次提交一个事物都会与磁盘同步一次数据

如果这个参数是2,那么每次提交二个事物都会与磁盘同步一次数据



本文转自陈仲阳0 51CTO博客,原文链接:http://blog.51cto.com/wolfword/1287973

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
344
分享
相关文章
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
PHP 日志系统的最佳搭档:一个 Go 写的远程日志收集服务
为了不再 SSH 上去翻日志,我写了个 Go 小脚本,用来接收远程日志。PHP 负责记录日志,Go 负责存储和展示,按天存储、支持 API 访问、可远程管理,终于能第一时间知道项目炸了。
38 10
简单聊聊MySQL的三大日志(Redo Log、Binlog和Undo Log)各有什么区别
在MySQL数据库管理中,理解Redo Log(重做日志)、Binlog(二进制日志)和Undo Log(回滚日志)至关重要。Redo Log确保数据持久性和崩溃恢复;Binlog用于主从复制和数据恢复,记录逻辑操作;Undo Log支持事务的原子性和隔离性,实现回滚与MVCC。三者协同工作,保障事务ACID特性。文章还详细解析了日志写入流程及可能的异常情况,帮助深入理解数据库日志机制。
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
207 90
MySQL日志
本文介绍了MySQL中三个重要的日志:binlog、redolog和undolog。binlog记录数据库更改操作,支持数据恢复、复制和审计;redolog保证事务的原子性和持久性,实现crash-safe;undolog用于事务回滚及MVCC的实现。每个日志都有其独特的作用和应用场景,确保数据库的稳定性和数据一致性。
图解MySQL【日志】——磁盘 I/O 次数过高时优化的办法
当 MySQL 磁盘 I/O 次数过高时,可通过调整参数优化。控制刷盘时机以降低频率:组提交参数 `binlog_group_commit_sync_delay` 和 `binlog_group_commit_sync_no_delay_count` 调整等待时间和事务数量;`sync_binlog=N` 设置 write 和 fsync 频率,`innodb_flush_log_at_trx_commit=2` 使提交时只写入 Redo Log 文件,由 OS 择机持久化,但两者在 OS 崩溃时有丢失数据风险。
60 3
Tomcat log日志解析
理解和解析Tomcat日志文件对于诊断和解决Web应用中的问题至关重要。通过分析 `catalina.out`、`localhost.log`、`localhost_access_log.*.txt`、`manager.log`和 `host-manager.log`等日志文件,可以快速定位和解决问题,确保Tomcat服务器的稳定运行。掌握这些日志解析技巧,可以显著提高运维和开发效率。
85 13
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
50 5
图解MySQL【日志】——Redo Log

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等