操作手册 · 数据库与存储

待环境验证

Archery SQL 变更审核与不可逆边界

围绕 Archery 与 MySQL 建立申请、预检、审批、分批执行和业务验收,识别支持矩阵、结果不明、DDL 隐式提交与备份恢复边界。

MySQL安全加固自动化
阅读导引 · 理解后再操作

这篇知识解决什么问题

本篇把 SQL 变更解释为目标身份、审批对象、执行事实与恢复覆盖四类证据的交集。审核结果用于提示风险而非保证可逆;页面超时或部分成功时,先读取实际任务与数据库状态,保留结果未知,避免重复提交或用旧值补偿覆盖合法新写入。

审批必须绑定不能含糊的对象

同一句 SQL 在不同实例、库表或时间窗口的影响可能完全不同,文件摘要只证明内容一致而不证明业务语义正确。应同时核对目标身份、结构版本、预期范围和审批窗口;任意一项变化都让原批准失去对应关系,需要重新评审而非沿用成功审核截图。

执行结果和恢复能力是两类结论

实际影响行数、结构变化与事务提交状态回答已经发生什么,备份及日志覆盖回答哪些状态可能恢复。把两者分列才能解释部分成功与后续合法写入的冲突;审核通过或生成回滚语句不能填补恢复证据缺口,未知部分应保留给数据库与业务负责人决定。

进入文章正文
关联架构图解7 个组件 · 点击展开

引用场景图中 Archery、审核组件、目标 MySQL 与隔离恢复副本的关系,重点理解控制记录和数据事实的区别。图未保证所有后端、语句或版本具备相同审核及备份能力,也不表示本站已连接执行入口。

查看场景架构与实施步骤
参考架构 · 非实时拓扑

SQL 审批、执行与隔离恢复验证架构

Archery 管理工单与执行证据,审核组件能力按版本核验;数据库事实、业务验收和备份恢复形成独立证据,避免把审核通过当成可撤销保证。

  • 数据 / 请求
  • 控制 / 管理
  • 观测 / 查询

点击组件,在图下方查看职责;连线编号对应流向解读。小屏可横向滚动,或直接展开文字说明。

SQL 审批、执行与隔离恢复验证架构:组件关系图Archery 管理工单与执行证据,审核组件能力按版本核验;数据库事实、业务验收和备份恢复形成独立证据,避免把审核通过当成可撤销保证。 变更申请人 → Archery:提交固定工单;Archery → 审核组件:请求规则审核;审核组件 → 审批与验收人:审核证据;审批与验收人 → Archery:批准窗口和批次;Archery → 目标 MySQL:获批 SQL 执行;目标 MySQL → 受控备份集合:备份与日志副本;受控备份集合 → 隔离恢复副本:隔离样本恢复;目标 MySQL → 审批与验收人:实际变更结果;隔离恢复副本 → 审批与验收人:恢复覆盖证据。箭头说明见下方流向解读。
以 MySQL 为例的逻辑参考图;审核引擎与备份能力待版本验证,不表示本站已连接数据库或执行 SQL。

变更申请人

入口 / 来源

冻结目标实例、库表、文件摘要、预期行数和窗口;SQL 内容变化必须重新评审。

