Oracle数据库内存配置实战:从SGA/PGA架构到性能调优
1. 项目概述为什么数据库内存配置是DBA的必修课干了这么多年数据库运维我处理过无数性能问题其中十有八九都跟内存配置脱不了干系。尤其是Oracle数据库它的内存结构就像一个精密的“内存工厂”各个组件SGA、PGA分工明确任何一块配置不当都可能让整个系统从“高速公路”变成“乡间小道”。今天要聊的“查看与修改Oracle数据库内存配置”听起来像是基础操作但背后涉及的是对数据库核心运行机制的理解。很多新手DBA只会用show parameter sga看一眼觉得数字差不多就行结果上线后遇到性能瓶颈排查半天才发现是内存分配不合理该大的没大该小的没小。这个内容适合所有正在或即将管理Oracle数据库的朋友无论是刚入行的新人还是想巩固基础的老手。通过它你不仅能学会几个命令更能理解每个内存区域的作用知道在什么场景下该调整哪个参数以及调整时如何避免“踩坑”。毕竟在数据库的世界里内存就是性能的“弹药库”配置好了事半功倍配置错了后患无穷。接下来我会结合实战经验从设计思路到实操命令再到避坑指南带你彻底搞懂Oracle内存配置这门手艺。2. 内存架构核心设计与思路拆解2.1 Oracle内存的“双核心”架构SGA与PGAOracle的内存管理主要围绕两大核心区域系统全局区SGA和程序全局区PGA。你可以把SGA想象成数据库的“共享客厅”所有服务器进程比如处理你SQL查询的进程都可以在这里存取数据。而PGA则是每个服务器进程的“私人书房”存放只跟自己相关的临时数据。这种设计是为了平衡共享与私有数据的访问效率。SGA内部又细分了几个关键池子数据库缓冲区缓存Database Buffer Cache这是最重要的部分相当于数据块的“高速缓存”。频繁读取的数据块会驻留在这里下次访问时直接从内存读取避免昂贵的磁盘I/O。它的命中率是衡量数据库性能的关键指标。共享池Shared Pool主要存放SQL语句的解析结果执行计划、数据字典缓存等。如果共享池太小数据库就得反复解析相同的SQL消耗大量CPU资源。重做日志缓冲区Redo Log Buffer临时存放数据库变更记录重做日志的小块内存后台进程LGWR会定期将其写入磁盘的重做日志文件。这个区域通常不大但设置过小会导致LGWR频繁写盘影响事务提交速度。大型池Large Pool为特定操作如并行查询、RMAN备份恢复提供大块内存分配避免占用共享池。Java池Java Pool和流池Streams Pool用于支持Java程序和Oracle流功能在特定场景下使用。PGA则主要包含私有SQL区存放绑定变量、运行时内存结构等。排序区用于ORDER BY、GROUP BY等排序操作。如果排序数据量超过此区域就会使用临时表空间在磁盘上进行排序性能急剧下降。哈希区用于哈希连接操作。位图合并区用于位图索引操作。理解这个架构是进行任何配置调整的前提。调整内存不是简单地调大数字而是要根据你的应用类型是OLTP在线交易还是OLAP数据分析来合理分配资源。比如OLTP系统事务频繁应保证足够的Buffer Cache来缓存热点数据而OLAP系统涉及大量复杂查询和排序则需要更大的PGA特别是排序区。2.2 自动内存管理AMM与手动管理的抉择从Oracle 11g开始引入了自动内存管理AMM和自动共享内存管理ASMM这大大简化了DBA的工作。AMM通过设置一个总内存目标MEMORY_TARGET让数据库实例自动在SGA和PGA之间分配内存。ASMM则更进一步在SGA内部自动调整各个组件如Buffer Cache、Shared Pool的大小。那么到底该用自动还是手动这取决于你对数据库的控制粒度要求。使用AMM/ASMM推荐给大多数场景优点省心省力数据库根据负载自动调整能适应大多数波动的工作负载。特别适合初期对负载模式不了解或者负载变化较大的系统。操作你只需要设定一个合理的总内存上限MEMORY_MAX_TARGET和当前目标MEMORY_TARGET或者SGA总目标SGA_TARGET即可。场景通用的OLTP或混合型系统。使用手动管理适合资深DBA和特定场景优点完全掌控可以将每一分内存都分配到你认为最关键的组件上避免自动调整可能带来的短暂性能波动。缺点配置复杂需要深厚的经验。如果配置不当容易造成资源浪费或瓶颈。场景性能要求极其苛刻、负载模式极其稳定的核心系统或者你已经通过长期监控对数据库的内存需求了如指掌。我的经验是对于生产系统尤其是Oracle 11g及以后的版本优先考虑使用ASMM即设置SGA_TARGET。这样既能享受SGA内部自动调优的便利又能将PGA的管理交给PGA_AGGREGATE_TARGET参数自动PGA管理取得一个很好的平衡点。完全手动管理只应在有明确优化目的时采用。3. 核心细节解析与实操要点3.1 查看内存配置的“全景图”与“显微镜”查看内存状态我们既需要一张“全景图”了解整体分配也需要“显微镜”洞察每个组件的细节。1. 全景图查看SGA和PGA的总体情况最直接的方法是使用SQL*Plus连接数据库后执行SHOW PARAMETER TARGET这条命令会列出所有以_TARGET结尾的关键内存参数包括MEMORY_TARGET,SGA_TARGET,PGA_AGGREGATE_TARGET等让你一眼看清是自动管理还是手动管理以及目标值是多少。要查看更详细、动态的SGA组件信息可以查询V$SGAINFO和V$SGA_DYNAMIC_COMPONENTS视图-- 查看SGA各组件当前大小、最小大小等信息 SELECT component, current_size/1024/1024 as current_size_mb, min_size/1024/1024 as min_size_mb FROM v$sga_dynamic_components WHERE current_size 0;V$SGA_DYNAMIC_COMPONENTS视图在ASMM启用时特别有用它能显示每个自动调整组件当前的实际大小。2. 显微镜深入关键组件查看Buffer Cache命中率这是衡量Buffer Cache效率的生命线。SELECT 1 - (phy.value / (cur.value con.value)) Buffer Cache Hit Ratio FROM v$sysstat cur, v$sysstat con, v$sysstat phy WHERE cur.name db block gets AND con.name consistent gets AND phy.name physical reads;通常这个比率应高于95%甚至99%。如果过低说明需要增大DB_CACHE_SIZE或提高SGA_TARGET。查看Shared Pool使用情况SELECT pool, name, bytes/1024/1024 as size_mb FROM v$sgastat WHERE pool shared pool ORDER BY bytes DESC;关注free memory是否持续过小以及SQL area等是否占用过大。频繁的“ORA-04031: 无法分配...共享内存”错误往往意味着共享池不足。查看PGA使用情况SELECT * FROM v$pgastat;重点关注aggregate PGA target parameter目标值、total PGA allocated当前已分配、total PGA inuse当前正在使用以及over allocation count如果大于0说明PGA目标设置不足发生过超额分配会影响性能。 注意所有查看操作建议在数据库负载相对平稳和高峰时段分别进行记录下波动范围这样才能得到真实的需求画像。单次快照的参考价值有限。3.2 修改内存配置的“安全操作指南”修改内存配置尤其是在生产环境必须像做外科手术一样谨慎。一个错误的参数可能导致实例无法启动或性能严重下降。1. 修改的两种主要途径动态修改在线修改对于支持动态修改的参数如SGA_TARGET,PGA_AGGREGATE_TARGET,MEMORY_TARGET以及许多SGA组件的具体大小可以使用ALTER SYSTEM SET命令立即生效或在下一次重启后生效。这是首选方式因为它无需重启数据库。-- 立即将SGA_TARGET增大到4G ALTER SYSTEM SET SGA_TARGET 4096M SCOPEBOTH; -- SCOPEBOTH 表示立即生效且写入服务器参数文件spfile重启后依然有效。 -- SCOPEMEMORY 仅内存中生效重启后失效。 -- SCOPESPFILE 只修改参数文件重启后生效。静态修改需重启有些参数如SGA_MAX_SIZE SGA的最大尺寸是静态的修改后必须重启数据库实例才能生效。修改这类参数通常是为了设定一个“硬上限”。ALTER SYSTEM SET SGA_MAX_SIZE 6144M SCOPESPFILE; -- 然后需要重启数据库 SHUTDOWN IMMEDIATE; STARTUP;2. 从自动管理切换到手动管理的特殊步骤如果你决定禁用ASMM改为完全手动管理需要按顺序操作首先将SGA_TARGET设置为0。ALTER SYSTEM SET SGA_TARGET 0 SCOPEBOTH;然后分别手动设置各个SGA组件的大小例如ALTER SYSTEM SET DB_CACHE_SIZE 2048M SCOPEBOTH; ALTER SYSTEM SET SHARED_POOL_SIZE 1024M SCOPEBOTH; ALTER SYSTEM SET LARGE_POOL_SIZE 256M SCOPEBOTH; ... -- 设置其他需要的组件 重要提示在将SGA_TARGET设为0之前务必记录下当前V$SGA_DYNAMIC_COMPONENTS视图中各组件的大小作为你手动设置时的参考基准。盲目设置可能导致性能问题。3. 修改MEMORY_TARGET的注意事项MEMORY_TARGET是AMM的总内存目标。增加它通常很安全但减少它时数据库可能无法立即释放多余内存给操作系统只有当有新的进程需要分配内存时才会逐步释放。另外MEMORY_TARGET不能超过MEMORY_MAX_TARGET如果需要增大MEMORY_TARGET的上限需要先修改MEMORY_MAX_TARGET静态参数需重启。4. 实操过程与核心环节实现4.1 场景演练为一个新上线系统配置内存假设我们正在部署一套新的Oracle 19c数据库服务器物理内存为64G预计用于Oracle实例的内存约为48G。这是一个以OLTP为主的混合型业务系统。步骤1规划与初始配置我们决定采用“ASMM 自动PGA管理”的平衡方案。确定SGA_MAX_SIZE为SGA设定一个硬上限比如40G防止其过度膨胀。-- 在安装后或初始化阶段修改spfile ALTER SYSTEM SET SGA_MAX_SIZE 40G SCOPESPFILE;设置SGA_TARGET这是SGA的初始目标和自动调整的依据。我们先设置为32G。ALTER SYSTEM SET SGA_TARGET 32G SCOPEBOTH;设置PGA_AGGREGATE_TARGET为PGA总大小设定目标。剩下的内存48G - 32G 16G并非全给PGA要留给操作系统和其他进程。我们先设置为12G。ALTER SYSTEM SET PGA_AGGREGATE_TARGET 12G SCOPEBOTH;可选设置MEMORY_MAX_TARGET和MEMORY_TARGET如果我们想使用更彻底的AMM可以设置这两个参数。但在这个场景我们选择更可控的ASMM。步骤2上线后监控与初步调整系统运行一周后我们收集监控数据。发现Buffer Cache命中率稳定在99.5%很好。但Shared Pool的“free memory”经常低于100M且存在少量库缓存未命中。这说明共享池有些紧张。PGA的over allocation count为0但total PGA allocated平均在10G左右峰值接近12G。调整操作我们决定从SGA中挪一部分资源给Shared Pool。由于使用了ASMM我们不需要直接调大SHARED_POOL_SIZE而是适当增大SGA_TARGET让数据库自动将增量更多地分配给共享池。同时我们为Shared Pool设置一个最小保证值防止它被过度压缩。-- 将SGA总目标从32G提升到34G ALTER SYSTEM SET SGA_TARGET 34G SCOPEBOTH; -- 为Shared Pool设置一个最小大小比如2G确保核心的SQL和字典缓存不被挤出 ALTER SYSTEM SET SHARED_POOL_SIZE 2G SCOPEBOTH; -- 注意在ASMM下SHARED_POOL_SIZE参数的意义变成了“最小值”。4.2 参数调整的现场记录与计算过程调整不是拍脑袋需要有依据。比如如何计算Buffer Cache该设多大一个粗略但常用的方法是Buffer Cache大小 ≈ 活跃数据集的容量。如何估算活跃数据集查询一段时间内比如一天访问最频繁的段表、索引SELECT obj.owner, obj.object_name, obj.object_type, bh.tch FROM (SELECT tch, file#, block#, obj FROM x$bh ORDER BY tch DESC) bh, dba_objects obj WHERE bh.obj obj.data_object_id AND ROWNUM 20; -- 查看最热的20个块所属对象估算这些核心对象的总大小。这可以给你一个Buffer Cache大小的下限参考。另一个关键计算是PGA_AGGREGATE_TARGET的估算。Oracle官方提供了一个初始估算公式PGA_AGGREGATE_TARGET (物理内存总大小 * 80%) - SGA_TARGET但更科学的方法是监控V$PGA_TARGET_ADVICE视图。这个视图会基于历史负载预测不同PGA目标值下的性能表现如预计的缓存命中率。SELECT round(pga_target_for_estimate/1024/1024) target_mb, estd_pga_cache_hit_percentage cache_hit_percent, estd_overalloc_count FROM v$pga_target_advice;你应该选择一个能使estd_pga_cache_hit_percentage达到90%以上且estd_overalloc_count为0或极小的PGA_AGGREGATE_TARGET值。5. 常见问题与排查技巧实录5.1 典型问题速查表问题现象可能原因排查命令/视图解决思路ORA-04031: 无法分配...共享内存Shared Pool空间不足或存在内存碎片。SELECT * FROM v$sgastat WHERE poolshared pool ORDER BY bytes DESC;SELECT * FROM v$shared_pool_advice;1. 增大SHARED_POOL_SIZE在ASMM下是设置最小值或SGA_TARGET。2. 检查并优化应用避免过多的硬解析使用绑定变量。3. 执行ALTER SYSTEM FLUSH SHARED_POOL;谨慎会清空SQL缓存作为临时缓解。Buffer Cache命中率持续低于90%Buffer Cache太小无法缓存活跃数据。SELECT name, value FROM v$sysstat WHERE name IN (db block gets, consistent gets, physical reads);SELECT * FROM v$db_cache_advice;1. 增大DB_CACHE_SIZE或SGA_TARGET。2. 使用V$DB_CACHE_ADVICE视图获取调整建议。3. 优化SQL减少不必要的全表扫描。大量查询出现“临时表空间磁盘排序”PGA不足特别是排序区太小。SELECT name, value FROM v$sysstat WHERE name sorts (disk);SELECT * FROM v$pgastat WHERE name LIKE %over%;SELECT * FROM v$pga_target_advice;1. 增大PGA_AGGREGATE_TARGET。2. 优化SQL语句减少排序操作的数据量如添加索引、优化WHERE条件。修改MEMORY_TARGET后实例无法启动设置的值超过了操作系统可用内存或MEMORY_MAX_TARGET的限制。查看告警日志alert_sid.log通常会有明确错误。1. 启动到nomount状态使用CREATE PFILE FROM SPFILE;创建pfile手动修改pfile中的错误参数再使用CREATE SPFILE FROM PFILE;重建spfile。2. 确保MEMORY_TARGETMEMORY_MAX_TARGET且总和小于物理可用内存。ASMM下某个组件如Large Pool被自动调得很小该组件近期负载很低ASMM将内存分配给了更活跃的组件如Buffer Cache。SELECT component, oper_type, oper_mode, final_size/1024/1024 final_mb FROM v$sga_resize_ops ORDER BY start_time DESC;1. 如果该组件是必需的例如用于RMAN备份可以为其设置一个最小值如LARGE_POOL_SIZE 256M防止被过度压缩。2. 或者接受这种动态调整因为这是ASMM的设计目的。5.2 独家避坑技巧与心得“小步快跑持续观察”原则调整内存参数尤其是生产环境切忌一次性调整幅度过大。比如不要一下子把SGA从16G改成32G。建议每次调整幅度不超过20%调整后观察至少一个完整的业务周期一天或一周确认性能指标和系统稳定性后再决定下一步。善用顾问视图*_ADVICEOracle提供了大量以_ADVICE结尾的动态性能视图如V$DB_CACHE_ADVICE,V$SHARED_POOL_ADVICE,V$PGA_TARGET_ADVICE。这些视图基于当前负载模拟预测不同配置下的性能是调整前最重要的决策依据。不要凭感觉调要看数据。关注操作系统内存使用别忘了Oracle是运行在操作系统之上的。使用free -gLinux或top命令确保系统有足够的空闲内存和Swap空间。如果操作系统开始频繁使用Swap说明物理内存已严重不足此时调整数据库内存参数治标不治本需要考虑扩容服务器内存。修改前备份spfile在执行任何ALTER SYSTEM SET ... SCOPESPFILE操作前习惯性地备份一下服务器参数文件是一个好习惯。CREATE PFILE/tmp/pfile_backup.ora FROM SPFILE;这样万一参数修改导致实例无法启动你可以用这个pfile快速恢复。理解“立即生效”与“重启生效”SCOPEBOTH和SCOPEMEMORY的区别一定要清楚。对于关键的生产参数我个人的习惯是先在测试环境或业务低峰期用SCOPEMEMORY测试效果确认无误后再在合适的维护窗口用SCOPEBOTH使其永久化。避免将一个有问题的参数设置永久化到spfile导致每次重启都出问题。内存配置不是孤立的内存性能问题有时是SQL语句效率低下的表象。在调整内存前先使用AWR/ASH报告、SQL监控等工具分析一下Top SQL。很多时候优化一条糟糕的全表扫描SQL比盲目增大Buffer Cache能带来更大的性能提升。内存优化和SQL优化必须双管齐下。

相关新闻

廉贞破军在卯酉:紫微斗数中矛盾格局的深度解析与人生驾驭

廉贞破军在卯酉:紫微斗数中矛盾格局的深度解析与人生驾驭

1. 项目概述:当“桃花犯主”遇上“破军荡地” 在紫微斗数的星曜体系中,廉贞与破军的组合,历来被视作一个充满张力与变数的课题。当这两颗性质迥异的星曜在卯、酉两个宫位同宫坐命时,便构成了命理学中一个极具探讨价值的格局——“…

2026/10/17 8:12:24 阅读更多 →
不想再手动发文章了,我写了个工具自动搞定 9 个平台(附源码)

不想再手动发文章了,我写了个工具自动搞定 9 个平台(附源码)

先说下我自己遇到的情况。 我平时写技术文章,一般会发到掘金、CSDN、知乎、思否、博客园这几个地方。每次发完一圈,一个多小时过去了。其实内容是一样的,就是操作得重复五遍。 这种重复劳动真的很消磨写东西的热情。有时候想到发文章这么麻烦…

2026/10/17 8:15:25 阅读更多 →
Floyd算法实战:C语言解“哈利·波特的考试”图论问题

Floyd算法实战:C语言解“哈利·波特的考试”图论问题

1. 题目解析与核心需求拆解 “哈利波特的考试”这道题,是很多C语言学习者和算法初学者在练习数据结构(尤其是图论)时,会遇到的一道经典题目。我第一次看到这个标题时,也以为会有什么魔法咒语或者复杂的剧情逻辑&#x…

2026/10/16 15:08:55 阅读更多 →

最新新闻

Unity3D实时人像分割:摄像头取流、ONNX推理与Shader合成实战

Unity3D实时人像分割:摄像头取流、ONNX推理与Shader合成实战

简介:一套基于Unity3D的人体图像分割源码工程,面向Unity开发者、AR/VR及体感交互领域从业者,解决从摄像头或视频画面中实时分离人物与背景的需求。工程基于BodyPix Onnx模型,通过Barracuda推理引擎在Unity环境中运行,支…

2026/10/18 14:32:35 阅读更多 →
C++模板元编程实战:编译期计算与类型安全的五大场景

C++模板元编程实战:编译期计算与类型安全的五大场景

1. 先搞清楚:模板元编程到底在解决哪一类问题1.1 运行期多态与编译期分发的成本差异要说模板元编程,先讲一段我自己的经历。去年有一次做一个图像处理模块的优化,原代码用虚函数做多态分发,不同的像素格式对应不同的处理派生类。功…

2026/10/18 14:32:35 阅读更多 →
CentOS 7 从零安装 CUDA 11.2 与 NVIDIA 驱动完整指南

CentOS 7 从零安装 CUDA 11.2 与 NVIDIA 驱动完整指南

1. 为什么在 CentOS 7 上装 CUDA 11.2 值得单独写一篇CentOS 7 这个系统版本,做过深度学习环境部署的人对它感情都很复杂。它稳定、干净、服务器兼容性好,很多单位的计算节点至今还跑着它;但它的内核版本老、GCC 版本低、默认驱动仓库里的东西…

2026/10/18 14:32:35 阅读更多 →
FontAwesome Pro 5.15.1 离线部署与前端工程化接入指南

FontAwesome Pro 5.15.1 离线部署与前端工程化接入指南

简介:面向前端开发者的专业图标字体库 FontAwesome Pro 5.15.1 Web 压缩包,提供了大量矢量图标与配套样式说明,能直接嵌入网页项目,解决图标素材零散、视觉风格不统一的问题。压缩包大小约22.25MB,内部以字体文件与样式…

2026/10/18 14:32:35 阅读更多 →
微信小程序手写板实现:Canvas笔迹管理与撤销重绘实战

微信小程序手写板实现:Canvas笔迹管理与撤销重绘实战

简介:微信小程序手写板项目源代码,面向需要在小程序中快速加入手写签名、绘画创作、在线板书批注等功能的开发者,适合初中级前端参考学习。压缩包共包含21个文件,其中JS逻辑代码承担Canvas绘制与触摸事件处理,JSON文件…

2026/10/18 14:32:35 阅读更多 →
XSS跨站脚本攻击深度解析:从反射型到DOM型的攻防实战

XSS跨站脚本攻击深度解析:从反射型到DOM型的攻防实战

1. 为什么XSS至今仍是Web安全的头号威胁搞Web安全的人都有一个共识:XSS(跨站脚本攻击)这玩意儿,年纪比很多开发者的工龄都长,但生命力比谁都旺盛。每年各种漏洞榜单里,它从来没跌出过前三。你可能觉得“不就…

2026/10/18 14:31:35 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →