场景目标
在隔离 MySQL 演练中形成可追溯的 SQL 变更工单和恢复评估,确认审批针对精确内容,执行失败或结果不明时可停止并核实数据事实。
数据库与存储 · 高级
以 Archery 与 MySQL 为例建立变更申请、审核、备份验证、分批执行、结果核实及业务验收,明确 DDL 与已提交写入的恢复边界。
在隔离 MySQL 演练中形成可追溯的 SQL 变更工单和恢复评估,确认审批针对精确内容,执行失败或结果不明时可停止并核实数据事实。
需要固定版本的 Archery、MySQL 和已选审核执行组件,专用隔离库、脱敏样本、受限查询与执行身份,以及独立审批与验收人员。先登记支持矩阵、备份覆盖及恢复窗口;120 分钟估时不包含生产 DDL、大表迁移、全量备份或实际数据库接入,变更命令由授权执行人另行审核。
Archery 管理工单与执行证据,审核组件能力按版本核验;数据库事实、业务验收和备份恢复形成独立证据,避免把审核通过当成可撤销保证。
点击组件,在图下方查看职责;连线编号对应流向解读。小屏可横向滚动,或直接展开文字说明。
冻结目标实例、库表、文件摘要、预期行数和窗口;SQL 内容变化必须重新评审。
变更对象、SQL 摘要和预期影响共同构成审批对象。
调用已确认支持本次 SQL 的组件,解析失败与规则告警分别记录。
审核结果作为评审输入,不能独立证明业务语义正确或没有执行风险。
审批绑定当前版本及恢复条件,超时结果不明时先确认事实而不是重复执行。
此线是运维变更控制,不是正常业务请求链路;页面取消不保证数据库事务停止。
只采用已验证覆盖所需对象和时间段的备份方式。
恢复副本仅用于验证,不改变源库和原备份。
联合核对结构、影响行数、锁等待、复制和业务请求。
报告已验证样本、耗时和缺口,审批不能越过已知不可恢复边界。
MySQL 多类语句会隐式提交;回滚 SQL 有适用前提,普通 ROLLBACK 不是所有变更的一键恢复。
先核对任务与数据库状态,结果不明时停止扩批和重复提交,终止或补偿由 DBA 另行评审。
正式恢复或补偿需核对新写入冲突,隔离验证不能作为直接覆盖源库的授权。
图解是本站基于官方资料整理的逻辑参考;实施前仍需核对实际部署版本、组件支持范围与变更审批。
Archery 负责 SQL 工单、审核和执行记录,MySQL 是本场景的示例变更对象。各后端支持的查询、审核、执行及备份能力不同,需核对所选版本与审核组件,不能把平台入口存在理解为所有数据库具有同样保护。
本文是待实际环境验证的方案,不连接数据库、不代替 DBA 审批。仅在隔离演练环境先证明备份恢复、审核依赖与分批策略可用。SQL 示例只读,需已授权目标;禁止复制生产数据或凭据到公开文档。审核规则通过不代表业务语义正确,页面取消也不代表数据库已停止执行。
工单、SQL 摘要、目标实例、审批、真实影响行数、结构和业务验收能够互相对应。目标不符、执行状态不明、锁阻塞升级或备份缺失时停止后续批次。MySQL 多类 DDL 有隐式提交,普通 ROLLBACK 不能通用撤销,已提交写入的补偿另行评审。
记录 Archery、MySQL、审核组件版本和连接方式,分别确认查询、审核、执行、备份与回滚语句生成是否支持本次语句。划分申请、审批、执行和业务验收职责,维护紧急停止联系人。不能仅看到工单页面即可认定审核引擎、任务队列或数据库备份已正常。
本次数据库类型和语句类型均有支持证据,未支持项有替代审核方式或明确阻塞。查询与执行账号作用域分离,审批人不是唯一未经复核的申请执行者,测试环境和业务目标清楚。
能力或职责未确认时不提交执行工单,只保留方案草稿。修正连接和配置前备份候选差异,不绕过审核组件直接使用高权限数据库账户继续。
从已授权连接核对主机、端口、版本、默认库和有效数据库账户,将结果与资产台账及工单匹配;若经代理接入,应另核对后端身份。以下语句只读取信息,不修改表数据,输出按内部信息管理要求保管。
SELECT @@hostname, @@port, @@version, DATABASE(), CURRENT_USER();
SHOW GRANTS FOR CURRENT_USER;实例身份、库名及有效角色与申请完全对应,执行身份仅具有所需库表权限。路由到只读副本、错误租户或未知代理后端时记录阻塞,不通过切换更高权限账户试错。
只读核验无需恢复数据。目标或权限不一致时断开本次测试连接并停止后续动作,由资产与数据库负责人核实,不在线修改路由去追逐预期结果。
申请中写明变更编号、库表、SQL 文件摘要、预期影响行数、执行耗时预算、锁等待上限和业务验收条件。使用本地只读文件摘要核对审批对象,示例中的路径必须是候选 SQL 文件,不能替换为凭据文件;任何 SQL 内容、目标或窗口变化都重新评审。
shasum -a 256 '<APPROVED_SQL_FILE>'审批所见 SQL 与待执行文件摘要一致,DDL、DML 及数据修复的影响边界分别说明。条件过宽、未给出业务验收或需要敏感数据外传的申请被退回,文件摘要仅用于一致性检查不替代内容审阅。
尚未执行时可撤回或修订申请,保留前后差异和驳回原因。不得修改已批准记录使其看起来从未变化,更不能用新文件覆盖旧摘要后沿用原审批。
在隔离环境运行所选组件的审核流程,逐条分类 SQL 规则告警、解析不支持、权限不足、审核服务不可达及版本不匹配。结合受控执行计划、索引、数据规模和并发基线评估扫描与锁风险;不要对生产数据执行未知代价的分析,也不通过全局关闭审核规则获得绿色结果。
每个告警都有解释、处理决定和复核人,业务语义由数据负责人确认。预计行数、耗时与锁预算有依据;演练环境和生产差异注明,审核通过未被写成无风险保证。
审核能力异常即暂停审批,修复候选配置或语句后重新检查。停止本轮测试时只回收明确测试资源,保留审核报告,不删除或修改真实业务索引来降低演练告警。
为受影响对象记录备份位置、时间、日志覆盖、访问身份和保存期,在隔离副本完成样本恢复并核对结构与数据。评审已有业务写入与补偿语句可能发生的冲突。MySQL DDL 隐式提交及已提交 DML 单独处理;生成回滚 SQL 有前提,不作为任意语句的一键撤销承诺。
恢复样本真实可读且内容符合预期,耗时、覆盖缺口与可接受数据丢失窗口有记录。审批人明确知道哪些对象不可用普通事务回退;没有恢复证据的高风险变更不能进入执行阶段。
恢复失败或覆盖不足时停止变更,修正备份与恢复流程后再验证。保留备份本体,不通过缩短历史日志保留来腾空间;隔离恢复实例的回收需精确核对目标,不能触及源库。
授权执行人在窗口内再次核对 SQL 摘要、目标、备份及当前负载,再通过既定 Archery 执行路径推进首批。记录提交时间、任务标识、实际影响行数、耗时和数据库状态,达到约定门槛后才能继续。长锁等待、复制异常、范围超限或维护冲突时停止后续批次;页面停止按钮不等于已撤销数据库事务。
首批执行结果可与数据库事实相互印证,影响范围和运行指标均在预算内。任何网络超时都先标记结果待确认,由任务记录与数据库状态判断是否已经提交,未经确认禁止重复点击执行。
未执行批次可停止排队;正在执行或已提交部分由 DBA 先确认状态,再评审终止、补偿或恢复。不要直接重跑整单,也不把 DDL 放进 ROLLBACK 模板宣称已经恢复。
按申请的对象和预期检查结构差异、影响行数、必要的数据样本及关键业务请求,查询范围保持受限。对存在复制的实例核对追平情况与业务读路由;把成功、失败和部分成功分别记录。若界面状态与数据事实不一致,优先停止扩批并保存时间线,不修改工单状态掩盖异常。
业务验收人与 DBA 分别确认业务和数据结果,观察窗口内无新增异常锁等待、错误率或不可接受的复制延迟。敏感样本已脱敏,未覆盖测试项和延后处理对象有负责人。
数据校验失败先限制继续变更,按受影响范围设计补偿或从已验证备份恢复,另行评审批次和新写入冲突。不得为了还原旧值覆盖变更后合法业务写入;恢复后重新执行同一验收清单。
归档 SQL 摘要、审批、目标身份、审核结果、备份证明、执行记录、验收及停止恢复决定。将结果不明、超时或手工补偿的原因补入知识手册,明确后续风险与观察负责人;工单公开摘要不带密码、连接串或原始业务数据。变更成功也保留恢复边界与未演练项。
审计人能够按变更编号回答谁批准、何时对哪个实例执行了什么,以及如何验收和恢复。待办与异常未被提前关闭,日志和备份保留符合既定策略,方案验证状态未被冒进升级。
归档错误用追加修订更正,不删除实际执行日志。未验收或部分成功的工单保持相应状态,后续数据修复建立新工单,不沿用原批准无限追加 SQL。