全部组件职责 7 个组件
变更申请人
冻结目标实例、库表、文件摘要、预期行数和窗口;SQL 内容变化必须重新评审。
Archery
承载审批、审核和获批执行路径,页面状态必须和任务及数据库事实交叉确认。工具介绍 Archery
目标 MySQL
使用已验证的最小权限身份,控制批次与锁等待;不把所有 DDL 当成普通事务可撤销操作。工具介绍 目标 MySQL
审核组件
按所用版本核对解析、审核、执行和备份支持,不假定平台入口存在即代表依赖全部可用。
审批与验收人
独立审核业务语义、审核告警、恢复证据及实际影响,执行人与业务/数据库验收职责明确。
受控备份集合
保护受影响对象所需备份和日志,登记时间、保留与访问身份,不能用生成回滚 SQL 替代恢复证据。
隔离恢复副本
只在独立副本验证结构和数据样本,不接回生产,也不覆盖变更后的合法新写入。
流向解读 9 条连接
  1. 1

    变更申请人 Archery

    控制 / 管理 · 提交固定工单

    变更对象、SQL 摘要和预期影响共同构成审批对象。

  2. 2

    Archery 审核组件

    控制 / 管理 · 请求规则审核

    调用已确认支持本次 SQL 的组件,解析失败与规则告警分别记录。

  3. 3

    审核组件 审批与验收人

    观测 / 查询 · 审核证据

    审核结果作为评审输入,不能独立证明业务语义正确或没有执行风险。

  4. 4

    审批与验收人 Archery

    控制 / 管理 · 批准窗口和批次

    审批绑定当前版本及恢复条件,超时结果不明时先确认事实而不是重复执行。

  5. 5

    Archery 目标 MySQL

    控制 / 管理 · 获批 SQL 执行

    此线是运维变更控制,不是正常业务请求链路;页面取消不保证数据库事务停止。

  6. 6

    目标 MySQL 受控备份集合

    数据 / 请求 · 备份与日志副本

    只采用已验证覆盖所需对象和时间段的备份方式。

  7. 7

    受控备份集合 隔离恢复副本

    数据 / 请求 · 隔离样本恢复

    恢复副本仅用于验证,不改变源库和原备份。

  8. 8

    目标 MySQL 审批与验收人

    观测 / 查询 · 实际变更结果

    联合核对结构、影响行数、锁等待、复制和业务请求。

  9. 9

    隔离恢复副本 审批与验收人

    观测 / 查询 · 恢复覆盖证据

    报告已验证样本、耗时和缺口,审批不能越过已知不可恢复边界。

故障域与操作边界

DDL 与已提交写入不能通用撤销

MySQL 多类语句会隐式提交;回滚 SQL 有适用前提,普通 ROLLBACK 不是所有变更的一键恢复。

网络超时不代表执行失败

先核对任务与数据库状态,结果不明时停止扩批和重复提交,终止或补偿由 DBA 另行评审。

备份恢复不覆盖后续合法数据

正式恢复或补偿需核对新写入冲突,隔离验证不能作为直接覆盖源库的授权。

架构依据与版本核对 2 篇官方资料

图解是本站基于官方资料整理的逻辑参考;实施前仍需核对实际部署版本、组件支持范围与变更审批。

适用范围与验证状态

本文以 Archery 管理 MySQL 变更工单为例,验证等级为 PENDING,不表示已接入真实数据库。先登记 Archery、数据库和审核组件版本,确认查询、审核、执行、备份各项能力。Archery 的支持矩阵因数据库而异,不能将 MySQL 的能力推广到 PostgreSQL、Redis 等所有后端;审核引擎可用也不等于业务语义正确。Archery 官方功能及依赖清单

工单与权限准备

申请人填写变更编号、实例身份、库表、SQL 文件摘要、影响行数上限、业务窗口、执行人和验收人。读取、审批、执行职责分开,连接账户按实例和用途最小授权。工单中只保存凭据引用,不粘贴密码、生产个人信息或完整数据样本;导出和审核日志同样受访问与保留策略约束。

只读预检与排障分支

在已授权的目标连接中核对实例和权限,下例不会修改业务表。结果需与资产台账对应,角色或实例不符立即停止。

SELECT @@hostname, @@port, @@version, DATABASE(), CURRENT_USER();
SHOW GRANTS FOR CURRENT_USER;

审核失败先区分 SQL 规则、解析器不支持、数据库权限、审核服务连通或版本不兼容,不通过关闭所有规则来放行。对锁等待、扫描量和变更耗时设定业务确认的阈值;预估执行计划不代表真实执行一定不阻塞,必要时在隔离副本使用脱敏数据演练。

备份不等于恢复证明

记录受影响对象、备份时间、存储位置、访问人、日志覆盖区间与恢复耗时。在隔离环境证明能够恢复必要数据,再评审可接受的丢失窗口。goInception 生成回滚语句的能力有配置和语句支持前提,不是任意变更的一键撤销保证;不要把备份任务绿色图标当作已完成恢复演练。goInception 项目说明

审批后执行与结果不明

审批针对确定的 SQL 摘要、目标和窗口;改动任一项需重新审阅。执行前再次比对当前库表结构、负载及维护冲突,分批以实际影响行数、耗时、锁和复制状态决定是否继续。页面超时或网络中断时先查询工单、执行记录与数据库事实,确认未提交后才能评估重试,禁止直接再点一次执行造成重复变更。

