当前位置: 首页 > news >正文

MySQL 9从入门到性能优化-二进制日志

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客

《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com)

MySQL9数据库技术_夏天又到了的博客-CSDN博客

二进制日志主要记录MySQL数据库的变化,以一种有效的格式并且是事务安全的方式包含更新日志中可用的所有信息。二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的语句。语句以“事件”的形式保存,描述数据的更改。此外,二进制日志还包含每个更新数据库的语句的执行时间信息。

二进制日志不包含没有修改任何数据的语句。如果想要记录所有语句(例如,为了识别有问题的查询),需要使用通用查询日志。使用二进制日志的主要目的是最大可能地恢复数据库,因为二进制日志包含备份后进行的所有更新。本节将介绍二进制日志的相关内容。

12.2.1  启动和设置二进制日志

默认情况下,二进制日志是开启的,可以通过修改MySQL的配置文件来启动和设置二进制日志。

在my.ini中配置文件中的[mysqld]组下面有关于二进制日志的设置:

log-bin [=path/ [filename] ]

log-bin定义开启二进制日志;path表明日志文件所在的目录路径;filename指定日志文件的名称,如文件的全名为“filename.000001”“filename.000002”等。除此之外,还有一个名称为“filename.index”的文件,文件内容为所有日志的清单,可以使用记事本打开该文件。

添加以下几个参数与参数值:

[mysqld]
log-bin
expire_logs_days = 10
max_binlog_size = 100M
  • expire_logs_days定义MySQL清除过期日志的时间,即二进制日志自动删除的天数。默认值为0,表示不自动删除。当MySQL启动或刷新二进制日志时,操作系统可能会删除过期的二进制日志文件。
  • max_binlog_size定义单个文件的大小限制,如果二进制日志写入的内容大小超出了给定值,日志就会发生滚动(关闭当前文件,重新打开一个新的日志文件)。不能将该变量设置为大于1GB或小于4096B,默认值是1GB。

添加完毕之后,关闭并重新启动MySQL服务进程,即可打开二进制日志,然后可以通过SHOW VARIABLES语句来查询日志设置。

【例12.1】使用SHOW VARIABLES语句查询日志设置,执行的语句及结果如下:

mysql> SHOW VARIABLES LIKE 'log_%' ;
+--------------------------------------+-----------------------------------------+
|Variable_name                         | Value                                          |
+--------------------------------------+-----------------------------------------+
|log_bin                               | ON                                              |
|log_bin_basename                      | D:\ProgramData\MySQL\MySQL Server 9.0\Data\X0NHUNO7YDZVSSI-bin           |
|log_bin_index                         |D:\ProgramData\MySQL\MySQL Server 9.0\Data\X0NHUNO7YDZVSSI-bin.index       |
|log_bin_trust_function_creators       |OFF                                           |
|log_bin_use_v1_row_events             | OFF                                               |
|log_error| .\X0NHUNO7YDZVSSI.err      |
|log_error_services                    |log_filter_internal;log_sink_internal       |
|log_error_suppression_list            |                                                   |
|log_error_verbosity                   |2                                                 |
|log_output                            | FILE                                             |
|log_queries_not_using_indexes         |OFF                                              |
|log_slave_updates                     |ON                                               |
|log_slow_admin_statements             |OFF                                              |
|log_slow_slave_statements             |OFF                                              |
|log_statements_unsafe_for_binlog      |ON                                           |
|log_throttle_queries_not_using_indexes|0                                     |
|log_timestamps                        | UTC                                              |
+--------------------------------------+-----------------------------------------+

通过上面的查询结果可以看出,log_bin变量的值为ON,表明二进制日志已经打开。MySQL重新启动之后,读者可以在自己的计算机上的MySQL数据文件夹下面看到新生成的文件后缀为“.000001”和“.index”的两个文件,文件名称为默认主机名称。例如,在笔者的计算机上,文件名称为“X0NHUNO7YDZVSSI-bin.000001”和“X0NHUNO7YDZVSSI-bin.index”。

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

12.2.2  查看二进制日志

MySQL二进制日志是经常用到的,它存储了所有的变更信息。当MySQL创建二进制日志文件时,先创建一个以“filename”为名称、以“.index”为后缀的文件,再创建一个以“filename”为名称、以“.000001”为后缀的文件。MySQL服务重新启动一次,以“.000001”为后缀的文件会增加一个,并且后缀名加1递增;如果日志长度超过了max_binlog_size的上限(默认是1GB),就会创建一个新的日志文件。

SHOW BINARY LOGS语句可以查看当前的二进制日志文件的个数及其名称。MySQL二进制日志并不能直接查看,如果要查看日志内容,可以使用mysqlbinlog命令。

【例12.2】使用SHOW BINARY LOGS查看二进制日志文件的个数及其名称,SQL语句  如下:

mysql> SHOW BINARY LOGS;
+----------------------------+-----------+ -----------+
| Log_name                   | File_size | Encrypted  +
+----------------------------+-----------+ -----------+
| X0NHUNO7YDZVSSI-bin.000001 |     178   | No         |
+----------------------------+-----------+ -----------+
1 row in set (0.00 sec)

可以看到,当前只有一个二进制日志文件。日志文件的个数与MySQL服务启动的次数相同。每启动一次MySQL服务,就会产生一个新的日志文件。

【例12.3】使用mysqlbinlog查看二进制日志,SQL语句如下:

C:\> mysqlbinlog D:/mysql/log/binlog.000001
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#190130 15:27:48 server id 1  end_log_pos 107   Start: binlog v 4, server v 9.0.1-log created 160330
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '
9JBcTg8BAAAAZwAAAGsAAAABAAQANS41LjEzLWxvZwAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAA
AAAAAAAAAAAAAAAAAAD0kFxOEzgNAAgAEgAEBAQEEgAAVAAEGggAAAAICAgCAA==
'/*!*/;
# at 107
#190330 15:34:17 server id 1  end_log_pos 175   Query   thread_id=2     exec_time=0     
error_code=0
SET TIMESTAMP=1314689657/*!*/;
SET @@session.pseudo_thread_id=2/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, 
@@session
SET @@session.sql_mode=0/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_
offset=1/*!*/;
/*!\C gb2312 *//*!*/;
SET @@session.character_set_client=24,@@session.collation_connection=24,
@@session.collation_server=24/
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 175
#190330 15:34:17 server id 1  end_log_pos 289   Query   thread_id=2     exec_time=0     
error_code=0
use test/*!*/;
SET TIMESTAMP=1314689657/*!*/;
UPDATE fruits set f_price = 5.00  WHERE f_id = 'a1'
/*!*/;
# at 289
#190330 15:34:17 server id 1  end_log_pos 316   Xid = 14
COMMIT/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

这是一个简单的日志文件,记录了一些用户的操作。从文件内容中可以看到,用户对表fruits进行了更新操作,语句为“UPDATE fruits set f_price = 5.00  WHERE f_id = 'a1';”。

12.2.3  删除二进制日志

MySQL的二进制日志文件可以配置为自动删除,但也提供了安全的手动删除二进制日志文件的方法:RESET MASTER删除所有的二进制日志文件;PURGE MASTER LOGS只删除部分二进制日志文件。本小节将介绍这两种删除二进制日志文件的方法。

1. 使用RESET MASTER语句删除所有二进制日志文件

RESTE MASTER语法如下:

RESET MASTER;

执行完该语句后,所有二进制日志文件将被删除,MySQL会重新创建二进制日志文件,新的日志文件扩展名将重新从000001开始编号。

2. 使用PURGE MASTER LOGS语句删除指定二进制日志文件

PURGE MASTER LOGS 语法如下:

PURGE {MASTER | BINARY} LOGS TO 'log_name'
PURGE {MASTER | BINARY} LOGS BEFORE 'date'

第一种方法指定文件名,执行该语句将删除文件编号比指定文件编号小的所有二进制日志文件。第二种方法指定日期,执行该语句将删除指定日期以前的所有二进制日志文件。

【例12.4】使用PURGE MASTER LOGS删除创建时间比X0NHUNO7YDZVSSI-bin.000003早的所有二进制日志文件。

为了演示语句的操作过程,准备多个日志文件,读者可以对MySQL服务进行多次重新启动。例如,这里有3个二进制日志文件:

mysql> SHOW BINARY LOGS;
+----------------------------+-----------+ -----------+
| Log_name                   | File_size | Encrypted  +
+----------------------------+-----------+------------+
| X0NHUNO7YDZVSSI-bin.000001 |     178   | No         |
| X0NHUNO7YDZVSSI-bin.000002 |     641   | No         |
| X0NHUNO7YDZVSSI-bin.000003 |     345   | No         |
+----------------------------+-----------+------------+
3 rows in set (0.00 sec)

执行删除命令:

mysql> PURGE MASTER LOGS TO " X0NHUNO7YDZVSSI-bin.000003";
Query OK, 0 rows affected (0.07 sec)

执行完成后,使用SHOW binary logs语句查看二进制日志:

mysql> SHOW binary logs;
+----------------------------+-----------+
| Log_name                   | File_size |
+----------------------------+-----------+
| X0NHUNO7YDZVSSI-bin.000003 |     345   |
+----------------------------+-----------+
1 rows in set (0.00 sec)

可以看到,X0NHUNO7YDZVSSI-bin.000001、X0NHUNO7YDZVSSI-bin 000002两个二进制日志文件被删除了。

【例12.5】使用PURGE MASTER LOGS删除2024年7月30日前创建的所有二进制日志文件,SQL语句及结果如下:

mysql> PURGE MASTER LOGS BEFORE '20240730';
Query OK, 0 rows affected (0.05 sec)

语句执行之后,2024年7月30日之前创建的二进制日志文件都将被删除,但2024年7月30日的日志会被保留(读者可根据自己计算机中创建日志的时间修改命令参数)。使用mysqlbinlog可以查看指定日志的创建时间,如【例12.3】所示,部分日志内容如下:

/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#240730 15:27:48 server id 1  end_log_pos 107   Start: binlog v 4, server v 9.0.1-log created 160330
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '

其中,240730为日志创建的时间,即2024年7月30日。

12.2.4  使用二进制日志恢复数据库

如果MySQL服务器启用了二进制日志,那么当数据库意外丢失数据时,可以使用mysqlbinlog工具从指定的时间点开始(例如,最后一次备份),直到现在或另一个指定的时间点的日志中恢复数据。

要想使用二进制日志恢复数据,需要知道当前二进制日志文件的路径和文件名,一般可以从配置文件(my.cnf或者my.ini,文件名取决于MySQL服务器的操作系统)中找到路径。

mysqlbinlog恢复数据的语法如下:

mysqlbinlog [option] filename |mysql –uuser -ppass

option是一些可选的选项,filename是日志文件名。比较重要的两对option参数是--start-date与--stop-date、--start-position与--stop-position。--start-date与--stop-date可以指定恢复数据库的起始时间点和结束时间点。--start-position与--stop-position可以指定恢复数据库的开始位置和结束位置。

【例12.6】使用mysqlbinlog恢复MySQL数据库到2024年7月30日15:27:48时的状态,执行命令及结果如下:

mysqlbinlog --stop-date="2024-07-30 15:27:48" D:\mysql\log\binlog\ X0NHUNO7YDZVSSI-bin.000003 | mysql –uuser –ppass

