SAP S4HANA部署实战:从部署方式选型、Linux调优到迁移验证
简介SAP S/4HANA 的部署方式直接影响企业上云的成本、灵活性与运维复杂度也是许多项目选型时的核心议题。这份 docx 文档系统梳理了当前主流的四种部署形态S/4HANA Cloud Essentials原多租户 MTE、S/4HANA Cloud Extended原单租户 STE、S/4HANA Enterprise CloudHEC 私有云以及传统本地部署 On-Premise。针对每种方式文档均说明了其产品命名演变、业务定位与适用场景例如 MTE 强调预配置业务流程、开箱即用STE 侧重在云端进行配置增强与扩展HEC 则提供接近本地版的灵活性适合需要高可控性的企业。资料面向 SAP 项目实施顾问、企业架构师及刚接触 S/4HANA 的运维人员可帮助快速区分各部署模式差异并辅助选型。压缩包共 1 个 docx 文件整体大小仅 62KB内容精炼、结构清晰便于快速查阅。目前已有 244 人学习下载适合作为 SAP S/4HANA 云部署路径的入门参考资料。1. 部署方式不是安装选项先搞清楚SAP S4HANA部署方式在争什么做过 SAP 实施的人应该都有体会讨论 S4HANA 部署方式表面上是在选安装路径实际是在定未来五年的运维模式、成本结构和升级策略。我见过不止一个项目前期只盯着功能迁移把部署方式当成实施顾问顺手填的选项结果系统上线后才发现基础设施的选型把路走死了——想扩容要改架构想上云要重做迁移连打个内核补丁都要协调多方资源。把部署方式拆开看无非是几个核心问题系统跑在谁的硬件上数据库用哪种形态运维边界划在哪里升级路径怎么留。这四件事决定了你后续所有的备份策略、高可用方案、灾备设计和性能调优手段。这篇就按一条可落地的路径来聊从选型逻辑到主机就绪检查从最小化安装验证到升级迁移链路最后落在部署完成后的健康度验证上。新手可以照着做熟手可以重点看参数边界和踩坑记录。2. 四种部署方式的底层逻辑从许可、架构、运维三个维度做选型2.1 先分清楚四个选项On-Premise、云原生、托管云、混合SAP S4HANA 的部署方式在项目里常见的表述是四种传统本地部署、云基础设施上自运维、云厂商托管服务、以及混合部署形态。很多第一次接触的人容易把“在云上买几台虚拟机装 S4HANA”和“使用云厂商的托管服务”当成一回事其实差别非常大。传统本地部署意味着整个技术栈都是自己管从机房、服务器、存储到数据库、应用层IT 团队要有能力覆盖全链路。云上自运维只是把底层硬件从自有机房换成了云主机操作系统往上还是自己负责这种形态比较适合已经有成熟运维体系、但不想再投资硬件的团队。托管服务则是把基础设施和部分平台层的运维责任交给云厂商客户保留应用层的配置和业务运维适合团队规模不大但业务要求高可用和容灾的场景。混合部署在 S4HANA 场景里一般指核心系统放在本地或私有云外围系统或开发测试环境放在公有云中间通过专线或加密通道打通。这种形态不是对所有项目都必要但如果你面临数据驻留合规要求同时又有弹性伸缩的开发测试需求混合就是最务实的选择。2.2 部署方式对许可成本和运维投入的直接影响选部署方式时许可模型是一个绕不开的维度。SAP 对本地部署和云部署的许可规则并不完全一致同样是用户许可部署在云环境时可能涉及不同的计量方式和供应商条款。有个容易忽略的细节部分云厂商的托管服务里已经包含了基础设施的合规认证但 SAP 的许可合规审计仍然需要客户自己配合别指望云厂商替你兜底。运维投入的差异更明显。本地部署下每周的内核补丁、数据库维护、磁盘扩容都是自己扛遇到存储性能瓶颈还得自己排查是 SAN 配置还是文件系统参数的问题。云上自运维会好一点扩磁盘、加节点比较方便但操作系统层的性能调优还是跑不掉。托管服务最省心但代价是自由度下降例如你想用特定的文件系统参数或者自定义内核参数可能因为托管平台的标准化限制而无法落地。2.3 我建议的选型判断顺序先看团队再看业务我给客户的建议顺序一直是先评估运维团队的能力边界再评估业务对可用性和弹性的要求最后才是成本。团队连基础的数据备份恢复演练都没做过就别碰自运维模式业务允许半小时恢复时间那也不一定需要上托管的高可用方案。另外一个关键判断点是未来的升级路径。SAP 的发布节奏已经转向持续创新模式每季度都有创新包每年有主要发布版本。如果你选择本地部署意味着升级工作基本都是自己掌控节奏可以等稳定后再升如果选托管服务升级窗口常常会被平台侧的维护计划影响。这一点在选型时就要和云厂商确认清楚维护窗口谁定、升级兼容性谁测、出问题谁负责。提示选型阶段不要只看部署当月的成本对比建议把三年期的运维人力、升级投入、基础设施费用拉通估算很多项目第二年的运维成本会超出预期问题往往出在选型时没算运维人力的隐性投入。3. 部署前的就绪排查用检查工具做硬件、文件系统与内核参数的验收3.1 什么是SAP S4HANA部署前的“体检清单”部署方式定下来之后第一件实际落地的事不是装软件而是确认底层环境满足 SAP 的支撑要求。这里说的“支撑要求”不是简单看一下 CPU 几核、内存多大而是包含内核版本、文件系统挂载参数、io 调度器设置、大页内存配置、网络延迟要求等多个维度。SAP 官方把这套校验逻辑沉淀成了检查工具但工具只是入口真正决定你后续顺不顺的是对这些参数的理解。SAP S4HANA 对 Linux 环境的依赖比传统 ECC 时代要敏感得多。HANA 数据库本身对内存访问延迟、NUMA 拓扑感知、文件系统的 page cache 行为都有明确要求你在部署前一跳过了参数核对后面出现莫名其妙的高 CPU 或者偶发慢查询时排查成本会翻好几倍。3.2 用sapconf和HANA针对性的检查配置模板在 SUSE Linux 上部署 S4HANA 是当前最常见的落地组合。SUSE 提供了一个叫做 sapconf 的配置工具它把 SAP 推荐的系统参数集中封装起来你只需要启用对应的 profile系统会自动应用一组经过验证的内核和运行时参数。# 安装 sapconf zypper install sapconf # 启用并启动服务 systemctl enable sapconf systemctl start sapconf # 查看当前应用的配置摘要 sapconf --statussapconf 的参数调整范围包括 vm.max_map_count、kernel.sem、fs.aio-max-nr 等。部署前跑一下能避免大量手工配置遗漏。但注意sapconf 不是万能的HANA 数据库有自己独立的调优维度尤其是 NUMA 绑定和透明大页的处理。# 检查透明大页当前状态always 或 madvise 都不符合 SAP 推荐 cat /sys/kernel/mm/transparent_hugepage/enabled # SAP 推荐使用 never临时修改 echo never /sys/kernel/mm/transparent_hugepage/enabled # 持久化修改写入 grub 配置 sed -i s/GRUB_CMDLINE_LINUX/GRUB_CMDLINE_LINUXtransparent_hugepagenever / /etc/default/grub grub2-mkconfig -o /boot/grub2/grub.cfg这个操作有两层含义一是消除 HANA 数据库在大页分配时的抖动风险二是避免透明大页的内存回收机制引发性能毛刺。很多现场的性能问题都是玄学级别的偶发查到最后就是透明大页在捣乱。3.3 存储与文件系统挂载参数的实测建议HANA 的数据目录和日志目录对文件系统有明确诉求推荐做法是分开挂载使用 xfs 文件系统配合特定的挂载参数。下面是我常用的一组挂载模板# /hana/data 与 /hana/log 分开挂载使用 noatime 提升性能 mkdir -p /hana/data /hana/log mount -t xfs -o noatime,nodiratime,logbsize256k /dev/sdb1 /hana/data mount -t xfs -o noatime,nodiratime,logbsize256k /dev/sdc1 /hana/log # 写入 /etc/fstab 实现开机自动挂载注意加 _netdev 防止网络存储就绪前挂载失败 echo /dev/sdb1 /hana/data xfs noatime,nodiratime,logbsize256k,_netdev 0 0 /etc/fstab echo /dev/sdc1 /hana/log xfs noatime,nodiratime,logbsize256k,_netdev 0 0 /etc/fstab挂载参数里的 logbsize256k 是为了满足 HANA 日志卷的写入特征默认的 32k 在重负载下会产生过多的日志提交开销。_netdev 参数是网络存储场景的必备项防止开机时存储未就绪导致挂载失败进而影响数据库拉起。文件系统布局定了之后还要验证 IO 延迟。# 用 fio 做 4k 随机写测试重点关注 clat 的 p99 值 fio --namehana_test --rwrandwrite --bs4k --size10G --runtime60 --ioenginelibaio --iodepth32 --direct1 --filename/hana/data/fiotest.fileSAP 对 HANA 数据卷的延迟要求一般建议 p99 延迟保持在 10ms 以内日志卷对应延迟要求更低。如果在测试阶段就经常超过这个阈值后续数据库检查点刷新和日志归档都会拖慢整体性能这个坑不要留到上线后再去踩。4. 规划与执行用最小化软件调配流程跑通 S4HANA 部署验证4.1 模拟项目X的就绪盘点部署规划需要先落一张表部署方式确认后第一步是输出一份环境规划表。别急着下软件先把每一个环节的规格确认下来后面装系统时才不会反复返工。我一般会按下面的字段准备一张表发给基础设施团队逐项确认规划项推荐值/要求说明主机名与 IP 分配固定静态 IP/etc/hosts 统一维护S4HANA 对主机名解析敏感性极高Linux 版本SUSE Linux Enterprise Server 15 及以上与 S4HANA 版本匹配的 SLES 版本文件系统布局/usr/sap、/hana/shared、/hana/data、/hana/log 分离挂载避免单一文件系统空间耗尽拖垮整体swap 空间建议关闭或极小化HANA 场景依赖内存swap 容易引发性能陷阱内核参数通过 sapconf 统一管理避免手工遗漏环境表确认后要签字确认这步是我在每个项目里都坚持的流程。没有这张表后面安装中一旦遇到问题你会陷入基础设施和 SAP 层互相甩锅的被动局面。4.2 用软件调配流程创建全新系统的过程与参数说明在 S4HANA 场景里创建全新系统的经典路径是用 SAP 的软件调配工具加载数据库和应用程序实例。整个过程看似是向导式的但每一步的选择都会影响后续运维这里重点讲几个关键选择。# 以 s4h 用户执行软件调配流程的启动命令 ./sapinst SAPINST_USE_LDAPfalse SAPINST_JVM_HOME/usr/lib/jvm/java-11-openjdk # 选择参数文件路径指定安装目录 SAPINST_INSTALL_DIR/usr/sap/install软件调配工具对于 S4HANA 的安装越来越简化但在运行前要注意 JAVA 环境的版本匹配Java 版本不对会直接导致安装进程无法启动。SAPINST_USE_LDAPfalse 是大多数没有集成企业身份认证源的项目必须显式指定的参数避免工具默认尝试连接 LDAP 导致超时。进入交互界面后需要填的关键参数包括 SID、实例编号、数据库密码、管理员密码。SID 必须是三位字母数字组合不能以数字开头。实例编号默认是 00但如果你规划了多个实例建议从一开始就区分开。数据库密码和管理员密码在 SAP 的密码策略里有长度和复杂度要求建议提前按规则准备。4.3 数据库加载环节最容易出问题的参数与初始化步骤S4HANA 的数据库加载会初始化 HANA 数据库并导入系统数据这个过程依赖的内存和并行度参数需要提前规划。常见做法是通过 hdbparam 工具调整或者在加载前通过环境变量控制并行度。# 查看当前 HANA 实例的并行度设置 hdbparam --param_mgmt hdbparam --get --parameter_nameparallel # 设置并行度为物理 CPU 核心数的一半避免加载时资源争抢过激 hdbparam --set --parameter_nameparallel --values8并行度设置的核心逻辑是平衡加载速度和系统稳定性。并行度太高时 HANA 会大量占用 CPU 和内存导致操作系统层响应变慢极端情况下触发内核 OOM并行度太低时数据加载时长成倍增加。物理核心数的一半是个相对安全的起点。加载过程出现报错时最先要看的是两个日志软件调配工具的日志和 HANA 数据库的 trace 日志。绝大多数加载失败都指向存储性能不达标、密码策略冲突、主机名解析异常这三类问题按这个优先级排查能省下大量时间。注意加载过程中不要手动重启服务或调整系统参数。HANA 的初始化阶段对外部干扰很敏感遇到卡住的情况先看日志判断是否在正常执行阶段十分钟无输出再考虑介入。5. 迁移链路的常见问题升级到 S4HANA 时最常踩的几个坑5.1 升级与迁移混为一谈先确认你要做的是哪种路径部署方式落地后很多团队会面临从现有系统升级到 S4HANA 的情况。这里有一个必须先厘清的概念升级和迁移不是一回事。简单说升级是在同一套基础设施上做版本跃迁迁移是把系统搬到新的基础设施上而 S4HANA 的常见落地路径往往是两者叠加。搞清楚路径的意义在于选择工具集。纯升级场景主要依赖软件更新管理器如果涉及数据库平台更换例如从其他数据库迁到 HANA就需要额外的迁移工具链参与如果底层基础设施也换了例如从物理机迁到云主机还需要考虑数据复制或导入导出的方式。很多项目翻车都是因为没有梳理清楚自己的路径少做了某一环的数据验证。5.2 软件更新管理器运行时的三个高频报错与对策软件更新管理器是 SAP 提供的标准升级工具正常情况下可以完成大部分升级工作但现场执行时高频出现几个固定问题。第一个是磁盘空间预估不足。升级过程会把待导入的软件包先解压到临时目录同时还会备份被替换的文件空间需求比安装包本身大得多。经验值是预留至少 1.5 倍于 SUM 工作目录的体积作为余量否则升级到一半磁盘写满整个流程只能回滚重来。第二个问题是数据库连接串配置错误。SUM 执行时需要通过数据库连接确认源系统版本和目标版本很多场景下客户环境里存在多个数据库实例连接串写错实例会把校验阶段直接卡死。建议执行前用数据库客户端手工连接一次确认无误再启动 SUM。第三个是自定义代码兼容性检查耗时过长。SUM 阶段会触发自定义代码的兼容性扫描如果你的系统里历史遗留了大量未注释的增强代码这个环节可能要跑数小时。最稳妥的对策是提前用工具做一次静态扫描把已知的兼容性问题在升级窗口前修掉不要把压力留到升级过程中。5.3 数据迁移中存量数据清洗的边界哪些必须清、哪些可以不清数据库迁移到 HANA 的过程中存量数据质量对迁移时间有直接影响。SAP 的数据迁移工具在导入阶段会做数据类型映射字段长度超限、非标准编码字符、空值异常都可能导致导入中断或目标库数据异常。经验上需要在迁移前强制清理三类数据废弃的日志表、大字段里无效的二进制内容、长期未清理的业务归档数据。把这三类数据压缩掉迁移耗时往往能缩短 20% 以上。但注意不要把清洗范围无限扩大尤其是财务凭证和物料主数据这类核心业务数据过度清洗导致的业务损失风险远大于收益。我一般建议只在技术层面做必要的数据修剪业务层面的数据治理问题留在后续的持续运营中去逐步解决。6. 部署完成后的验证习惯用静默监控替代开机式确认S4HANA 部署完成不代表可以收工。我习惯在部署后做一轮持续的静默验证而不是装完查一下服务状态就觉得万事大吉。具体做法是连续观察七天的系统日志、数据库 trace 文件和性能视图重点排查那些偶发的、不明显但在生产环境会放大的隐患。比如数据库的日志备份频率是否稳定如果某时段备份耗时突然拉长通常是存储层的 IO 竞争问题在发酵。再比如内存分配曲线HANA 内存在运行一周后会进入稳定期如果曲线持续上行说明有内存泄漏或某类查询在大量消耗内存会话。通过 SAP 的 HANA Studio 或命令行工具都可以查看这些指标。-- 检查 HANA 内存分配趋势 SELECT * FROM M_MEMORY_RECORDINGS WHERE TIME CURRENT_TIMESTAMP - 7 DAYS ORDER BY TIME DESC; -- 查看最近一周的慢查询记录 SELECT * FROM M_EXPENSIVE_STATEMENTS WHERE START_TIME CURRENT_TIMESTAMP - 7 DAYS ORDER BY DURATION_MICROSECONDS DESC;这两条 SQL 是部署后验证阶段我每天必跑的。内存分配趋势可以快速识别内存异常增长慢查询记录则能暴露索引缺失或统计信息过期的问题。部署团队通常只关注系统能启动、业务能运行但真正决定上线后是否会被频繁叫醒的是这些静默指标。我的习惯是部署结束后把这两条 SQL 的输出存成基线快照跑完一周后和基线做对比。如果偏差在 15% 以内算健康超过这个范围就要深入排查。这个习惯帮我提前发现过多次潜在问题也让后续运维交接时有了明确的验收依据。希望这轮分享对你的 S4HANA 部署之路有帮助少踩坑、多省心。本文还有配套的精品资源点击获取

