遗留系统数据迁移实战(十七):生产迁移日志应该怎么设计
为什么迁移日志很重要生产迁移最怕的不是慢而是不知道发生了什么。常见问题是接口一直没返回是还在跑还是卡死 源库慢还是目标库慢 迁了多少 还剩多少 哪个客户、哪个表、哪个区间慢 失败前最后成功到哪里如果日志只有一行migration failed那基本无法快速定位。迁移日志必须按生产排障来设计。日志前缀要稳定建议所有迁移性能日志使用统一前缀。例如EMRC MIG PERF后面再接具体阶段src_rt_page src_alarm_page src_rt_dry_stat dst_rt_stage dst_alarm_stage dst_msg_batch dst_msg_dedup_delete dst_msg_dedup_update这样线上可以直接过滤tail-n1000-fuiot-pro2026-08-13.0.log\|grep-EEMRC MIG PERF|EMRC migration稳定前缀比日志内容写得漂亮更重要。每条日志要包含哪些字段迁移性能日志至少包含客户 businessAccount 阶段 step 批次范围 本批读取行数 本批写入行数 影响行数 耗时 cost例如源库告警分页日志src_alarm_page baInterapas1 tableas_water_alarm fromId7500000 toId8000000 rows31901 events31901 cost46166ms这条日志能看出哪个客户 哪张源表 哪个主键区间 查了多少行 拆出了多少事件 源库耗时多少再配合目标库写入日志dst_alarm_stage rows1000 affected1000 cost303ms就能判断瓶颈在源库查询而不是目标库写入。dry-run 也要有进度日志很多迁移系统只在 execute 打日志dry-run 静默执行。这在生产上不够。dry-run 往往也会扫源库大表如果没有进度日志用户会误以为接口卡死。建议 dry-run 每隔固定数量打印src_rt_dry_stat progress baInterapas1 meters750/1039 batchMeters10 rtRows9490 freezeRows0 cost9731ms字段含义meters750/1039已经统计 750 块表总共 1039 块 batchMeters10本批统计 10 块表 rtRows9490本批实时行数 freezeRows0本批冻结展开数 cost9731ms本批耗时这样即使 dry-run 很慢也能证明它还在正常推进。慢批次要单独打印普通进度日志用于确认任务还活着。慢批次日志用于定位性能问题。例如src_rt_dry_batch slow baInterapas1 batchMeters10 rtRows24219 freezeRows0 cost25267ms建议设置一个慢日志阈值例如超过 5 秒打印 slow阈值不是绝对的要结合生产库性能和数据规模调整。慢日志的价值在于后续可以拿具体表计、具体区间去源库做执行计划分析。进度日志和性能日志要分工迁移系统通常有两类日志。第一类是进度日志EMRC migration progress: stepREALTIME_MIG, 90325/472477, 19.12%它回答整体跑到哪里了 完成百分比多少 当前阶段是什么第二类是性能日志EMRC MIG PERF dst_msg_batch baYAHSO from... to... rows71604 cost47254ms它回答慢在哪里 本批数据量多少 源库和目标库各耗时多少两类日志不能互相替代。日志要便于 grep生产上多数时候不是打开日志平台而是在服务器上直接看tail-fxxx.log|grep...所以日志关键字要简单、稳定。推荐grep-EEMRC migration|src_rt_dry|src_alarm_page|dst_alarm_stage|dst_msg_batch不要把关键字段写成复杂自然语言。例如不要只写alarm migration is processing应该写src_alarm_page baxxx tablexxx fromIdxxx toIdxxx rowsxxx costxxx补偿接口也要打日志补偿接口经常被忽略。但补偿接口更需要日志因为它通常直接修改历史数据。例如实时去重补偿dst_msg_dedup_delete baYAHSO rows10207 cost30455ms dst_msg_dedup_update baYAHSO rows90325 cost222987ms这两条日志能证明删除了多少重复记录 更新了多少旧 ID 执行耗时多少 是否按指定客户执行补偿接口没有日志生产上不应该直接跑。失败日志要保留关键上下文失败日志至少要包含客户 阶段 当前 step 异常摘要 progressId例如EMRC realtime async migration failed, progressIdxxx Duplicate entry xxx for key mig_emrc_realtime_data.PRIMARY这类日志能快速判断是中间表重复 目标表主键冲突 源库 SQL 超时 数据类型异常 NPE失败日志不要只吞异常也不要只返回前端。总结生产迁移日志设计的目标不是“多打印”而是“可判断”。一套合格日志应该能回答任务是否还在跑 跑到哪个阶段 源库慢还是目标库慢 本批处理了多少 失败前最后成功在哪里 补偿接口改了多少数据日志设计好了生产迁移才从黑盒变成可观察的工程过程。

相关新闻

Listary:Windows效率神器,全局搜索与快速启动的终极解决方案

Listary:Windows效率神器,全局搜索与快速启动的终极解决方案

1. 从“找文件”到“指挥电脑”:为什么你需要Listary如果你每天在电脑前工作超过4小时,我敢打赌,你至少浪费了其中15%的时间在重复的、机械的文件查找和程序启动上。我说的不是偶尔找一份文档,而是那种日复一日的场景:…

2026/8/18 0:51:23 阅读更多 →
基于Voronoi图的晶粒建模与相场模拟初始化技术

基于Voronoi图的晶粒建模与相场模拟初始化技术

1. 项目概述晶粒建模是材料科学领域一项基础而关键的技术,特别是在金属材料、陶瓷和多晶硅等研究中。这个项目聚焦于利用Voronoi多边形批量生成拓扑晶粒模型,并实现参数可调的功能。作为一名长期从事材料模拟的研究者,我深知传统手工建模在面…

2026/8/18 0:50:23 阅读更多 →
AI邮件注水问题:从提示词工程到自动化工具链的解决方案

AI邮件注水问题:从提示词工程到自动化工具链的解决方案

你是不是也遇到过这种情况:用AI生成的邮件,乍一看文笔流畅、格式规范,但仔细一读,总觉得空洞无物,像一杯被反复冲泡的茶,淡而无味?或者,邮件发出去后,对方回复寥寥&#…

2026/8/18 0:50:23 阅读更多 →

最新新闻

AI Agent工程化实践:用结构化技能驯化AI编程助手

AI Agent工程化实践:用结构化技能驯化AI编程助手

1. 从“魔法”到“工程”:为什么我们需要驯化 AI Agent 最近和几个团队聊,发现一个挺有意思的现象:大家用 Cursor、GitHub Copilot 这类 AI 编程工具,已经从最初的“哇,好神奇”变成了“唉,又乱改我代码”。…

2026/8/18 4:24:32 阅读更多 →
被苹果“拉黑“的旧Mac,还能免费装上最新系统吗?OpenCore Legacy Patcher 老款Mac升级自救实录

被苹果“拉黑“的旧Mac,还能免费装上最新系统吗?OpenCore Legacy Patcher 老款Mac升级自救实录

被苹果"拉黑"的旧Mac,还能免费装上最新系统吗?OpenCore Legacy Patcher 老款Mac升级自救实录 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Leg…

2026/8/18 4:24:32 阅读更多 →
无需公网IP,用内网穿透实现《我的世界》基岩版远程联机

无需公网IP,用内网穿透实现《我的世界》基岩版远程联机

这次我们来看一个非常实际的问题:如何在不需要公网IP的情况下,实现《我的世界》基岩版的远程联机。对于很多玩家来说,向朋友开放自己的世界一起游玩是核心乐趣,但家庭宽带通常没有公网IP,直接连接会失败。本文将聚焦于…

2026/8/18 4:24:32 阅读更多 →
Vue项目Nginx生产环境部署全攻略:解决路由、代理与缓存优化

Vue项目Nginx生产环境部署全攻略:解决路由、代理与缓存优化

1. 项目概述:从开发到上线的最后一公里做前端开发的朋友,尤其是用Vue、React这类SPA框架的,肯定都经历过这个阶段:本地开发跑得飞快,npm run serve一开,热更新丝滑无比,功能测试都没问题。可一到…

2026/8/18 4:24:32 阅读更多 →
基于结构感知RAG的对话智能体:从嘈杂数据到精准问答的工程实践

基于结构感知RAG的对话智能体:从嘈杂数据到精准问答的工程实践

1. 项目概述:从嘈杂数据到结构化对话的跨越最近在折腾对话智能体项目时,遇到了一个经典难题:我们手头积累了大量非结构化的、质量参差不齐的文档、聊天记录和报告,也就是所谓的“嘈杂数据”。直接把这些数据扔给大语言模型&#x…

2026/8/18 4:23:31 阅读更多 →
EVE-NG虚拟环境中RSTP协议配置与实验指南

EVE-NG虚拟环境中RSTP协议配置与实验指南

1. EVE-NG与RSTP协议概述 EVE-NG(Emulated Virtual Environment - Next Generation)是目前网络工程师最常用的虚拟化网络实验平台之一。它允许用户在单台物理机上构建复杂的网络拓扑,运行包括Cisco、Juniper、华为等主流厂商的网络设备镜像。…

2026/8/18 4:23:31 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/17 2:58:27 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/17 2:58:30 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/17 2:58:32 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →