SQL Server DBA实战手册:边缘计算运维精要
|
去年十月,杭州西溪园区B3栋边缘节点机柜区,空调坏了三天,散热全靠走廊穿堂风——那天我蹲在第七排底端查SQL Server AlwaysOn同步延迟,后颈全是汗,手抖得差点把DBCC OPENTRAN的输出复制错行。老杨你记得吧?就是被兼容性折磨了六年前端的老杨,他上季度末还在我工位隔壁借过网线焊测试机顶盒固件,结果顺手把我SQL Profiler抓包窗口关了——就那种带红叉的小窗,连问都没问。 我原以为那本《SQL Server DBA实战手册:边缘计算运维精要》是又一本印着“高可用”“低延时”烫金大字的PPT合订本。翻开第一页看到“边缘场景下tempdb争用比核心机房更凶,但没人配SSD缓存”这句,我直接把书翻到封底查ISBN号,怕是盗版——结果真是微软Press 2023年7月出的。封面右下角印着“本册经杭州、合肥、佛山三地边缘站点真实压测验证”,没写具体哪天,但底下一行小字:“注:压测期间某次突发断电致三台节点离线,故障还原流程未录入手册正文”。我敢打包票,那个断电就是十月七号下午四点十七分,西溪园区主配电室跳闸,UPS只撑了十八秒。当时我正跟运维组长老周对口令,他手机响了,是老婆打来问儿子退烧药吃没,他边接边用签字笔戳我屏幕上的AG健康状态图,笔尖在“Suspended”那格戳了个黑点。 优胜劣汰不是口号。它就卡在两个地方:一是SQL Server Agent作业在边缘设备上跑不动,二是你真不敢动sp_configure里的max server memory。手册里说“建议动态预留4096MB给OS”,我照做,第二天凌晨三点,监控告警说内存使用率92%——我冲过去看,是Windows Update Service在后台拉补丁,占了三百七十二MB。而那个Agent作业?它自己建了三个临时表,每个都带XML字段,还加了FOR XML AUTO,根本没走参数化,就硬生生塞进内存池里。我删掉XML,改用VARCHAR(MAX) + 手动拼串,性能翻倍。可手册没写这个,它只写“避免非必要XML序列化”,轻描淡写的。我抄起笔在页边空白处画了个叉,叉旁边写了“叉你妈的XML”。 还有个细节:手册第83页说“ALTER DATABASE SET HADR AVAILABILITY GROUP = …”命令在边缘节点执行失败概率高于中心集群。它列了五条排查项,但漏了一条——某型号Intel NUC主板BIOS里有个叫“Fast Boot”的选项,开了之后SQL Server启动时根本读不到WSFC心跳包。这个我敢打包票,因为十一号凌晨我就在佛山某高速收费站ETC边缘服务器上,用U盘插着UEFI BIOS界面手动关了这玩意儿。桌上那盒凉透的黄焖鸡饭,酱汁已经凝成褐色块状,筷子还插在里头。我没动,光盯着屏幕等SQL服务起来。后来发现老周那会儿也在佛山,他在收费站便利店买红牛,看见我蹲在机柜旁啃冷鸡腿——他拍了张照发群里,图里我后脖颈上还沾着半片茶叶,估计是从我早上泡的普洱里飘出来的。 说到茶叶……前两天前端同事小林跑来找我调查询慢接口,说是用户反馈首屏加载压到三秒,运营还嫌慢,可她手机是三年前的安卓。小林递给我一张截图,里面有个GET /api/realtime/stock 的响应时间显示1428ms,但实际TTFB才213ms。我顺手看了眼SQL Server日志,发现这请求背后调的是个VIEW,VIEW里嵌套了四个LEFT JOIN,其中俩来自Linked Server——连的是另一台边缘节点的SQL Server,用的是SQL Native Client OLE DB驱动。我问他这View谁写的,他说是上个月新来的DBA实习生。我说你让实习生重写,他摇头,说“产品说顺手支持一下就行,下周上线埋点”。我懒得说了,掏出手机拍了张他的屏幕,发到我们DBA小群,标题就俩字:“Linked”。群里沉默十七秒,老周回了个表情包:一只熊猫抱着硬盘哭。
文章配图,仅供参考 其实最绝的是手册第112页附录里的“边缘DBA自查清单”。第三条写着:“检查SQL Server是否运行在Hyper-V Generation 2虚拟机上”。我笑了。我们七成边缘节点用的是树莓派4B+NVMe扩展盘跑SQL Server for Linux容器,还有两成是华硕PN51迷你主机,Windows Server 2022 LTS,但BIOS锁死了Secure Boot——所以根本起不来Gen2 VM。手册写的是对的,但它没告诉你,当你对着一台亮着橙色LED的PN51发呆时,“优胜劣汰”四个字,其实是“不淘汰你就淘汰它”。对了,今天早上保洁阿姨拖地,水渍漫到我工位下方,刚好淹了那根连向机柜的RS232转USB线,导致SQL Server Agent自动备份作业连续失败三次。我没重启线,就把它拎出来甩了甩,像甩体温计一样,三下,然后插回去。它活了。这事我不敢写进手册修订建议里——太不专业。但我刚把那根线缠在左手腕上试了试,还挺稳。 所以你看,手册站得住的地方,从来不是它写得多准,而是它敢把“不该发生却天天发生”的事摊开晾着,不遮不掩。我不打算再通读第二遍,但我会把第83页、112页、还有附录最后一页(那个带二维码的应急响应流程图)裁下来,贴在机柜侧板上。下次谁再提“Linked Server是不是最优解”,我就指指那张纸,然后说:你先读完它,再决定要不要去改BIOS。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