该命令执行成功后,会根据X0NHUNO7YDZVSSI-bin.000003日志文件恢复2024年7月30日15:27:48以前的所有操作。这种方法对于因意外操作而导致的数据丢失非常有效,比如因操作不当误删了数据表。

12.2.5  暂时停止二进制日志功能

如果在MySQL的配置文件中配置启动了二进制日志,那么MySQL会一直记录二进制日志。如果想停止记录二进制日志,可以修改配置文件,但是需要重启MySQL数据库。为此,MySQL提供了暂时停止记录二进制日志的功能:通过SET SQL_LOG_BIN语句可以使MySQL暂停或者启动二进制日志。

SET SQL_LOG_BIN的语法如下:

SET sql_log_bin = {0|1}

执行如下语句将暂停记录二进制日志:

mysql> SET sql_log_bin = 0;
Query OK, 0 rows affected (0.00 sec)

执行如下语句将恢复记录二进制日志:

mysql> SET sql_log_bin = 1;
Query OK, 0 rows affected (0.00 sec)

相关文章:

MySQL 9从入门到性能优化-二进制日志

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…...

Cloudlog delete_oqrs_line 未授权SQL注入漏洞复现

0x01 产品简介 Cloudlog 是一个自托管的 PHP 应用程序,可让您在任何地方记录您的业余无线电联系人。使用PHP和MySQL构建的基于Web的业余无线电记录应用程序支持从HF到微波的一般站记录任务 0x02 漏洞概述 Cloudlog delete_oqrs_line 接口存在未授权SQL注入漏洞,未经身份验…...

【Linux】解锁软硬链接奥秘,高效动静态库管理的实战技巧

软硬连接和动静态库 1. 软链接1.1. 概念1.2. 特点1.3. 应用场景 2. 硬链接2.1. 概念2.2. 硬链计数2.3. 特点2.4. 应用场景 3. 动静态库3.1 库存在的原因3.2. 静态库制作与使用3.2.1 打包3.2.2. 使用 3.3. 动态库制作与使用3.3.1. 打包3.3.2. 使用 4. 解决动态库查不到的4种方法…...

【设计模式】Python 后端开发中的工厂模式设计与实现

Python 后端开发中的工厂模式设计与实现 1. 引言 在后端开发中,如何设计一套易于扩展、可维护且灵活的系统架构是开发者面临的重要课题。设计模式在这一过程中扮演了至关重要的角色,尤其是在面向对象编程中,它提供了大量解决重复问题的标准…...

划重点!入门安全测试,这几点要注意!

朋友们,今天我们一起来学习下如何做安全测试。 那么首先,什么是安全测试? 安全测试是评估和验证软件系统、应用程序或网络的安全性和强度的过程。其目标是发现和修复潜在的安全漏洞和脆弱性,以确保系统能够抵御恶意攻击和未授权…...

mysql 09 独立表空间结构

表空间中的页实在是太多了,为了更好的管理这些页面,设计 InnoDB 的大叔们提出了 区 (英文名: extent )的概念。对于16KB的页来说,连续的64个页就是一个 区 ,也就是说一个区默认占用1MB空间大小。…...

linux 虚拟环境下源码安装DeepSpeed

第一步:创建虚拟环境: conda create -n deepspeed python3.10 第二步:进入虚拟环境,安装Pytorch 2.3.1 # CUDA 12.1 conda install pytorch2.3.1 torchvision0.18.1 torchaudio2.3.1 pytorch-cuda12.1 -c pytorch -c nvidia 第…...

常见八大排序算法