相关新闻

PHP外卖点餐源码实战:纯原生部署与核心功能解析

PHP外卖点餐源码实战:纯原生部署与核心功能解析

简介:这是一套面向PHP初学者与中小型餐饮项目开发者的外卖点餐系统源码,聚焦界面美观性与功能易用性,帮助开发者快速搭建可上线的在线订餐平台。资源共1166个文件,涵盖193个核心PHP后端逻辑文件、325个GIF/412个JPG等前端资源图、…

2026/10/14 16:03:08 阅读更多 →
IDEA连接MySQL报错排查:驱动加载与serverTimezone配置详解

IDEA连接MySQL报错排查:驱动加载与serverTimezone配置详解

昨天隔壁A同学又卡在IDEA连接MySQL这一步了。密码没错,端口没错,MySQL服务也确认在跑,可连接面板里就是弹错——一会儿是找不到驱动类,一会儿又是时区值无法识别。我过去帮他调驱动、补时区参数,前后不到五分钟。事情虽…

2026/10/14 16:03:08 阅读更多 →
不用重装系统!自制U盘小工具,开机几秒清除Windows登录密码

不用重装系统!自制U盘小工具,开机几秒清除Windows登录密码

过年回家遇到的破事,让我写了个开机就能清密码的小工具先交代下背景。过年回老家,亲戚抱来一台旧笔记本,说是家里孩子上网课用的,搁了半年多没开机,现在想用却进不去——密码早忘了,试了无数次,…

