2026

MYSQL线上数据库表归档工具推荐Percona-Toolkit 之 pt-archiver

Percona Toolkit中的pt-archiver是一个用于归档数据的工具,它可以有效地将旧数据移动到另一个表中,而不会对生产数据库性能产生太大影响。 https://github.com/percona/percona-toolkit pt-archiver的核心思路是以空间换时间,它通过创建一个临时表来存放需要保留的“热”数据,并使用触发器(Triggers) 来保证数据一致性,最后通过一次快速的表名交换来完成归档。 ⚙️ 第一步:前置检查 在开始操作前,工具会先进行一轮严格的环境检查,如不满足以下任一条件将直接退出,不予执行。 🛠️ 第二步:创建临时表 通过环境检查后,工具会创建一个与原始表结构完全相同的空临时表(默认命名为 原表名_tmp),作为新数据的“容器”。 🔗 第三步:创建触发器(核心机制) 这是重构版保证数据一致性的关键。在向临时表复制数据的过程中,原表可能会继续接收业务的读写请求。为了保证这部分增量数据不丢失,工具会在原表上创建三个 AFTER 类型的触发器,将期间所有的数据变更实时同步到临时表。 这三种触发器协同工作的逻辑如下: 通过这套触发器机制,临时表的数据始终与原表保持同步,无论复制过程耗时多久,都不会丢失增量数据。 📦 第四步:复制数据 部署好触发器后,工具开始分批将原表中的数据复制到临时表。工具会使用 WHERE 条件来筛选出需要保留的数据(例如近7天的记录)。 注意:为了将对线上数据库的影响降到最低,工具在复制时会采取低优先级策略(INSERT LOW_PRIORITY IGNORE),并默认在每复制完一批数据(如1000行)后主动休眠1秒。 🔄 第五步:原子切换 当所有符合条件的“热数据”都复制完成后,归档工作进入最后一步。工具会执行一个原子的…

Agent Skills:像搭积木一样赋予 AI 专业能力

试想一个场景:你新招了一位实习生,他聪明、反应快,但对你公司的业务流程、内部规范、工具操作一无所知。怎么办?你给他写了一份详细的 SOP 手册,告诉他遇到什么情况该怎么做、用到什么工具、注意什么细节。从此,这位实习生就像一位经验丰富的老员工一样稳定输出。 Agent Skills,就是 AI 智能体的那份 SOP 手册。 🤔 一句话理解 Agent Skills Agent Skills 是一种轻量级的开放标准,由 Anthropic 于 2025 年底发布,迅速被 OpenAI、Microsoft、GitHub、Cursor 等主流平台采纳。它的核心思想非常简单: 把一个任务的全部“know-how”——操作步骤、判断依据、可执行脚本、参考资料——打包成一个文件夹,AI 智能体在需要时自动读取并严格执行。 Skill 就像 AI 的“即插即用”扩展包。一个 PDF 处理…

MYSQL线上数据库表归档工具推荐之gh-ost

一:gh-ost 介绍 gh-ost 是一款由GitHub开发的在线DDL(Online Data Definition Language)变更工具,专门用于MySQL数据库 。它允许在不锁定表的情况下执行数据库模式变更,从而避免了传统ALTER TABLE命令可能带来的长时间锁表问题,这对于高可用性要求严格的生产环境尤为重要。它通过无触发器 (trigger-less)的方式实现表结构变更,减少了对数据库性能的影响,同时支持暂停、限速、动态配置等功能。相较于传统的 pt-online-schema-change,gh-ost 更安全、灵活,且对主库负载更低。 📖主要特点 其操作流程大致如下: 二:gh-ost 的三种模式架构 2.1 连接从库,在主库转换 这是 gh-ost 默认的工作模式,它会查看从库情况,找到集群的主库并且连接上去,对主库侵入最少。大体步骤是: 2.2 连接主库,在主库转换 需要使用 –allow-on-master 选项: 2.3 在从库上测试和转换 这种模式会在从库上做修改。gh-ost 仍然会连上主库,但所有操作都是在从库上做的,不会对主库产生任何影响。在操作过程中,gh-ost…

本地安装Minikube部署Kubernetes环境

Minikube 是一个工具,它为本地环境提供了一种轻量化的 Kubernetes 集群实现。通过 Minikube,用户可以在本地机器上快速启动并运行一个 Kubernetes 环境,用来学习、测试和开发。Minikube支持Kubernetes的所有主要功能,包括Dashboard、DNS、容器运行时(如Docker、containerd、CRI-O)等。这种本地化的 Kubernetes 环境主要为开发者提供了便捷,不再需要花费额外的精力去搭建和维护一个庞大的远程集群。 1.安装 Docker Desktop 作为官方推荐的容器化平台,安装Docker Desktop能让你顺利使用Docker驱动。 2. 安装 Minikube 和 kubectl 使用 Homebrew 可以一键安装这两个核心工具。 使用 Homebrew 安装:在终端中执行以下命令: 验证安装:运行以下命令,确认版本信息能正常输出: 3. 启动你的 Kubernetes 集群…

多合一macOS系统安装U盘制作教程-终端篇

前排提示: 终端篇是在 Mac OS 系统环境制作 下列教程前提是你已经知道了怎么在 Mac 系统下通过终端命令制作U启动盘,知道原理后才能进阶学习多合一制作。 为啥需要多合一?: 对于技术员来说,macOS的系统版本众多,一个U盘制作一个系统的话需要多个U盘,且不利于维护,往往都不知道哪个U盘是哪个版本,如果有一个大容量的U盘的,是否可以一次性把多个 macOS 写入进去呢,答案是可以的,下面教程就说说如何利用终端工具,一个U盘多个分区,逐个写入每个分区 注意:目前官方最新提供的 macOS 10.12 不知道存在什么原因,无法终端写入,只能工具写,我也会跟进这个问题,不断获取最新的 macOS 10.12,希望早日也能终端写入,旧版的10.12就不再发布了,虽然可以终端写入,但是存在证书问题和有效负载报错问题,推荐用10.13代替,10.12和10.13支持的机型一模一样,Mac尽量保持能装新就装新原则 根据上面原则,推荐制作顺序:10.7、10.11、10.13、10.15,重复配置安装最新 macOS 制作过程 分区: 首先需要一个大容量U盘,最好64G以上,我们将U盘分区,格式 GUID ,分几个区则要看你想要制作几个 macOS 。 然后分区: 除了第一个叫upan外,其他暂时先用默认的用 未命名…

Go深度指南:从基础到高级的全面解析

Go 语言自推出以来,因其简洁性、并发支持和高效性能,在云计算、微服务和分布式系统中广泛应用。作为开发者,面试时往往需要面对一系列技术问题,这些常被称为“八股文”的题目,虽然有时显得高级特性,力求每个解释都严谨实用,避免空话套话。让我们从最基础的部分开始。 第一章:基础概念与语法 变量与类型系统 Go 是静态类型语言,类型安全且编译时检查。变量声明使用 var 关键字,或短变量声明 :=。基础类型包括整型、浮点型、布尔型和字符串等。理解零值概念至关重要:未初始化的变量会赋予其类型的零值,例如整型为 0,字符串为空字符串””。 类型转换必须是显式的,Go 不支持隐式类型转换。例如,将 int 转换为 float64 需要使用 float64(x)。这有助于避免意外错误。 控制结构 Go 的控制结构包括 if、for、switch 等,设计简洁。for 循环是唯一的循环结构,但可以模拟 while 循环。if 语句可以包含初始化语句,增强可读性。 switch 语句在 Go 中更为灵活,case…