MySQL--二进制日志

目录

一、作用

二、binlog配置

1.查看当前配置

2.修改配置文件​

3.binlog配置参数解释

三、binlog记录内容说明

1.记录内容

2.DDL、DCL记录格式

3.DML记录格式

4.记录内容查看

四、bin_log_format 记录模式

1.行模式 Row

2.语句模式  Statement

3.混合模式

五、binlog文件查看

1.show binary logs 查看当前所有binlog文件列表​编辑

2.flush logs 刷新binlog

3.show master status; 查看当前使用的binlog

六、binlog记录单元-event事件

1.event介绍

2.事件的主要结构

3.事件查看

七、binlog日志截取和数据恢复

1.模拟drop环境​

2.截取二进制日志

3.恢复数据

八、binlog日志跨多文件截取    

1.模拟环境

2.分段截取

3.数据恢复

九、GTID模式下的binlog管理

1.介绍

2.开启方式

 3.基于GTID的binlog管理

十、基于GTID模式截取和恢复数据

1.模拟环境

2.利用GTID截取日志

3.恢复数据


一、作用

        记录mysql运行过程中,变更类的语句(DDL,DML,DCL)

        可以用来做数据恢复和主从复制

二、binlog配置

1.查看当前配置

        

2.修改配置文件

3.binlog配置参数解释

server_id 主机ID,主从复制时用来区分不同的节点
log_bin 二进制日志开关,也可以设置binlog存放位置和名称
log_bin_basename 设置binlog存放位置和名称
binlog_format 二进制日志记录格式,默认是row模式
sync_binlog binlog刷新策略,默认为1
gtid_mode
enforce_gtid_consistency

三、binlog记录内容说明

1.记录内容

        记录mysql运行过程中,变更类的语句(DDL,DML,DCL)

2.DDL、DCL记录格式

         statement 语句格式记录,例如:create database

3.DML记录格式

        a)只会记录已经提交的事务语句

        b)记录格式受到bin_log_format影响,可以设置

4.记录内容查看

       在日志文件夹下使用mysqlbinlog命令

       [root@localhost binlog]# mysqlbinlog binlog.000003

       查看DMl语句,基于row模式查看内容

       [root@localhost binlog]# mysqlbinlog --base64-output=decode-rows -vvv binlog.000003

四、bin_log_format 记录模式

1.行模式 Row

        例如:update set name=‘a’ where id<10,行模式记录的是9个数据行每行变化的日志

        日志量相对较大,记录准确

2.语句模式  Statement

        语句模式记录的是update语句本身

        日志量相对较小,记录可能不准确

3.混合模式

五、binlog文件查看

1.show binary logs 查看当前所有binlog文件列表

2.flush logs 刷新binlog

3.show master status; 查看当前使用的binlog

六、binlog记录单元-event事件

1.event介绍

        DDL、DCL:一条语句就是一个事件

        DML:一个事务型操作由多个event构成

                                begin        e1

                                DML1       e2

                                DML2       e3

                                commit     e4

2.事件的主要结构

        开始标记:position

        事件内容 event        

        结束标记:position

3.事件查看

        查看当前使用的binlog文件:show master status

        例如对数据库做了更改:create database yizuo charset utf8mb4;

        查看该事件:show binlog events in 'binlog.000003';

        前两行是默认

        POS是事件起始位置点,End_log_pos是结束位置点

七、binlog日志截取和数据恢复

1.模拟drop环境

2.截取二进制日志-截取到drop那一行的position号(与gtid截取不同)

        查找create database起点:

        [root@localhost binlog]# mysql -e "show binlog events in 'binlog.000003';" | grep "create database yizuo";

        查找drop操作的起点:

        [root@localhost binlog]# mysql -e "show binlog events in 'binlog.000003';" | grep "drop database yizuo";

        截取日志:

        mysqlbinlog --start-position=233 --stop-position=2256 binlog.000003 >/tmp/bin.sql;

3.恢复数据

        set sql_log_bin=0;        设置在恢复的时候不要产生额外的日志了,该设置是会话级别的

        source /tmp/bin.sql;       恢复数据

        set sql_log_bin=1;        设置二进制日志记录

八、binlog日志跨多文件截取    

1.模拟环境

mysql> create database yizuo charset utf8mb4;
Query OK, 1 row affected (0.00 sec)

