图文结合带你搞懂MySQL日志之Binary log(二进制日志)

Mysql-binlog的查看 binlog日志包括两类文件:二进制日志索引文件(文件名后缀为.index)用于记录所有有效的的二进制文件二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML语句事件binlog是一个二进制文件集合,每个binlog文件以一个4字节的魔数开头,接着是一组Events:魔数:0xfe62696e对应的是0xfebin;Event:每个Event包含header和data两个部分; 阅读详情

往期回顾


6ingvhy40

此篇为图文结合搞懂MySQL日志的最后一篇,MySQL中共有八大日志,其中数据定义语句日志不是给用户查看的,在此篇尾部简单介绍,接下来图文结合系列还会继续推出新文章!

二进制日志(Binary log)

binlog可以说是MySQL中比较重要的日志了,在日常开发及运维过程中,经常会遇到。

binlog即binary log,二进制日志文件,也叫作变更日志(update log)。它记录了数据库所有执行的DDL和DML等数据库更新事件的语句,但是不包含没有修改任何数据的语句(如数据查询语句select、show等)。

它以事件形式记录并保存在二进制文件中。通过这些信息,我们可以再现数据更新操作的全过程。

如果想要记录所有语句(例如,为了识别有问题的查询),需要使用通用查询日志。

Binary log主要应用场景:

  • 一是用于数据恢复,如果MySQL数据库意外停止,可以通过二进制日志文件来查看用户执行了哪些操作,对数据库服务器文件做了哪些修改,然后根据二进制日志文件中的记录来恢复数据库服务器。
  • 二是用于数据复制,由于日志的延续性和时效性,master把它的二进制日志传递给slaves来达到master-slave数据一致的目的。

可以说MySQL数据库的数据备份、主备、单主、多主、MGR都离不开Binary log,需要依靠Binary log来同步数据,保证数据一致性。

图片

查看默认情况

查看记录二进制日志是否开启:在MySQL8中默认情况下,二进制文件是开启的。

mysql>  show variables like '%log_bin%';
+---------------------------------+-----------------------------+
| Variable_name                   | Value                       |
+---------------------------------+-----------------------------+
| log_bin                         | ON                          |  //开关
| log_bin_basename                | /var/lib/mysql/binlog       | // 存放路径
| log_bin_index                   | /var/lib/mysql/binlog.index |
| log_bin_trust_function_creators | ON                          |//  函数创建 
| log_bin_use_v1_row_events       | OFF                         |
| sql_log_bin                     | ON                          |//变更sql记录下来
+---------------------------------+-----------------------------+
6 rows in set (0.01 sec)
  • log_bin_basename:是binlog日志的基本文件名,后面会追加标识来表示每一个文件
  • log_bin_index:是binlog文件的素引文件,这个文件管理了所有的binlog文件的目录
  • log_bin_trust_function_creators:限制存储过程,前面我们已经讲过了,这是因为二进制日志的一个重要功能是用于主从复制,而存储函数有可能导致主从的数据不一致。所以当开启二进制日志后,需要限制存储函数的创建、修改、调用
  • log_bin_use_v1_row_events此只读系统变量已弃用。ON表示使用版本1二进制日志行,OFF表示使用版本2二进制日志行(MySQL5.6的默认值为2)。

日志参数设置

方式 1 :永久性方式

修改MySQL的my.cnf或my.ini文件可以设置二进制日志的相关参数:

[mysqld]
#启用二进制日志
log-bin=atguigu-bin
binlog_expire_logs_seconds= 600
max_binlog_size=100M

提示:

  1. log-bin=mysql-bin

打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径,如:/home/www/mysql_bin_log/mysql-bin

  1. binlog_expire_logs_seconds

此参数控制二进制日志文件保留的时长单位是秒,默认2592000 30天 --14400 4小时;86400 1天; 259200 3天;

  1. max_binlog_size

控制单个二进制日志大小,当前日志文件大小超过此变量时,执行切换动作。此参数的最大和默认值是1GB,该设置并不能严格控制Binlog的大小,尤其是Binlog比较靠近最大值而又遇到一个比较大事务时,为了保证事务的完整性,可能不做切换日志的动作只能将该事务的所有SQL都记录进当前日志,直到事务结束。一般情况下可采取默认值。

