【MySQL工具】pt-heartbeat
功能
pt-heartbeat - 监控 MySQL 复制延迟。
用法
pt-heartbeat [OPTIONS] [DSN] --update|--monitor|--check|--stop
pt-heartbeat 用于测量 MySQL 或 PostgreSQL 服务器上的复制延迟。您可以使用它来更新主服务器或监控从服务器。如果可能,MySQL 连接选项将从您的 .my.cnf 文件中读取。
启动守护进程以在主服务器上更新 test.heartbeat 表:
pt-heartbeat -D test --update -h master-server --daemonize
在从服务器上监控复制延迟:
pt-heartbeat -D test --monitor -h slave-serverpt-heartbeat -D test --monitor -h slave-server --dbi-driver Pg
检查从服务器延迟一次并退出(使用可选的 DSN 指定从服务器主机):
pt-heartbeat -D test --check h=slave-server
风险
Percona Toolkit 是成熟的、在真实世界中经过验证的,并且经过了充分测试,但所有数据库工具都可能对系统和数据库服务器造成风险。在使用此工具之前,请:
- 阅读工具的文档
- 查看工具已知的“BUG”
- 在非生产服务器上测试该工具
- 备份您的生产服务器并验证备份
描述
pt-heartbeat 是一个两部分的 MySQL 和 PostgreSQL 复制延迟监控系统,通过查看实际复制的数据来测量延迟。这避免了对复制机制本身(例如 MySQL 的 SHOW SLAVE STATUS)的依赖,因为它是不可靠的。
SHOW SLAVE STATUS 为什么不可靠?
第一部分是 pt-heartbeat 的 --update 实例,连接到主服务器并每 --interval 秒更新一个时间戳(“心跳记录”)。由于心跳表可能包含来自多个主服务器的记录(参见“多从层次结构”),服务器的 ID(@@server_id)用于标识记录。
第二部分是 pt-heartbeat 的 --monitor 或 --check 实例,连接到从服务器,检查来自其直接主服务器或指定的 --master-server-id 的复制的心跳记录,并计算与当前系统时间的差异。如果从服务器和主服务器之间的复制延迟或中断,则计算的差异将大于零,并且如果指定了 --monitor,可能会增加。
您必须手动在主服务器上创建心跳表,或者使用 --create-table。请参阅 --create-table 以获取正确的心跳表结构。建议使用 MEMORY 存储引擎,但对于 MySQL 当然不是必需的。
心跳表必须包含一个心跳行。默认情况下,如果不存在心跳行,则会插入一个心跳行。如果数据库用户没有 INSERT 权限,则可以使用 --[no]insert-heartbeat-row 选项禁用此功能。
pt-heartbeat 仅依赖于复制到从服务器的心跳记录,因此无论复制机制如何(内置复制、Continuent Tungsten 等系统),都可以工作。它在复制层次结构中的任何深度都可以工作;例如,它将可靠地报告从服务器落后于其主服务器的主服务器的主服务器。如果复制停止,它将继续工作并报告(准确地!)从服务器与主服务器之间的延迟越来越大。
pt-heartbeat 的最大分辨率为 0.01 秒。主服务器和从服务器的时钟必须通过 NTP 进行紧密同步。默认情况下,--update 检查在秒的边缘发生(例如 00:01),--monitor 检查发生在秒的中间(例如 00:01.5)。只要服务器的时钟保持紧密同步,复制事件在半秒内传播,pt-heartbeat 就会报告零秒延迟。
如果连接出现错误,pt-heartbeat 将尝试重新连接,但如果在首次启动时无法获得连接,则不会重试。
--dbi-driver 选项允许您使用 pt-heartbeat 监视 PostgreSQL。据报道,它与 Slony-1 复制很好地配合使用。
级联复制结构
如果复制层次结构中有多个从服务器,这些从服务器又是其他从服务器的主服务器,例如“主服务器 -> 从服务器1 -> 从服务器2”,则可以在从服务器以及主服务器上运行 --update 实例。默认的心跳表(参见 --create-table)是根据 server_id 列进行索引的,因此每个服务器都将更新 server_id=@@server_id 的行。
对于 --monitor 和 --check,如果未指定 --master-server-id,则工具尝试发现并使用从服务器的直接主服务器。如果此失败,或者如果您想要监视来自另一个主服务器的延迟,则可以指定 --master-server-id 来使用。
例如,如果复制层次结构是“主服务器 -> 从服务器1 -> 从服务器2”,对应的服务器 ID 分别是 1、2 和 3,您可以:
pt-heartbeat --daemonize -D test --update -h master
pt-heartbeat --daemonize -D test --update -h slave1
从服务器1 然后检查(或监视)从主服务器到从服务器2的复制延迟:
pt-heartbeat -D test --master-server-id 1 --check slave2
从服务器2 或者检查从从服务器1到从服务器2的复制延迟:
pt-heartbeat -D test --master-server-id 2 --check slave2
从服务器2 停止在从服务器1上的 --update 实例不会影响主服务器上的实例。
主服务器和从服务器状态
默认的心跳表(参见 --create-table)具有保存 SHOW MASTER STATUS 和 SHOW SLAVE STATUS 信息的列。这些列是可选的。如果存在任何列,它们对应的信息将被保存。
参数详解
至少指定 --stop、--update、--monitor 或 --check 中的一个。
--update、--monitor 和 --check 三者互斥。
--daemonize 和 --check 互斥。
此工具接受额外的命令行参数。有关详细信息,请参阅“SYNOPSIS”和使用信息。
--ask-pass
连接到 MySQL 时提示输入密码。
--charset
缺省:-A;类型:字符串
默认字符集。如果值为 utf8,则设置 Perl 的 STDOUT 的 binmode 为 utf8,将 mysql_enable_utf8 选项传递给 DBD::mysql,并在连接到 MySQL 后运行 SET NAMES UTF8。任何其他值都会在连接到 MySQL 后设置 STDOUT 的 binmode,但不使用 utf8 层,并在连接到 MySQL 后运行 SET NAMES。
--check
检查一次从服务器的延迟并退出。如果还指定了 --recurse,则工具将尝试发现给定从服务器的从服务器,并检查并打印它们的延迟。在打印延迟之前,会打印每个从服务器的主机名或 IP 和端口。--recurse 仅适用于 MySQL。
--check-read-only
检查服务器是否启用了 read_only;如果启用了,工具将跳过执行任何插入操作。另请参阅 --read-only-interval。
--config
类型:数组
读取此逗号分隔的配置文件列表;如果指定了此选项,则必须将其作为命令行上的第一个选项。
--create-table
如果不存在,创建心跳 --table。
此选项会导致使用以下 MAGIC_create_heartbeat 表定义创建由 --database 和 --table 指定的表:
CREATE TABLE heartbeat (ts varchar(26) NOT NULL,server_id int unsigned NOT NULL PRIMARY KEY,file varchar(255) DEFAULT NULL, -- SHOW MASTER STATUSposition bigint unsigned DEFAULT NULL, -- SHOW MASTER STATUSrelay_master_log_file varchar(255) DEFAULT NULL, -- SHOW SLAVE STATUSexec_master_log_pos bigint unsigned DEFAULT NULL -- SHOW SLAVE STATUS
);
心跳表至少需要一行记录。如果您手动创建了心跳表,则必须执行以下操作来插入一行记录:
INSERT INTO heartbeat (ts, server_id) VALUES (NOW(), N);
如果使用 --utc 参数,则执行以下操作:
INSERT INTO heartbeat (ts, server_id) VALUES (UTC_TIMESTAMP(), N);
其中 N 是服务器的 ID;不要使用 @@server_id,因为它会被复制,从服务器将插入自己的服务器 ID 而不是主服务器的服务器 ID。
这将由 --create-table 参数自动完成。
仍然支持一种传统版本的心跳表:
CREATE TABLE heartbeat (id int NOT NULL PRIMARY KEY,ts datetime NOT NULL
);
传统表不支持在多个从服务器层次结构(例如“主服务器 -> 从服务器1 -> 从服务器2”)的每个从服务器上进行 --update 实例。要手动向传统表中插入所需的一行记录,请执行以下操作:
INSERT INTO heartbeat (id, ts) VALUES (1, NOW());
如果使用 --utc 参数,则执行以下操作:
INSERT INTO heartbeat (id, ts) VALUES (1, UTC_TIMESTAMP());
--create-table-engine
指定用于心跳表的存储引擎。默认的存储引擎是 InnoDB,适用于 MySQL 5.5.5 及以上版本。
--daemonize
在后台进行分叉并与 shell 分离。仅适用于 POSIX 操作系统。
--database
short form: -D; type: string
用于连接的数据库。
--dbi-driver
默认值:mysql;类型:字符串
指定连接的驱动程序;支持 mysql 和 Pg。
--defaults-file
short form: -F; type: string
仅从给定文件中读取 mysql 选项。您必须提供绝对路径名。
--file
类型:字符串
将最新的 --monitor 输出打印到此文件。
当使用 --monitor 时,将输出打印到指定的文件中,而不是 STDOUT。该文件在每次间隔时打开、截断并关闭,因此它只包含最新的统计信息。在使用 --daemonize 时很有用。
--frames
类型:字符串;默认值:1m,5m,15m
平均值的时间段。
在给定 --monitor 时指定计算移动平均值的时间段。以逗号分隔的数字列表形式指定。后缀可以是 s 表示秒,m 表示分钟,h 表示小时,或 d 表示天。最大帧的大小确定了最大内存使用量,因为在内存中保留了指定数量的每秒样本以计算平均值。您可以指定任意数量的时间段。
--help
显示帮助并退出。
--host
short form: -h; type: string
连接到主机。
--[no]insert-heartbeat-row
默认值:yes
如果 --table 中不存在心跳行,则插入一行心跳行。
心跳 --table 需要一个心跳行,否则没有东西可以 --update、--monitor 或 --check!默认情况下,如果尚未存在心跳行,则工具将插入一个心跳行。如果数据库用户没有 INSERT 权限,可以通过指定 --no-insert-heartbeat-row 来禁用此功能。
--interval
类型:浮点数;默认值:1.0
更新或检查心跳 --table 的频率。更新和检查从第一个整秒开始,然后每隔 --interval 秒进行一次 --update,每隔 --interval 加上 --skew 秒进行一次 --monitor。
例如,如果在 00:00.4 开始一个 --update 实例,间隔为 0.5 秒,则第一个更新将在 00:01.0 发生,下一个将在 00:01.5 发生,依此类推。如果在 00:10.7 开始一个 --monitor 实例,间隔为 0.05 秒,并且默认的 0.5 秒 --skew,则第一次检查将在 00:11.5(00:11.0 + 0.5)进行,这将是距离最后一次更新 --update 工作间隔的 --skew 秒,因为实例是以同步间隔进行检查的,它发生在 00:11.0。
工具在更新或检查之前等待并从第一个整秒开始,以简化间隔计算。因此,工具可能在更新或检查之前等待最多 1 秒。
最小(最快)间隔为 0.01,最大精度为两位小数,因此 0.015 将四舍五入为 0.02。
如果使用传统的心跳表(见 --create-table),则最大精度为 1s,因为 ts 列的类型是 datetime。
--log
类型:字符串
将所有输出打印到此文件中。
当进行守护化时,将输出打印到指定的文件中。
--master-server-id
类型:字符串
计算 --monitor 或 --check 的延迟从此主服务器 ID。如果未给出,则 pt-heartbeat 尝试连接到服务器的主服务器并确定其服务器 ID。
--monitor
持续监视从服务器延迟。
指定 pt-heartbeat 应该每秒检查一次从服务器的延迟,并报告到 STDOUT(或如果给出了 --file,则报告到文件)。输出是当前延迟,然后是给定的 --frames 中时间段的移动平均值。例如,
5s [ 0.25s, 0.05s, 0.02s ]
--fail-successive-errors
类型:整数
如果指定,则 pt-heartbeat 将在给定数量的连续 DBI 错误后失败(无法连接到服务器或发出查询)。
--password
short form: -p; type: string
连接时使用的密码。如果密码包含逗号,则必须用反斜杠转义:“exam,ple”
--pid
类型:字符串
创建给定的 PID 文件。如果 PID 文件已存在并且其中包含的 PID 与当前 PID 不同,则工具不会启动。但是,如果 PID 文件存在并且其中包含的 PID 不再运行,则工具将用当前 PID 覆盖 PID 文件。工具退出时,PID 文件会自动删除。
--port
short form: -P; type: int
用于连接的端口号。
--print-master-server-id
打印自动检测或给定的 --master-server-id。如果指定了 --check 或 --monitor,则指定此选项将在每行的末尾打印自动检测到或给定的 --master-server-id。
--read-only-interval
类型:整数
当指定了 --check-read-only 时,发现服务器为只读时的间隔。如果未指定,则使用 --interval。
--recurse
类型:整数
在 --check 模式下递归检查从服务器的深度。
尝试递归地发现从服务器,直到指定的深度。在发现服务器之后,对每个服务器运行检查,并打印主机名(如果可能),然后是从服务器延迟。
目前,此功能仅适用于 MySQL。请参阅 --recursion-method。
--recursion-method
类型:数组;默认值:processlist,hosts
用于查找从服务器的首选递归方法。
可能的方法包括:
METHOD USES
=========== ==================
processlist SHOW PROCESSLIST
hosts SHOW SLAVE HOSTS
none Do not find slaves
不查找从服务器 processlist 方法优先,因为 SHOW SLAVE HOSTS 不可靠。但是,如果服务器使用非标准端口(不是 3306),则需要使用 hosts 方法。通常情况下,pt-heartbeat 会找到从服务器,但是您可以给出首选方法,它将首先使用。如果找不到任何从服务器,则会尝试其他方法。
--replace
在 --update 中使用 REPLACE 而不是 UPDATE。
在 --update 模式下运行时,使用 REPLACE 而不是 UPDATE 来设置心跳表的时间戳。REPLACE 语句是 MySQL 对 SQL 的扩展。当您不知道表是否包含任何行时,此选项非常有用。它必须与 --update 一起使用。
--run-time
类型:时间
运行的时间,然后退出。
--sentinel
类型:字符串;默认值:/tmp/pt-heartbeat-sentinel
如果此文件存在,则退出。
--slave-user
类型:字符串
设置要用于连接到从服务器的用户。此参数允许您在从服务器上使用一个具有较少权限的不同用户,但该用户必须存在于所有从服务器上。
--slave-password
类型:字符串
设置要用于连接到从服务器的密码。可以与 --slave-user 一起使用,用户的密码必须在所有从服务器上相同。
--set-vars
类型:数组
设置此逗号分隔的变量=值对的 MySQL 变量。
默认情况下,工具设置:
wait_timeout=10000
命令行中指定的变量将覆盖这些默认值。例如,指定 --set-vars wait_timeout=500 将覆盖 10000 的默认值。
如果无法设置变量,则工具会打印警告并继续执行。
--skew
类型:浮点数;默认值:0.5
延迟检查的时间。
默认情况下,将延迟检查半秒钟。由于更新尽快在主服务器的第二秒开始后发生,这允许一秒钟的复制延迟,然后报告从服务器比主服务器落后一秒钟。如果您的时钟不完全准确或有其他原因需要延迟从服务器更长或更短时间,可以调整此值。尝试将 PTDEBUG 环境变量设置为查看此选项的影响。
--stop
通过创建 sentinel 文件来停止运行的实例。
这应该有助于优雅地停止必要的 cron 作业,或者替换一个正在运行的实例。例如,如果您想每小时停止并重新启动 pt-heartbeat(只是为了确保每小时重新启动一次,在服务器崩溃或其他问题时),您可以使用类似以下的 cron 行:
0 * * * * :program:`pt-heartbeat` --update -D test --stop \--sentinel /tmp/pt-heartbeat-hourly
非默认的 --sentinel 将确保每小时 cron 作业仅停止以前使用相同选项(即从相同的 cron 作业)启动的实例。
另请参阅 --sentinel。
--table
类型:字符串;默认值:heartbeat
用于心跳的表。
不要指定 database.table;使用 --database 指定数据库。
请参阅 --create-table。
--update
更新主服务器的心跳。
--utc¶ 忽略系统时区,仅使用 UTC。默认情况下,pt-heartbeat 不会检查或调整不同系统或 MySQL 时区,这可能导致工具计算延迟不正确。指定此选项是一个好主意,因为它确保工具无论时区如何都能正确工作。
如果使用,此选项必须用于所有 pt-heartbeat 实例:--update、--monitor、--check 等。您可能应该在 --config 文件中设置此选项。将此选项与未使用此选项的 pt-heartbeat 实例混合使用将导致由于不同的时区(除非所有系统都设置为使用 UTC,否则不需要此选项)而产生错误的延迟读数。
--version
显示版本并退出。
--[no]version-check
默认值:yes
检查 Percona Toolkit、MySQL 和其他程序的最新版本。
这是一个标准的“自动检查更新”的功能,具有两个附加功能。首先,工具检查自身的版本,以及以下软件的版本:操作系统、Percona 监控和管理(PMM)、MySQL、Perl、MySQL Perl 驱动程序(DBD::mysql)和 Percona Toolkit。其次,它检查并警告已知存在问题的版本。例如,MySQL 5.5.25 存在严重的错误,并作为 5.5.25a 重新发布。
通过安全连接到 Percona 的版本检查数据库服务器执行这些检查。每个请求都由服务器记录,包括软件版本号和所检查系统的唯一 ID。ID 是由 Percona Toolkit 安装脚本生成的,或者当首次调用版本检查数据库时生成。
任何更新或已知问题都会在工具的正常输出之前打印到 STDOUT。此功能不应干扰工具的正常操作。
有关更多信息,请访问 https://www.percona.com/doc/percona-toolkit/LATEST/version-check.html。
版本
pt-heartbeat 3.5.7
相关文章:
【MySQL工具】pt-heartbeat
功能 pt-heartbeat - 监控 MySQL 复制延迟。 用法 pt-heartbeat [OPTIONS] [DSN] --update|--monitor|--check|--stop pt-heartbeat 用于测量 MySQL 或 PostgreSQL 服务器上的复制延迟。您可以使用它来更新主服务器或监控从服务器。如果可能,MySQL 连接选项将从您…...
实现vant的年月日时分秒组件
方法:van-datetime-picker(type:datetime)和 van-picker结合实现。 <template><div class"datetimesec-picker"><van-datetime-pickerref"timePickerRef"type"datetime" //年月日时…...
typescript 命名空间、装饰器
1、命名空间 命名空间:在代码量较大的情况下,为了避免各种变量命名的冲突,可将相似功能的函数、类、接口等放置到命名空间内。同Java的包.Net的命名空间一样,typescript 的命名空间可以将代码包裹起来,只对外暴露需要在…...
GPT问答SAP BW
以下回答由GPT-3.5回答,仅供参考. 这个AI工具超好用,每天都有免费额度,写文章、总结长视频、画图等,都几秒搞定!快去下载Sider Chrome或Edge插件,薅羊毛! https://sider.ai/invited?c43b289bf2616575daecf…...
使用zdppy_amauth开发激活用户接口
服务端代码: 1、创建数据库连接对象2、初始化数据库3、声明一个上下文4、挂载用户相关的路由,这里主要由 用户登录接口用户注册注册获取用户列表接口激活指定用户接口 5、启动服务 import mcrud import api import amauth import env import contextli…...
c++ memset 指针示例
目录 C 传一个float指针,在函数内部修改指针的值 c memset 指针示例 C 传一个float指针,在函数内部修改指针的值 #include <iostream>// 定义一个函数,它接受一个指向float的指针 void modifyValue(float* ptr) {// 通过解引用指针来…...
24考研双非上岸武汉理工大学电子信息专硕,855考研经验
目录 一、考研择校经验 二、武理考研初试经验 三、武理考研复试经验 一、考研择校经验 我建议学弟学妹们确定院校时没必要一上来就说我一定要考某个院校。其实考哪个学校是要在考研备考的过程中慢慢探索,慢慢研究的,不过最晚9月初一定要确定院校了&a…...
使用KubeKey 快速交付k8s v1.28.8集群
文章目录 服务器配置使用kubekey部署k8s1. 操作系统基础配置2. 安装部署 K8s2.1 下载 KubeKey2.2 创建 K8s 集群部署配置文件 3. 验证 K8s 集群3.1 验证集群状态 4. 部署测试资源5.验证服务 服务器配置 主机名IPCPU内存系统盘数据盘用途vm-16-11-ubuntu192.168.9.131128256Gi5…...
nginx--压缩https证书favicon.iconginx隐藏版本号 去掉nginxopenSSL
压缩功能 简介 Nginx⽀持对指定类型的⽂件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文件大小将比源文件显著变小,这样有助于降低出口带宽的利用率,降低企业的IT支出,不过会占用相应的CPU资源…...
通俗的理解网关的概念的用途(四):什么是网关设备?(网络层面)
任何一台Windows XP操作系统之后的个人电脑、Linux操作系统电脑都可以简单的设置,就可以成为一台具备“网关”性质的设备,因为它们都直接内置了其中的实现程序。MacOS有没有就不知道,因为没用过。 简单的理解,就是运行了具备第二…...
Spring JdbcTemplate实现自定义动态sql拼接功能
需求描述: sql 需要能满足支持动态拼接,包含 查询字段、查询表、关联表、查询条件、关联表的查询条件、排序、分组、去重等 实现步骤: 1,创建表及导入测试数据 CREATE TABLE YES_DEV.T11 (ID BINARY_BIGINT NOT NULL,NAME VARCH…...
第十一篇:操作系统新纪元:智能融合、量子跃迁与虚拟现实的交响曲
操作系统新纪元:智能融合、量子跃迁与虚拟现实的交响曲 1 引言 在数字化的浪潮中,操作系统如同一位智慧的舵手,引领着信息技术的航船穿越波涛汹涌的海洋。随着人工智能、物联网、量子计算等前沿技术的蓬勃发展,操作系统正站在一个…...
【大数据】学习笔记
文章目录 [toc]NAT配置IP配置SecureCRT配置PropertiesTerminal Java安装环境变量配置 Hadoop安装修改配置文件hadoop-env.shyarn-env.shslavescore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml 环境变量配置 IP与主机名映射关系配置hostname配置映射关系配置 关闭防火墙…...
PHP 框架安全:ThinkPHP 序列 漏洞测试.
什么是 ThinkPHP 框架. ThinkPHP 是一个流行的国内 PHP 框架,它提供了一套完整的安全措施来帮助开发者构建安全可靠的 web 应用程序。ThinkPHP 本身不断更新和改进,以应对新的安全威胁和漏洞。 目录: 什么是 ThinkPHP 框架. ThinkPHP 框架…...
厂家自定义 Android Ant编译流程源码分析
0、Ant安装 Windows下安装Ant: ant 官网可下载 http://ant.apache.org ant 环境配置: 解压ant的包到本地目录。 在环境变量中设置ANT_HOME,值为你的安装目录。 把ANT_HOME/bin加到你系统环境的path。 Ubuntu下安装Ant: sudo apt…...
基于springboot+vue+Mysql的体质测试数据分析及可视化设计
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
uniapp的app端推送功能,不使用unipush
1:推送功能使用htmlPlus实现:地址HTML5 API Reference (html5plus.org) 效果图: 代码实现: <template><view class"content"><view class"text-area"><button click"createMsg&q…...
数据结构(四)————二叉树和堆(中)
制作不易,三连支持一下呗!!! 文章目录 前言一、堆的概念及结构二、堆的实现三.堆的应用 总结 前言 CSDN 这篇博客介绍了二叉树中的基本概念和存储结构,接下来我们将运用这些结构来实现二叉树 一、堆的概念及结构 1…...
随便写点东西
1 react的高阶组件 1.1 操纵组件的props、对组件的props进行增删; 1.2 复用组件逻辑 服用的组件逻辑,互不影响;比如高阶组件中复用了input框,输入内容是互不影响的; 1.3 可以通过配置装饰器来实现高阶组件(…...
Mac 报错 Zsh: command not found :brew
Mac 安装其他命令时报错 Zsh: command not found :brew终于找到一个能行的,还能够配置国内下载源,记录一下 执行 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"选择一个开始继续执行即可...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