今天我们带来数据结构中常见的8大排序算法。 排序算法平均时间复杂度最好情况最坏情况空间复杂度稳定性冒泡排序O(n方)O(n方)O(n方)O(1)稳定插入排序O(n方)O(n方)O(n方)O(1)稳定选择排序O(n方)O(n方)O(n方)O(1)不稳定希尔排序O(n1.3方到1,5方)O(n)O(n方)O(1)不稳定堆排序O(n lo…...

汽车免拆诊断案例 | 2022款大众捷达VS5车行驶中挡位偶尔会锁在D3挡

故障现象  一辆2022款大众捷达VS5汽车,搭载EA211发动机和手自一体变速器,累计行驶里程约为4.5万km。该车行驶中挡位偶尔会锁在D3挡,车速最高约50 km/h,且组合仪表上的发动机故障灯和EPC灯异常点亮。 故障诊断  用故障检测仪检…...

Linux之HugePage的原理与使用

Linux之HugePage的原理与使用 虚拟地址与物理地址虚拟地址物理地址虚拟地址与物理地址的转换 HugePage的概念Linux使用HugePage创建HugePage在程序中使用HugePage 总结 虚拟地址与物理地址 在研究HugePage之前,首先需要明白虚拟地址和物理地址的概念。在计算机系统…...

一步步优化Redis实现分布式锁

分布式锁概念 在多线程的程序里,为了避免同时操作一个共享变量产生数据问题,会加一个互斥锁,以确保共享变量的正确性,使用范围是同一个进程。 那如果是多个进程,需要同时操作一个共享资源,如何互斥呢&…...

C++进阶——二叉搜索树

目录 一、基本概念 二、性能分析 三、模拟实现 四、使用场景 1.key搜索场景 2.key/value搜索场景 一、基本概念 二叉搜索树(Binary Search Tree),看名字就知道,是可以用来搜索数据的一种二叉树。 它可以是空树(一个数据都…...

Require:业界优秀的HTTP管理方案。

方案异步JDK额外依赖特点HttpURLConnection 【优点】Java内置,简单易用。对于简单的HTTP请求和响应处理非常合适。 【缺点】功能相对较少,不支持现代特性(如异步请求、连接池等)。API相对繁琐,处理复杂请求时代码冗长。…...

装饰模式(Decorator Pattern)在 Go 语言中的应用

文章目录 引言什么是装饰模式?在Go语言中的应用定义接口实现具体逻辑创建装饰器使用装饰器 装饰模式 vs 中间件装饰模式中间件区别 总结 引言 在软件开发中,设计模式是解决常见问题的模板。装饰模式(Decorator Pattern)是一种结构…...

Windows系统部署redis自启动服务

文章目录 引言I redis以本地服务运行(Windows service)使用MSI安装包配置文件,配置端口和密码II redis服务以终端命令启动缺点运行redis-server并指定端口和密码III 知识扩展确认redis-server可用性Installing the Service引言 服务器是Windows系统,所以使用Windows不是re…...

34岁IT男的职场十字路口:是失业预警,还是转型契机?

在信息技术这片充满机遇与挑战的广袤领域,34岁,一个看似正值壮年却暗藏危机的年龄,成为了许多IT男性不得不面对的职场考验。当“34岁现象”逐渐凸显,我们不禁要问:在这个快速变化的时代,34岁的IT男&#xf…...

复试经验分享《三、计算机学科专业基础综合》- 数据结构篇

复试经验分享 三、计算机学科专业基础综合 3.1 数据结构 3.1.1 概念 时间复杂度 时间复杂度是指执行算法所需要的计算工作量一般情况下,按照基本操作次数最多的输入来计算时间复杂度,并且多数情况下我们去最深层循环内的语句所描述的操作作为基本操作…...

数学建模算法与应用 第16章 优化与模拟方法

目录 16.1 线性规划 Matlab代码示例:线性规划求解 16.2 整数规划 Matlab代码示例:整数规划求解 16.3 非线性规划 Matlab代码示例:非线性规划求解 16.4 蒙特卡洛模拟 Matlab代码示例:蒙特卡洛模拟计算圆周率 习题 16 总结…...

windows下安装、配置neo4j并服务化启动

第一步:下载Neo4j压缩包 官网下载地址:https://neo4j.com/download-center/ (官网下载真的非常慢,而且会自己中断,建议从以下链接下载) 百度网盘下载地址:链接:https://pan.baid…...

【JVM】—深入理解G1回收器—回收过程详解

深入理解G1回收器—回收过程详解 ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star~😊 文章目录 深入理解G1回收…...

企业文档管理中PDF格式的应用与优化

在现代企业运营中,文档管理是一项至关重要的工作。 无论是内部报告、合同文件、产品手册还是营销材料,都需要以规范、专业的方式进行保存和分享。 PDF格式因其不可随意编辑、跨设备显示一致的特性,成为企业文档管理的首选格式。 它能够确保文…...

C#多线程编程实战:Interlocked类如何帮你避免数据竞争(附性能对比)

C#多线程编程实战:Interlocked类如何帮你避免数据竞争(附性能对比) 当你在开发一个需要处理高并发的C#应用时,是否遇到过计数器结果不准确、标志位莫名其妙被重置的诡异情况?这些看似简单的多线程问题,往往…...

UniRig:革新3D模型自动化绑定的智能骨骼生成技术

UniRig:革新3D模型自动化绑定的智能骨骼生成技术 【免费下载链接】UniRig One Model to Rig Them All: Diverse Skeleton Rigging with UniRig 项目地址: https://gitcode.com/gh_mirrors/un/UniRig 在3D内容创作领域,骨骼绑定一直是制约效率的关…...

FxSound高级功能开发:插件系统与第三方集成技术深度解析

FxSound高级功能开发:插件系统与第三方集成技术深度解析 【免费下载链接】fxsound-app FxSound application and DSP source code 项目地址: https://gitcode.com/gh_mirrors/fx/fxsound-app FxSound是一款专业的数字音频处理软件,其强大的插件系…...

C++ 虚表与多态:从源码到汇编的逐步解析

本文基于代码随想录最强八股文给出的 C 源码与对应的 x86-64(System V ABI 风格)反汇编,按“程序运行流程”一步步解释: 对象内存里 vptr(虚表指针) 在哪构造函数如何 写入 vptrAnimal* 指针如何通过 vtabl…...

CasRel关系抽取实战:对接Airflow构建SPO抽取ETL调度流水线

CasRel关系抽取实战:对接Airflow构建SPO抽取ETL调度流水线 1. 项目背景与价值 在日常业务中,我们经常需要从大量文本数据中提取结构化信息。比如从新闻文章中提取人物关系,从产品描述中提取规格参数,从客服对话中提取用户诉求等…...

[特殊字符] 为什么99%的数字孪生都是“假的”?——镜像视界三维重构与视频反演技术重塑空间智能底层逻辑

🚀 为什么99%的数字孪生都是“假的”?——镜像视界三维重构与视频反演技术重塑空间智能底层逻辑如果你接触过数字孪生项目,或者看过相关展示系统,大概率见过这样一种典型场景:一个极具视觉冲击力的三维城市或工业模型&…...

标签噪声鲁棒训练:从理论到实践,构建深度学习模型的抗噪防线

1. 标签噪声:深度学习中的隐形杀手 第一次用MNIST数据集跑分类模型时,我发现哪怕故意把20%的标签打乱,模型在测试集上依然能达到85%以上的准确率。这个结果让我误以为深度神经网络对标签噪声天然具有免疫力——直到后来在医疗影像分类项目里…...

Drizzle ORM性能优化终极指南:查询优化与缓存策略详解

Drizzle ORM性能优化终极指南:查询优化与缓存策略详解 【免费下载链接】drizzle-orm drizzle-team/drizzle-orm: 是一个基于 C 的 ORM(对象关系映射)库,支持 MySQL 和 SQLite 数据库。适合对 C、数据库开发以及想要使用轻量级 ORM…...

B站视频下载终极指南:DownKyi高效工具完整使用教程

B站视频下载终极指南:DownKyi高效工具完整使用教程 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&#xff…...