设置带文件夹的bin-log日志存放目录

如果想改变日志文件的目录和名称,可以对my.cnf或my.ini中的log_bin参数修改如下:

[mysqld]
log-bin="/var/lib/mysql/binlog/atguigu-bin"

注意:新建的文件夹需要使用mysql用户,使用下面的命令即可。

chown -R -v mysql:mysql binlog

提示 数据库文件最好不要与日志文件放在同一个磁盘上!这样,当数据库文件所在的磁盘发生故障时,可以使用日志文件恢复数据。

方式 2 :临时性方式

如果不希望通过修改配置文件并重启的方式设置二进制日志的话,还可以使用如下指令,需要注意的是在mysql 8 中只有会话级别的设置,没有了global级别的设置。

# global 级别
mysql> set global sql_log_bin= 0 ;
ERROR 1228 (HY000): Variable 'sql_log_bin' is a SESSION variable and can`t be used
with SET GLOBAL

# session级别
mysql> SET sql_log_bin = 0 ;
Query OK, 0 rows affected (0.01 秒)

查看日志

当MySQL创建二进制日志文件时,先创建一个以“filename”为名称、以“.index”为后缀的文件,再创建一个以“filename”为名称、以“.000001”为后缀的文件。

MySQL服务重新启动一次,以“.000001”为后缀的文件就会增加一个,并且后缀名按 1 递增。即日志文件的数与MySQL服务启动的次数相同;如果日志长度超过了max_binlog_size的上限(默认是1GB),就会创建一个新的日志文件。

查看当前的二进制日志文件列表及大小。指令如下:

mysql> SHOW BINARY LOGS;
+--------------------+-----------+-----------+
| Log_name           | File_size | Encrypted |
+--------------------+-----------+-----------+
| atguigu-bin.000001 | 156       | No        |
+--------------------+-----------+-----------+
1 rows in set (0.00 sec)

所有对数据库的修改都会记录在binglog中。但binlog是二进制文件,无法直接查看,借助mysqlbinlog命令工具了。指令如下:在查看执行,先执行一条sQL语句,如下

update student set name='张三_back' where id=1;
[root@localhost ~]$ cd /var/lib/mysql
[root@localhost ~]$ mysqlbinlog  "/var/lib/mysql/lqhdb-binlog.000001"

执行结果可以看到,这是一个简单的日志文件,日志中记录了用户的一些操作,这里并没有出现具体的SQL语句,这是因为binlog关键字后面的内容是经过编码后的二进制日志。

这里一个update语句包含如下事件

  • Query事件负责开始一个事务(BEGIN)
  • Table_map事件负责映射需要的表
  • Update_rows事件负责写入数据
  • Xid事件负责结束事务

下面命令将行事件以伪SQL的形式表现出来

mysqlbinlog -v "/var/lib/mysql/binlog/test.000002"

前面的命令同时显示binlog格式的语句,使用如下命令不显示它

mysqlbinlog -v --base64-output=DECODE-ROWS "/var/lib/mysql/binlog/test.000002"

关于mysqlbinlog工具的使用技巧还有很多,例如只解析对某个库的操作或者某个时间段内的操作等。简单分享几个常用的语句,更多操作可以参考官方文档。

# 可查看参数帮助
mysqlbinlog --no-defaults --help

# 查看最后 100 行
mysqlbinlog --no-defaults --base64-output=decode-rows -vv atguigu-bin.000002 |tail - 100

# 根据position查找
mysqlbinlog --no-defaults --base64-output=decode-rows -vv atguigu-bin.000002 |grep -A 
20 '4939002'

上面这种办法读取出binlog日志的全文内容比较多,不容易分辨查看到pos点信息,下面介绍一种更为方便的查询命令:

mysql> show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];
  • IN 'log_name':指定要查询的binlog文件名(不指定就是第一个binlog文件)
  • FROM pos:指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算)
  • LIMIT [offset]:偏移量(不指定就是 0 )
  • row_count :查询总条数(不指定就是所有行)

上面这条语句可以将指定的binlog日志文件,分成有效事件行的方式返回,并可使用limit指定pos点的起始偏移,查询条数。其它举例:

#a、查询第一个最早的binlog日志:
show binlog events\G ;

#b、指定查询mysql-bin.088802这个文件
show binlog events in 'atguigu-bin. 008002'\G;

#c、指定查询mysql-bin. 080802这个文件,从pos点:391开始查起:
show binlog events in 'atguigu-bin.008802' from 391\G;

#d、指定查询mysql-bin.000802这个文件,从pos点:391开始查起,查询5条(即5条语句)
show binlog events in 'atguigu-bin.000882' from 391 limit 5\G

#e、指定查询 mysql-bin.880002这个文件,从pos点:391开始查起,偏移2行〈即中间跳过2个)查询5条(即5条语句)。
show binlog events in 'atguigu-bin.088882' from 391 limit 2,5\G;

binlog格式查看

mysql> show variables like 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   | //行格式
+---------------+-------+
1 rows in set (0.00 sec)

除此之外,binlog还有 2 种格式,分别是Statemen和Mixed

  • Statement 每一条会修改数据的sql都会记录在binlog中。 优点:不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。
  • Row 5.1.5版本的MySQL才开始支持row level 的复制,它不记录sql语句上下文相关信息,仅保存哪条记录被修改。 优点:row level 的日志内容会非常清楚的记录下每一行数据修改的细节。而且不会出现某些特定情况下的存储过程,或function,以及trigger的调用和触发无法被正确复制的问题。
  • Mixed 从5.1.8版本开始,MySQL提供了Mixed格式,实际上就是Statement与Row的结合。

使用日志恢复数据

mysqlbinlog恢复数据的语法如下:

mysqlbinlog [option] filename|mysql –uuser -ppass;

这个命令可以这样理解:使用mysqlbinlog命令来读取filename中的内容,然后使用mysql命令将这些内容恢复到数据库中。

  • filename:是日志文件名。

  • option:可选项,比较重要的两对option参数是–start-date、–stop-date 和 --start-position、–stop-position。

    • –start-date 和 - -stop-date:可以指定恢复数据库的起始时间点和结束时间点。
    • –start-position和–stop-position:可以指定恢复数据的开始位置和结束位置。

注意:使用mysqlbinlog命令进行恢复操作时,必须是编号小的先恢复,例如atguigu-bin.000001必须在atguigu-bin.000002之前恢复。

flush logs; #可以生成新的binLog 文件,不然这个文件边恢复边变大是不行的。

show binary logs; # 显示有哪些binLog 文件

恢复数据

mysqlbinlog [option] filename|mysql –uuser -ppass;

mysqlbinlog --no-defaults  --start-position=236  --stop-position=1071 --database=my_db1 /var/lib/mysql/lqhdb-bin.000002 | /usr/bin/mysql -root -p123456 -v my_db1

删除二进制日志

MySQL的二进制文件可以配置自动删除,同时MySQL也提供了安全的手动删除二进制文件的方法。PURGE MASTER LOGS只删除指定部分的二进制日志文件,RESET MASTER删除所有的二进制日志文件。具体如下:

1.PURGE MASTER LOGS:删除指定日志文件

PURGE MASTER LOGS语法如下:

PURGE {MASTER | BINARY} LOGS TO ‘指定日志文件名’

PURGE {MASTER | BINARY} LOGS BEFORE ‘指定日期’

举例 :使用PURGE MASTER LOGS语句删除创建时间比binlog.000005早的所有日志

(1)多次重新启动MysSQL服务,便于生成多个日志文件。然后用SHOW语句显示二进制日志文件列表

SHOW BINARY LOGS;

(2)执行PURGE MASTER LOGS语句删除创建时间比binlog.000005早的所有日志

PURGE MASTER LOGS T0 "binlog. 000005";

(3)显示二进制日志文件列表

SHGW BINARY LOGS;

举例:使用PURGE MASTER LOGS语句删除2023年3月17日前创建的所有日志文件。具体步骤如下:

(1) 显示二进制日志文件列表

SHOW BINARY LOGS;

(2)执行mysqlbinlog命令查看二进制日志文件binlog.000005的内容

mysqlbinlog --no-defaults "/var/lib/mysql/binlog/atguigu-bin.000005"

(3)使用PURGE MASTER LOGS语句删除2023年3月17日前创建的所有日志文件

PURGE MASTER LOGS before "20220317";

(4)显示二进制日志文件列表

SHOW BINARY LOGS;

2022年01月05号之前的二进制日志文件都已经被删除,最后一个没有删除,是因为当前在用,还未记录最后的时间,所以未被删除。

2.RESET MASTER:删除所有二进制日志文件

reset master;

其它场景

二进制日志可以通过数据库的全量备份和二进制日志中保存的增量信息,完成数据库的无损失恢复。但是,如果遇到数据量大、数据库和数据表很多(比如分库分表的应用)的场景,用二进制日志进行数据恢复,是很有挑战性的,因为起止位置不容易管理。

在这种情况下,一个有效的解决办法是配置主从数据库服务器,甚至是一主多从的架构,把二进制日志文件的内容通过中继日志,同步到从数据库服务器中,这样就可以有效避免数据库故障导致的数据异常等问题。

深入理解二进制日志

写入机制

binlog的写入时机也非常简单,事务执行过程中,先把日志写到binlog cache,事务提交的时候,再把binlog cache写到binlog文件中。因为一个事务的binlog不能被拆开,无论这个事务多大,也要确保一次性写入,所以系统会给每个线程分配一个块内存作为binlog cache。

我们可以通过binlog_cache_size参数控制单个线程binlog cache大,如果存储内容超过了这个参数,就要暂存到磁盘(Swap)。binlog日志刷盘流程如下:

图片

上图的write,是指把日志写入到文件系统的page cache,并没有把数据持久化到磁盘,所以速度比较快。

上图的fsync,才是将数据持久化到磁盘的操作

write和fsync的时机,可以由参数sync_binlog控制,默认是 0 。

为 0 的时候,表示每次提交事务都只write,由系统自行判断什么时候执行fsync。虽然性能得到提升,但是机器宕机,page cache里面的binglog 会丢失。如下图:图片

为了安全起见,可以设置为 1 ,表示每次提交事务都会执行fsync,就如同 redo log 刷盘流程 一样。最后还有一种折中方式,可以设置为N(N>1),表示每次提交事务都write,但累积N个事务后才fsync。

图片

在出现IO瓶颈的场景里,将sync_binlog设置成一个比较大的值,可以提升性能。同样的,如果机器宕机,会丢失最近N个事务的binlog日志。

binlog与redolog对比

  • redo log 它是物理日志,记录内容是“在某个数据页上做了什么修改”,属于 InnoDB 存储引擎层产生的。

  • 而 binlog 是逻辑日志,记录内容是语句的原始逻辑,类似于“给 ID=2 这一行的 c 字段加 1”,属于MySQL Server 层

  • 虽然它们都属于持久化的保证,但是则重点不同。

    • redo log让InnoDB存储引擎拥有了崩溃恢复能力。
    • binlog保证了MySQL集群架构的数据一致性。

Enjoy GreatSQL :)

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

image

社区有奖建议反馈: https://greatsql.cn/thread-54-1-1.html

社区博客有奖征稿详情: https://greatsql.cn/thread-100-1-1.html

社区2022年度勋章获奖名单: https://greatsql.cn/thread-184-1-1.html

(对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~)

技术交流:

image-20221030163217640

MySql运维篇---008:日志:错误日志、二进制日志、查询日志、慢查询日志,主从复制:概述 虚拟机更改ip注意事项、原理、搭建步骤 二进制日志(BINLOG)记录了所有的 DDL(数据定义语言:创建数据库…)语句和 DML(数据操纵语言:增删改)语句,但不包括数据查询(SELECT、SHOW)语句。①. 灾难时的数据恢复;因为二进制日志中记录了数据库、表、以及数据的变更。只需要把这里面的语句再次执行就可以恢复数据了。②. MySQL的主从复制。在MySQL8版本中主从复制底层原理就是基于二进制日志的,具体查看下一章。 阅读详情

相关推荐

Windows下MySQL 8.0 ZIP版极简安装与故障排查指南

MySQL是一种广泛使用的关系型数据库管理系统,其安装过程常因环境差异、配置模糊和权限问题导致失败。理解Windows服务机制、my.ini配置原理及mysqld初始化流程,是实现稳定部署的技术基础。通过显式指定datadir路径、ANSI编码配置文件、管理员权限执行初始化与服务注册,可显著提升安装成功率。该方案规避MSI向导黑盒与Web Installer网络依赖,适用于教学实训、开发环境快速搭建及轻量生产部署等场景,特别契合‘mysql8.0安装教程’‘mysql下载安装教程’等高频搜索需求。

weixin_33827731的博客 387

MySql日志(一)二进制日志

二进制日志

jinhf10的博客 2634

Windows下Hive 3.1.3与Hadoop 3.3.6集成MySQL元数据库:手把手搭建本地开发环境

数据仓库技术是处理海量结构化数据的核心方案,其基本原理是通过类SQL接口对分布式存储系统中的数据进行查询与分析,从而降低大数据处理的技术门槛。Hive作为Hadoop生态中经典的数据仓库工具,通过将HiveQL转换为MapReduce或Spark任务,实现了传统数据库开发人员向大数据平台的平滑过渡。其技术价值在于平衡了易用性与扩展性,使得在数据湖架构上进行数据探索、ETL和即席查询成为可能。典型的应用场景包括日志分析、用户行为分析和历史数据报表生成。本文聚焦于Hive的本地开发环境搭建,针对Windows平

weixin_34007906的博客 409

mysql 二进制日志

show variables like 'log_bin%'; 打开二进制日志: vi /etc/my.cnf --添加: log_bin=/data/mysql/binlogs/s1 server_id=10 显示服务器的所有二进制日志 show master logs; show binary logs; 执行命令show master status; 以获取当前的二进制日志位置。 ...

j_ychen的博客 488

MongoDB文档模型与聚合管道实战:现代应用数据架构指南

MongoDB是一种面向现代应用的文档型数据库,其核心在于以JSON-like BSON格式存储自包含、可变结构的数据单元,摆脱传统关系型数据库的刚性表结构约束。它基于WiredTiger存储引擎实现高效读写,并通过原生支持嵌套、内嵌关联与动态schema,显著提升迭代效率与查询性能。技术价值体现在敏捷建模、免JOIN聚合、高并发承载与弹性伸缩能力,广泛应用于电商中台、IoT平台、实时推荐及SaaS多租户等场景。本文聚焦文档建模思维跃迁、精准索引设计与聚合管道实战,深入解析从本地开发到Atlas生产部署的全

weixin_33725807的博客 308

大厂Python自动化测试面试题合集

题目:函数的作用是什么?调用函数的语法?答案:将独立功能代码封装成模块,复用代码;函数名(实参)。题目:函数 return 作用是什么?无 return 时函数返回什么?多返回值底层是什么类型?答案:返回函数执行结果;无 return 默认返回 None;return x,y,z 底层自动封装为元组。题目:函数四大参数类型分别是什么?定义顺序要求?答案:必选参数、默认参数、可变位置 * args、命名关键字、可变关键字 **kwargs;顺序:必选→默认→*args→命名关键字→**kwargs。

悦分享 104

MySQL--二进制日志

DDL、DCL:一条语句就是一个事件DML:一个事务型操作由多个event构成5.6以后加入了GTID功能,用来唯一标识事件和事务,GTID具有幂等性GLOBAL TRANSTATION ID 全局事务唯一编号,是从1开始有序生成的表现方式:server_uuid:TID (server_uuid是在第一次初始化,启动数据库时,自动生成的,存于/data/auto.cnf中,一旦被删除或修改,下次重启数据库会重置)DDL、DCL操作:一个事件记录一个GTIDDML:一个完整事务记录一个GTID。

数据库学习ing 1546

Visual Studio 2013 + Intel(R) Visual Fortran 安装教程

安装了好几遍,ivf都不能加载到vs中,中途放弃了vs,又改用codeblocks编译器,依然在写fortran的时候出现了各种问题,于是又放弃了codeblocks改回vs,总之是折腾了好久,终于装明白了ivf并且将fortran模板成功加载到vs中。 PS:一定要安装Intel Visual Fortran.Composer XE.2013-SP1,不要用Intel Visual Fortr...

Coco_wjy的博客 12万+

MySQL日志 - Binary log二进制日志介绍

MySQL日志历史文章,《MySQL日志 - Slow Query Log慢查询日志》《MySQL日志 - Undo和Redo日志》《MySQL日志 - Undo回滚日志的介绍》《MySQL日志 - Relay Log中继日志的介绍》《MySQL日志 - Redo Log重做日志》《MySQL日志 - Error Log错误日志》《MySQL日志 - General Query Log》根据社群发...

bisal的专栏 715

静态与动态LACP链路聚合:原理、配置与排错实战指南

链路聚合技术是提升网络带宽与可靠性的核心方案,通过将多个物理端口逻辑捆绑,实现带宽叠加与链路冗余。其原理基于IEEE 802.3ad标准,通过负载均衡算法将数据流分布到不同物理链路,既避免了数据包乱序,又提升了整体吞吐量。该技术的核心价值在于消除单端口瓶颈、提供毫秒级故障切换,并能简化网络拓扑管理。在企业服务器接入、数据中心互联及虚拟化平台等场景中,链路聚合已成为构建高可用网络的基础。实践中,动态LACP模式通过协议报文协商,能主动检测链路故障并防止配置错误导致的网络环路,相比静态聚合更为可靠。本文将深入解

weixin_31412781的博客 268

【RDMA】13. RDMA之用户态与内核态交互

原文:https://zhuanlan.zhihu.com/p/346708569 在“RDMA之Verbs”一文中我们说道,Verbs API分为用户态和内核态,分别以ibv_和ib_作为前缀。RDMA技术的最大的优势就在于用户态可以绕过内核,直接控制硬件收发数据,减少了系统调用和内存拷贝次数,所以大部分的RDMA应用都是用户态应用,即使用以ibv_为前缀的用户态Verbs API。 但是并非所有的用户态Verbs API都可以完全绕开内核,本文中我来讲解一下哪些API依赖于内核RDMA子系统(包括驱

我的笔记本 4285

Linux上使用MySQL的Binary Log(实践篇)(图文详解)

1、安装mysql并启动mysql (参照菜鸟教程:http://www.runoob.com/mysql/mysql-install.html) # 安装MySQL wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch....

游笑天涯 782

ADS1293心电图模块实战:从电极贴片到信号采集的全流程指南

本文提供了一份基于TI ADS1293芯片的心电图采集系统全流程实战指南。文章深入探讨了从电极贴片选择与皮肤预处理、ADS1293前端配置(包括PGA、RLD和威尔逊网络),到PCB布局、电源去耦以及固件滤波与运动伪影处理等关键环节,旨在帮助硬件工程师和嵌入式开发者构建稳定可靠的可穿戴心电监测设备。

weixin_29201313的博客 384

mysql主从复制搭建中几种log和pos详解

主从复制是一个老话题了,这里不就不说主从复制的细节了,重点讲下关于show slave status\G 中几种日志和位置的区别; 首先截个图方便讲解: 图中那么多参数,更重要的是单是*log,*pos就好几个,怎么区分呢,各自又代表什么意义呢? 我们先来讲下主从复制的原理: 一、主从原理 Replication 线程    Mysql的 Replication 是

学无涯,愈进而愈惘 1万+

单相全桥逆变三种SPWM调制方式(单极/双极/倍频)到底怎么选?一篇讲透优缺点与选型

本文深入解析单相全桥逆变器中单极性、双极性和单极性倍频三种SPWM调制方式的原理与工程选型策略。通过对比开关损耗、谐波特性和驱动复杂度等关键指标,提供基于STM32的实战方案和选型框架,帮助工程师在新能源发电、电机驱动等应用中做出最优决策。

weixin_34046298的博客 807

数据标注的下一代SOP,可能不是Word,而是一段Prompt

再给几个反例:“这个只是正常纹理,不算。真正用于数据生产的Prompt,可能至少包含:任务定义、正例、反例、边界案例、优先级、输出格式、验收逻辑。一个项目100个人,如果100个人对这句话有100种理解,最后返工的就不是一个框,而可能是几十万帧数据。一个项目启动以后,项目经理先研究SOP,培训组长,组长再培训标注员,最后几百个人按照同一套规则干活。实际上一个成熟的项目经理,最重要的能力之一,就是:把客户的业务语言翻译成生产规则。真正让项目难交付的,从来不是80%的普通数据,而是那20%的长尾数据。

AI数据标注猿 296

linux以binary形式get文件,详解linux采用binary方式安装mysql

本文主要为大家详细介绍了linux采用binary方式安装mysql步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。1、下载binary文件在官网上下载 mysql-5.6.36-linux-glibc2.5-i686.tar.gz.2、解压文件并移动到/usr/local/mysql目录下tar -zxvf mysql-5.6.36-linux-glibc2.5-i68...

weixin_26850469的博客 698

【入门AUTOSAR网络管理测试】CANoe测试T_WakeUp时间

随着智能电动汽车行业的快速发展,目前AUTOSAR网络管理也得到了广泛应用,AUTOSAR网络管理测试也是汽车网络测试中非常重要的环节,NM问题导致的汽车ECU不能唤醒、电瓶亏电等问题,对于新入门AUTOSAR网络管理测试的同学不清楚如何开展测试,那么本章节就主要给大家介绍网络管理中T_WakeUp时间如何测试。【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读。

测试领域技术分享 2135

我不小心把生产的数据改错了!同事帮我用MySQL的BinLog挽回了罚款

之前在生产做修改数据的时候不小心改错了一行数据,本来以为会被通报批评,但是同事利用binlog日志查看到了之前的旧数据,并且帮我回滚了,学到了,所以写了一篇binlog的文章分享给大家。MySQL的Binary Log(简称binlog)是一种重要的数据库日志系统,用于记录数据库服务器上所有更改数据的活动。Binlog是MySQL数据库中的一种的日志文件,它主要记录了对数据库数据进行修改的所有操作事件。

编码人生 947

SAP-ABAP:SAP数据库视图的创建图文详解

在“短文本”字段中输入视图的描述。在“表/视图”字段中输入要基于的表名。如果视图基于多个表,可以在这里输入主表。点击“表/视图字段”按钮,选择要包含在视图中的字段。如果视图基于多个表,点击“关系”按钮来定义表之间的连接条件。在弹出的窗口中,选择要连接的表,并定义连接条件(例如。

baidu_35680696的博客 973

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【2026最新全网最细】MySQL卸载、下载、安装、配置、使用全流程图文解析、和细节讲解(保姆级教学)

MySQL数据库的完全卸载和安装配置流程。包含卸载,下载安装器、自定义安装和配置,重点讲解了配置环节的8个关键设置项,包括认证方式、账户权限、日志选项等。最后提供了环境变量配置和安装验证方法。

qq_69719414的博客 1762

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

通用:MySQL-主从同步之BinaryLog

线程所在节点核心职责常见问题排查点Dump线程主库推送BinaryLog给从库,维护主从连接主库看是否有“Binlog Dump”线程IO线程从库接收BinaryLog,写入中继日志从库看是否为YesSQL线程从库解析中继日志,执行SQL变更从库看是否为Yes。

weixin_45149504的博客 1232

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

主从复制和读写分离

1.前言2.主从复制2.1MySQL的复制类型2.2MySQL主从复制的过程2.3实现主从复制配置MHA 1.前言 在生产环境中,成熟的业务员通常数据量都非常的大,那么导致了单台MySQL数据库的安全性、高可用性和高并发方面都无法满足数据量很大的实际需求,所以我们可以配置多台主从数据库服务器以实现读写分离。 2.主从复制 2.1MySQL的复制类型 基于语句的复制 基于行的复制 混合类型的复制 2.2MySQL主从复制的过程 1、Master将用户对数据库更新的操作以二进制格式保存到Binary Lo.

weixin_56422027的博客 493

Agent Loop:代码智能体的核心运行范式解析

Agent Loop 是一种基于大模型的代码智能体(Code Agent)运行架构,其本质是将复杂编程任务建模为规划(Plan)、执行(Act)、观测(Observe)、反思(Reflect)的闭环控制过程。它突破了传统代码补全工具的单次响应局限,通过结构化状态机与可验证工具链,实现对真实开发环境的持续交互与自主纠错。技术价值在于提升模糊需求下的端到端解决能力、增强错误可追溯性,并支持本地IDE深度集成。典型应用场景包括数据库迁移、遗留系统重构、自动化测试生成等工程实践。本文聚焦 queryLoop 状态机

cuml0912的博客 631

安装 MongoDB、与SQL语法对比、Python (异步)操作 mongodb:增、删、改、查

安装 MongoDB、与SQL语法对比、Python (异步)操作 mongodb:增、删、改、查

freeking101的博客 8714
上一篇: GreatSQL 8.0.32-24 今日发布
下一篇: MySQL Router高可用搭建
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值