2026/10/14 16:03:08 阅读更多 →

最新新闻

AI Agent状态清理:超时重试背后的系统性风险与四维治理

AI Agent状态清理:超时重试背后的系统性风险与四维治理

1. 这不是超时和重试的问题,是状态管理的系统性溃败“给 AI Agent 加超时和重试后,我才发现真正的坑在状态清理”——这句话刚在内部技术群刷出来时,我正盯着一个跑了37分钟、卡在waiting_for_tool_execution状态、内存占用飙升到4.2GB却毫无…

2026/10/14 16:41:53 阅读更多 →
嵌入式Qt记事本开发全链路:从交叉编译到中文文件IO

嵌入式Qt记事本开发全链路:从交叉编译到中文文件IO

简介:这是一份基于Qt6开发的跨平台记事本项目源码,面向嵌入式与桌面应用开发初学者及Qt进阶学习者,聚焦GUI界面构建、文件编码处理与轻量级文本编辑功能实现。项目完整呈现了现代C在Qt框架下的典型工程实践,涵盖主窗口&#xff08…

2026/10/14 16:41:53 阅读更多 →
计算机系统概论第一章答案精讲:ISA、微架构与算法性质

计算机系统概论第一章答案精讲:ISA、微架构与算法性质

简介:计算机系统概论(原书第二版)第一章习题答案以PDF形式提供,面向计算机专业学生、考研读者和自学入门者,用于对照教材习题检验对计算机系统基础概念的掌握。内容选自原书附录的精选解答,覆盖冯诺依曼通用…