不可逆边界与停止回退

MySQL 多种 DDL 会引起隐式提交,普通事务 ROLLBACK 不能通用撤销 ALTER TABLE 或已提交写入。出现未知执行状态、超出影响范围、锁阻塞升级、备份缺失或数据校验失败时停止后续批次。未执行的工单可取消;已提交部分要按确认后的补偿、备份恢复或前向修复方案另行审批,并评估新业务写入的冲突,不能盲目套用旧值覆盖新值。MySQL 隐式提交语句

验收与交接

验收由实际执行对象、工单状态、影响行数、结构差异、抽样数据和业务请求共同完成;记录复制追平及观察窗口,不仅是 SQL 返回成功。失败和部分成功都应保留时间线、执行人、停止原因与后续责任人。完整操作见SQL 审核变更场景,组件边界见SQL 审计运行手册

参考资料

从现象到判断

先收集证据,再缩小范围。以下是判读路径,不代表已经确认根因或获准变更。

  1. 同一工单在审核环境通过,执行目标却显示不同库名、账号或结构版本,页面标题仍然一致。

    只读核对
    只读核对实例身份、有效账号、授权范围、库表结构与批准 SQL 摘要,和资产及审批记录逐项对应。
    如何判读
    页面名称不是实例证明,差异可能来自连接代理或配置漂移;目标未确认前不能把问题解释为单纯权限不足。
  2. 执行页面超时,工单状态停留在处理中,但部分业务数据或结构已有变化且没有明确提交结论。

    只读核对
    读取任务标识、执行日志、有限数据库状态及受影响对象摘要,按同一时间窗确认已完成、未开始和未知部分。
    如何判读
    超时不能证明未执行;可能已经提交或部分完成,未经事实核对不应重复执行整单或直接套用补偿语句。
  3. 审核显示规则通过,业务仍出现锁等待或复制延迟,同时备份仅有任务成功记录而缺少恢复范围。

    只读核对
    只读审阅审核报告、原始预算、既有锁与复制监控,以及备份清单和隔离恢复报告,不启动新的测试或恢复。
    如何判读
    规则检查不覆盖全部并发与业务风险,备份成功也不证明恢复可用;需分开处理执行影响和恢复证据缺口。
常见误区与判断边界 2 项

把普通事务回退套到所有 SQL

多类 MySQL DDL 会隐式提交,已提交的写入也不能靠普通事务回退统一撤销。恢复旧结构或旧值还可能与新业务数据冲突;应按实际语句和结果状态评审停止、前向修复或独立恢复,而不是仅因工单提供回滚按钮就承诺所有变更可逆。

用扩大权限或关闭规则修复审核

连接拒绝、解析不支持、依赖不可用和规则告警属于不同失败类型,扩大权限可能掩盖错误目标或能力缺口。应保留具体错误与支持矩阵,再由责任人决定补证或修订方案;不能把审核变绿作为唯一目的,更不能删除执行记录隐藏部分成功。

交接时应留下的证据

作为记录提纲使用,不是自动检查结果;未取得的证据应标记缺口,并注明负责人。

  • 记录目标实例与有效账号、库表和结构版本,关联固定 SQL 摘要、审批窗口与预期影响范围,确保执行对象可追溯。
  • 保留审核组件版本、规则结果和未支持项,说明风险预算与隔离验证覆盖,而非仅保留审核通过的单张截图。
  • 按任务与批次记录已提交、尚未执行和结果未知部分,关联实际结构、行数、锁及复制证据,禁止用重试覆盖原时间线。
  • 交接备份与日志范围、已验证恢复样本、后续新写入冲突及决策责任人,明确未获得证据的恢复能力仍然待验证。

记录需包含环境、版本、时间与时区;分享前脱敏,不附访问令牌、密码或完整业务敏感数据。

继续阅读与资料核对

补充相关主题,再结合当前环境的实施记录形成结论。

返回原理导读

DOUYA OPS ECOSYSTEM

贡献你的经验,帮助更多运维人

把故障复盘、标准流程和最佳实践沉淀为可检索、可复用的知识内容。