mysql> use yizuo;
Database changed
mysql> CREATE TABLE `city` (
    ->   `id` int NOT NULL AUTO_INCREMENT COMMENT '编号',
    ->   `name` varchar(100) DEFAULT NULL COMMENT '城市名',
    ->   `province` varchar(100) DEFAULT NULL,
    ->   `population` varchar(100) DEFAULT NULL COMMENT '人口',
    ->   `district` varchar(100) DEFAULT NULL COMMENT 
<think>好的,我现在需要处理用户关于仪器读数识别技术和方法的查询。首先,我得仔细看看用户提供的引用资料,里面提到了YOLO系列算法,特别是YOLOv3、v5、v7和v8。这些资料说明这些模型在仪表盘读数识别中的应用,比如自动识别指针位置,处理工业场景中的仪表数据,以及如何通过目标检测和图像处理技术来获取读数。 用户想知道相关技术和方法,所以我需要将这些信息组织起来,分点说明。首先,可能应该从核心技术开始,比如基于YOLO的目标检测,然后讲图像预处理,再到指针检测和角度计算,接着是数字识别,最后是数据后处理。每个部分都需要结合引用中的内容,比如YOLO的端到端检测、anchor box机制,以及如何应用在仪表识别中。 另外,用户提到的系统都是针对指针型仪表的,所以需要强调指针定位和角度计算的方法,比如边缘检测、霍夫变换,还有极坐标转换。同时,数字仪表的识别可能用到OCR技术,比如Tesseract,这也是需要提到的。 还要注意用户提到的应用场景,比如油田、工厂,以及这些技术如何解决人力效率低下和成本问题。在技术流程部分,可能需要分步骤说明整个识别过程,从图像采集到最终的数据输出。 最后,生成相关问题时要考虑用户可能感兴趣的方面,比如技术对比、优化方法、应用场景和挑战等。确保每个问题都能引导用户进一步了解相关内容,同时基于已有的引用资料,避免超出范围。 需要检查是否有遗漏的技术点,比如是否提到数据后处理中的异常检测和报警机制,这在引用中也有提到。另外,硬件配置和深度学习框架的结合可能也是用户关心的,但引用4提到框架和硬件配置,可能需要简要提及。 确保回答结构清晰,分点明确,使用中文,并且正确引用资料中的信息,比如YOLO的不同版本和它们的特点。同时,数学公式和代码块要按照用户的要求处理,但当前问题中没有涉及数学公式,所以可能不需要添加。不过如果有提到角度计算等,可能需要用行内公式,比如角度θ的计算,但根据用户提供的引用内容,可能这部分不需要数学公式,所以暂时可以不加入。 总之,我需要将引用中的各个技术点整合成逻辑清晰的几个部分,涵盖目标检测、图像处理、指针和数字识别、后处理等,并生成相关问题帮助用户深入探讨。</think>### 仪器读数识别技术方法详解 #### 1. **核心技术:基于YOLO的目标检测** - **YOLO系列算法**(如YOLOv5、YOLOv8)通过端到端的卷积神经网络(CNN)直接定位仪表盘区域和指针位置,实现高效检测。其核心是利用$anchor\ box$机制回归边界框和类别概率,相比传统方法(如RCNN的候选区筛选)速度更快[^5]。 - **应用场景**:适用于油田、工厂等需要实时监测仪表读数的场景,可减少人工巡检成本[^1][^3]。 #### 2. **图像预处理与校准** - **透视校正**:对倾斜拍摄的仪表图像进行几何变换,确保表盘正对摄像头。 - **刻度标定**:通过模板匹配或关键点检测,建立像素坐标与物理量(如压力、温度)的映射关系。例如,若表盘最大量程为$100\ MPa$,则每像素对应$0.1\ MPa$[^4]。 #### 3. **指针检测与角度计算** - **边缘检测**:使用Canny算法提取指针轮廓,结合霍夫变换检测直线。 - **角度回归**:通过YOLO直接输出指针角度$\theta$,或基于检测到的指针端点坐标计算斜率。公式为: $$ \theta = \arctan\left(\frac{y_2 - y_1}{x_2 - x_1}\right) $$ 最终读数由角度与量程比例确定[^5]。 #### 4. **数字仪表识别** - **OCR技术**:对数字式仪表采用Tesseract或CRNN(卷积循环神经网络)识别字符。 - **光照增强**:针对反光、低对比度问题,使用直方图均衡化或Retinex算法优化图像质量。 #### 5. **数据后处理与异常告警** - **阈值判定**:设置安全范围(如$[20\%, 80\%]$量程),超出则触发告警。 - **时序分析**:结合历史数据判断突变异常(如压力骤降),避免误报。 --- ### 技术流程示例 ```python # 伪代码:仪表读数识别流程 image = capture_image() # 图像采集 roi = yolo_detect(image) # YOLO检测仪表区域 calibrated_img = perspective_transform(roi) # 透视校正 pointer_mask = edge_detection(calibrated_img) # 指针分割 angle = calculate_angle(pointer_mask) # 角度计算 reading = angle_to_value(angle) # 转换为物理量 if reading > threshold: send_alert() # 异常告警 ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值