2026/10/14 16:41:53 阅读更多 →
远视储备与近视防控:从原理到实操的家长指南

远视储备与近视防控:从原理到实操的家长指南

1. 远视储备不是“储备”,而是一笔会不断消耗的视力存款1. 远视储备不是“储备”,而是一笔会不断消耗的视力存款1.1 远视储备到底是什么很多家长第一次听到“远视储备”这个词,是在幼儿园体检或者眼科门诊的报告单上。医生指着上面的数字说&a…

2026/10/14 16:41:53 阅读更多 →
Python数据挖掘实战:K均值聚类从原理到应用

Python数据挖掘实战:K均值聚类从原理到应用

1. 从一个真实需求说起:为什么K均值聚类值得你花时间搞懂做数据挖掘这些年,我越来越觉得,K均值聚类是那种“看起来简单、用起来真香、但踩坑也真不少”的算法。很多刚入门的朋友一听到“无监督学习”四个字就头大,觉得没有标签怎么…

2026/10/14 16:41:53 阅读更多 →
MinGW-w64离线安装包:断网Windows下C/C++工具链部署指南

MinGW-w64离线安装包:断网Windows下C/C++工具链部署指南

简介:MinGW-w64是为64位Windows系统打造的GCC工具链离线安装包,面向需要在Windows环境下学习或开展C语言开发的程序员。压缩包约2000个文件、133.98MB,主要由h头文件、Python脚本、a静态库、pyc编译文件、exe可执行程序、dll动态库及少量c源文…

2026/10/14 16:40:52 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →