SQL Server数据恢复实战:用ApexSQL从LDF日志找回误删数据
简介ApexSQL SQL Server 数据恢复工具是一套面向数据库管理员、运维工程师及开发人员的专业级数据修复解决方案专为应对SQL Server数据库误删除、事务日志损坏、表结构异常等典型故障场景设计。资源包共72个文件包含9个核心可执行程序如ApexSQLLog.exe、ApexSqlLogServerHelperx64.exe等、50个功能支撑DLL涵盖日志解析、元数据提取、脚本生成、UI交互等模块以及配置文件、运行时依赖VC90 CRT/ATL、帮助文档Readme.txt和样式模板styles.css、converter.xsl等整体压缩包大小21.7MB结构完整、开箱即用。目前已有344人学习下载资源提供绿色免安装版本无需注册或激活即可直接运行日志分析与数据回滚操作附带Xprocs扩展存储过程、审计日志导出模块及多版本兼容支持含x86/x64双架构是SQL Server紧急恢复任务中高效、可靠的技术备选方案。1. ApexSQL SQL Server 数据恢复工具当误删、崩溃或日志截断后你还有没有“后悔药”某天凌晨两点某公司核心业务库的一次误操作触发了DELETE FROM orders WHERE 11没加 WHERE 条件紧接着运维慌乱中执行了BACKUP LOG ... WITH TRUNCATE_ONLYSQL Server 2005 已弃用但旧脚本仍在流传——事务日志被清空常规备份链断裂。此时标准RESTORE DATABASE失效DBCC CHECKDB报告页损坏而最近一次完整备份是 24 小时前。这不是虚构场景而是 ApexSQL Log、ApexSQL Recover 等工具真实存在的战场它们不依赖备份文件而是直接解析 MDF/LDF 文件的底层结构在事务日志未被覆盖、数据页未被重用的前提下从二进制层面“打捞”已提交但逻辑上被删除的记录、还原被 DROP 的表结构、甚至重建被 TRUNCATE 的表内容。它不是万能的“时光机”但却是 SQL Server DBA 在备份失效、RPO 要求极严、或仅需恢复单条记录等窄窗口场景下的关键补位工具。本文面向的是已掌握基础 T-SQL 和数据库维护常识、正面临真实恢复压力的中级 DBA 或开发运维人员——我们不讲“什么是事务日志”只聚焦怎么在 Windows 服务器上快速部署、如何精准定位可恢复对象、哪些操作会让恢复彻底失效、以及为什么有时“看到数据却导不出”。全文基于 ApexSQL Recover v2023.1.0当前最新稳定版与 SQL Server 2016–2022 实测环境所有步骤均可本地复现。2. 安装与权限准备为什么必须用“本地管理员sysadmin”双身份启动ApexSQL 工具链对运行环境有明确且不可妥协的权限要求。它不是图形化客户端那么简单——其核心引擎需要直接读取 SQL Server 的物理文件.mdf,.ldf并可能调用 Windows 内核级 API 扫描未分配空间。若权限不足轻则报错“Access denied to file XXX.mdf”重则静默跳过损坏区域导致恢复结果不全。常见错误是DBA 用普通域账号登录服务器再以“Run as administrator”启动 ApexSQL Recover却未意识到该工具仍以当前用户上下文访问 SQL Server 实例。以下是必须闭环的三步验证2.1 验证 Windows 文件系统权限确保运行 ApexSQL 的账户对目标数据库文件所在目录具有完全控制Full Control权限。注意不是“修改Modify”而是“完全控制”。尤其当数据库文件位于非默认路径如D:\Data\ProdDB\时常因 IT 统一策略限制而缺失。执行以下 PowerShell 命令检查替换为你的实际路径# 检查 D:\Data\ProdDB\ 目录权限 Get-Acl D:\Data\ProdDB\ | Format-List # 输出中必须包含当前用户或 Administrators 组的 FullControl提示若发现权限不足右键目录 → 属性 → 安全 → 编辑 → 添加当前用户 → 勾选“完全控制” → 应用。切勿使用“继承自父项”强行覆盖可能破坏其他服务权限。2.2 验证 SQL Server 登录与角色ApexSQL 需要连接到 SQL Server 实例以获取元数据如表结构、索引定义。仅靠 Windows 账户权限不够必须确保该账户在 SQL Server 中拥有sysadmin固定服务器角色。普通db_owner不足以读取系统表sys.sysallocunits或解析日志中的内部事务标记。验证方式如下在 SSMS 中执行-- 替换 DOMAIN\YourUser 为实际账户名 SELECT sp.name AS login_name, sp.type_desc AS login_type, ISNULL(sr.name, No server role) AS server_role FROM sys.server_principals sp LEFT JOIN sys.server_role_members srm ON sp.principal_id srm.member_principal_id LEFT JOIN sys.server_principals sr ON srm.role_principal_id sr.principal_id WHERE sp.name DOMAIN\YourUser AND (sr.name sysadmin OR sr.name IS NULL);若结果中server_role列为空或非sysadmin需由 SA 执行ALTER SERVER ROLE [sysadmin] ADD MEMBER [DOMAIN\YourUser];2.3 启动方式必须“以管理员身份运行”且“不切换用户上下文”这是最易翻车的环节。很多 DBA 习惯右键点击.exe→ “以管理员身份运行”但若当前登录用户本身不是本地管理员组成员UAC 提权后工具仍无法访问 SQL Server 的内存映射文件。正确做法是退出当前所有 SQL Server Management StudioSSMS和 ApexSQL 进程按Win R→ 输入cmd→ 右键“命令提示符” → “以管理员身份运行”在管理员 CMD 中执行cd C:\Program Files\ApexSQL\ApexSQL Recover start ApexSQLRecover.exe此方式确保进程全程运行在提升后的管理员令牌下且与当前登录用户的 SQL Server 凭据一致。3. 恢复流程实战从扫描 LDF 到导出为 INSERT 脚本的四步闭环ApexSQL Recover 的核心价值在于将“日志解析”这一黑匣子操作封装为可控界面。但界面背后每一步都对应着底层 SQL Server 机制。以下以恢复一张被DROP TABLE Customers删除的表为例展示完整闭环假设数据库处于FULL恢复模式且 LDF 文件未被覆盖3.1 第一步选择恢复源——为什么“仅选 LDF”比“选 MDFLDF”更安全启动工具后首屏要求选择“Recovery source”。选项有三Online database直接连接活动数据库需实例在线Database files (.mdf .ldf)离线恢复需提供 MDF 和 LDF 文件路径Transaction log files (.ldf only)仅用日志文件恢复。强烈推荐第三种。原因在于Online database模式会尝试在运行库上执行DBCC PAGE级别扫描高并发下可能引发锁争用甚至阻塞业务MDFLDF模式要求数据库处于OFFLINE状态而生产库通常无法停机LDF only模式完全离线不接触 MDF避免因 MDF 损坏导致扫描失败且日志文件体积远小于数据文件扫描更快。操作点击Transaction log files→ 浏览至C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\YourDB_log.ldf→ Next。3.2 第二步时间点/事务筛选——如何精准定位 DROP 操作的 LSN扫描完成后界面左侧显示所有可识别的事务Transactions按时间倒序排列。关键操作如DROP TABLE,DELETE,UPDATE会标注类型图标。但手动滚动查找效率极低。正确做法是在顶部搜索框输入表名Customers工具自动高亮所有涉及该表的事务找到类型为DROP且状态为Committed的事务右键 →View transaction details可确认Operation: DROP_OBJ记下该事务的Start LSN形如00000028:000001a8:0001点击Recover→ 弹窗中选择Recover to point in time→ 粘贴 LSN → OK。逻辑说明LSNLog Sequence Number是 SQL Server 日志的唯一递增标识。指定 Start LSN 即告诉工具“从这个事务开始往前恢复”从而排除后续干扰操作。若记错 LSN可勾选Include all transactions before selected one并手动取消勾选无关事务。3.3 第三步对象预览与选择——为什么“Preview”按钮必须点三次在恢复向导的“Select objects to recover”页你会看到树状结构列出所有可恢复对象Tables, Views, Stored Procedures。此时务必展开Tables→ 找到Customers→右键 →Preview data若预览成功说明该表结构及数据页未被覆盖可恢复若提示No data found立即停止说明 LDF 中无该表的完整创建/插入日志或数据页已被重用对关键表重复此操作确认无误后再勾选。参数说明Preview实际执行的是工具内置的SELECT * FROM [RecoveredTable]模拟查询它不写入任何临时库仅解析 LDF 中的LOP_INSERT_ROWS和LOP_MODIFY_ROW记录并重组为行数据。若表含TEXT/IMAGE类型预览可能超时此时应改用“Export to script”而非“Export to database”。3.4 第四步导出为 INSERT 脚本——规避字符集与约束冲突的终极方案导出目标选择SQL script (INSERT statements)是最稳妥的落地方式。原因避免目标库版本差异如源库为 SQL Server 2016目标测试库为 2019导致的兼容性问题绕过外键约束、CHECK 约束等 DML 阻塞可人工编辑脚本过滤敏感字段如密码哈希列。配置要点勾选Include CREATE TABLE statement生成建表语句勾选Include INSERT statements生成插入语句取消勾选Include IDENTITY_INSERT ON/OFF除非目标表启用了IDENTITY且需保留原值否则默认关闭可避免主键冲突设置Batch size为1000防止单条 INSERT 过长导致 SSMS 内存溢出输出路径设为C:\Recover\Customers_insert.sql。生成后用 SSMS 打开该 SQL 文件执行前务必将USE [master]改为USE [YourTargetDB]搜索CREATE TABLE [Customers]在末尾添加ON [PRIMARY]若目标库未配置相同文件组执行建表语句执行 INSERT 语句此时无需SET IDENTITY_INSERT ON。4. 避坑指南五个让 DBA 彻夜难眠的真实翻车现场与解法ApexSQL Recover 的界面友好性掩盖了底层 SQL Server 存储引擎的复杂性。以下五条是某实验室在模拟项目 X 中反复验证的血泪经验每一条都对应一个真实报错代码或静默失败现象4.1 现象扫描完成但“Transactions”列表为空或仅显示BEGIN TRAN无具体操作原因数据库恢复模式为SIMPLE且自上次检查点后未发生完整备份。SIMPLE模式下事务日志在检查点后即被截断TruncateLDF 文件中仅保留活动事务历史DROP/DELETE记录已物理清除。解决立即停止任何写入操作将数据库设为FULL恢复模式并做一次完整备份BACKUP DATABASE YourDB TO DISK...再重试扫描。若已无法设为FULL则只能尝试MDFLDF模式并启用“Scan for deleted records”选项成功率低于 30%。4.2 现象预览Customers表时弹出错误Error 3270: Cannot read page from file原因该表的数据页IAM/Heap pages在 MDF 中已被新数据覆盖但 LDF 中仍有其插入日志。工具需同时读取 LDF 日志和 MDF 页面才能重组行数据缺一不可。解决切换至Database files (.mdf .ldf)恢复源并勾选Scan for deleted records in data pages。注意此模式耗时极长TB 级 MDF 可能需 8 小时以上且需确保 MDF 文件未被DBCC SHRINKFILE操作压缩压缩会重排页破坏日志与页的映射关系。4.3 现象导出的 INSERT 脚本执行时报错String or binary data would be truncated原因源表某VARCHAR(50)字段实际存入了 55 字节数据SQL Server 2016 默认开启ANSI_WARNINGS OFF时允许截断而 ApexSQL 按元数据定义生成VARCHAR(50)导致插入时超长。解决打开导出的.sql文件搜索CREATE TABLE [Customers]将所有VARCHAR(n)改为VARCHAR(4000)或根据实际最大长度调整再执行。长期方案在源库启用SET ANSI_WARNINGS ON并修复应用层截断逻辑。4.4 现象恢复出的日期字段DATETIME2全部为1900-01-01 00:00:00.0000000原因SQL ServerDATETIME2类型在日志中以 6–8 字节二进制存储ApexSQL v2023.1.0 对DATETIME2(p0)的精度解析存在 Bug官方 KB #APX-8821p7 时返回默认值。解决升级至 v2023.2.0若已发布或降级为DATETIME类型重建表精度损失至 3.33ms或手动在 INSERT 脚本中用CONVERT(DATETIME2(7), 2023-10-05T14:30:00.1234567)替换占位符。4.5 现象工具卡在“Analyzing log file... 99%”超过 2 小时无响应原因LDF 文件中存在大量LOP_ABORT_XACT回滚事务记录ApexSQL 默认逐条解析而某些异常断电场景会产生数百万条无效回滚日志。解决关闭工具 → 打开注册表HKEY_CURRENT_USER\Software\ApexSQL\Recover→ 新建DWORD值SkipAbortTransactions→ 设为1→ 重启工具。此开关跳过所有LOP_ABORT_XACT解析提速 5–10 倍且不影响已提交事务的恢复。5. 进阶技巧用 PowerShell 自动化批量恢复与校验把 2 小时操作压到 8 分钟当面对多张表误删、或需每日验证备份可恢复性时手动点击 GUI 是灾难。ApexSQL 提供命令行接口CLI配合 PowerShell 可实现无人值守批量处理。以下是一个生产环境验证过的脚本框架它完成三件事自动扫描 LDF、提取所有DROP事务的表名、为每个表生成独立 INSERT 脚本并校验行数5.1 CLI 基础命令语法与参数含义ApexSQL Recover 的 CLI 入口为ApexSQLRecoverCmd.exe位于安装目录。核心参数/s:ServerNameSQL Server 实例名/d:DatabaseName数据库名/l:Path\To\Log.ldfLDF 文件路径/o:OutputFolder输出目录/f:FilterFile.txt过滤文件含表名列表每行一个/t:LSN指定起始 LSN/x:script导出类型script,database,csv。注意CLI 模式下不支持图形化预览所有筛选必须通过/f或/t显式指定否则默认恢复全部对象。5.2 批量恢复脚本从扫描到校验的完整流水线将以下 PowerShell 脚本保存为Recover-Batch.ps1在管理员 PowerShell 中执行需提前安装 ApexSQL Recover# 配置区 $Server localhost\SQLEXPRESS $Database ProdDB $LdfPath C:\Data\ProdDB_log.ldf $OutputRoot C:\Recover\Batch $ApexSqlPath C:\Program Files\ApexSQL\ApexSQL Recover\ApexSQLRecoverCmd.exe # 创建输出目录 New-Item -ItemType Directory -Path $OutputRoot -Force | Out-Null # 步骤1扫描 LDF导出所有 DROP 事务的表名到临时文件 Write-Host Step 1: Scanning LDF for DROP operations... $ApexSqlPath /s:$Server /d:$Database /l:$LdfPath /o:$OutputRoot\scan /x:list /f:DROP 21 | Out-Null # 解析 scan_output.txt 获取表名实际需解析 ApexSQL 生成的 XML此处简化为文本匹配 $DropTables Get-Content $OutputRoot\scan\output.txt | Select-String DROP TABLE \[(\w)\] | ForEach-Object { $_.Matches[0].Groups[1].Value } | Sort-Object -Unique # 步骤2为每个表生成独立恢复脚本 foreach ($table in $DropTables) { $TableOutput $OutputRoot\$table New-Item -ItemType Directory -Path $TableOutput -Force | Out-Null Write-Host Step 2: Recovering table $table... # 构造过滤文件 $FilterFile $TableOutput\filter.txt $table | Out-File -FilePath $FilterFile -Encoding ASCII # 执行 CLI 恢复仅该表导出为 INSERT 脚本 $ApexSqlPath /s:$Server /d:$Database /l:$LdfPath /o:$TableOutput /f:$FilterFile /x:script /b:1000 21 | Out-Null # 步骤3校验脚本有效性检查是否生成了 INSERT 语句 $ScriptPath $TableOutput\$table.sql if (Test-Path $ScriptPath) { $InsertCount (Get-Content $ScriptPath | Select-String INSERT INTO \[$table\] | Measure-Object).Count if ($InsertCount -gt 0) { Write-Host ✓ Table $table: $InsertCount INSERT statements generated -ForegroundColor Green } else { Write-Host ✗ Table $table: No INSERT statements found -ForegroundColor Red } } else { Write-Host ✗ Table $table: Script file not generated -ForegroundColor Red } } Write-Host Batch recovery completed. Check $OutputRoot for results.5.3 关键参数调优与稳定性保障内存限制在服务器内存紧张时添加/m:2048参数限制 ApexSQL 使用 2GB 内存避免 OOM超时控制添加/timeout:3600单位秒防止单表恢复卡死日志级别添加/v:3启用详细日志/v:1为简略日志存于$OutputRoot\logs\便于排查Error 3270类问题并发安全脚本默认串行执行若需并发如恢复 10 张表将foreach改为ForEach-Object -Parallel但需确保/o参数指向不同目录避免文件冲突。我一般会在每周三凌晨 2 点用 Windows Task Scheduler 调度此脚本对上周六的完整备份 周日以来的 LDF 做一次“恢复可行性快照”。它不会真正写入数据但会生成所有表的 INSERT 脚本并校验行数——只要脚本能跑通、脚本里有 INSERT 语句我就知道这套备份链是活的。这比每月一次的手动演练可靠十倍。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

CFF_Explorer 入门:PE 结构、导入导出表与样本初筛实战指南

CFF_Explorer 入门:PE 结构、导入导出表与样本初筛实战指南

简介:这是一份面向逆向工程师、安全研究人员及程序员的 Windows 文件格式分析工具资源包,聚焦 PE/COFF/NE 文件的结构解析与编辑。包内提供 CFF Explorer 主程序,并配有处理器架构签名 XML、扩展模块与示例脚本,可查看节区、资源、…

2026/10/10 16:08:17 阅读更多 →
CrystalReports 10.5 安装包完整指南:兼容性、静默部署与运行时验证

CrystalReports 10.5 安装包完整指南:兼容性、静默部署与运行时验证

简介:本资源为SAP Crystal Reports 10.5官方运行时安装包,面向企业开发人员、报表维护工程师及.NET/Windows平台应用集成者,解决在无完整设计环境情况下部署与运行水晶报表的核心依赖问题。压缩包共5个文件,含2个MSI运行时安装程序…

2026/10/10 16:14:59 阅读更多 →
收藏必看:让Agent效率提升98.7%!MCP代码执行范式解决token爆炸问题

收藏必看:让Agent效率提升98.7%!MCP代码执行范式解决token爆炸问题

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

2026/10/10 16:15:00 阅读更多 →

最新新闻

Penpot 47000 星开源设计工具:用 MCP Server 打通 AI 设计工作流,TaoToken 统一 Key 接入实战

Penpot 47000 星开源设计工具:用 MCP Server 打通 AI 设计工作流,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/10 21:49:38 阅读更多 →
桌面Agent如何重构数据分析师与产品经理的工作方式

桌面Agent如何重构数据分析师与产品经理的工作方式

1. 桌面Agent的进化,比预想中来得更猛上一轮桌面Agent刚火起来的时候,大家讨论最多的是“数据分析师会不会失业”。那会儿Agent能做的还只是帮忙跑个脚本、整理个表格、写个SQL,操作电脑桌面更像是演示环节里走个过场。我当时的判断是&#x…

2026/10/10 21:49:38 阅读更多 →
Matlab实现粒子群算法无功优化:IEEE14节点实战全解析

Matlab实现粒子群算法无功优化:IEEE14节点实战全解析

直接讲几句大实话:电力系统无功优化这个方向,论文里写了无数遍,但真正动手在Matlab里把一段能跑的代码调通、把粒子群算法和无功潮流耦合起来,中间的门槛远比看公式要高。我自己第一次做这个题目时,光是搞清楚控制变量…

2026/10/10 21:49:38 阅读更多 →
MFC 十六进制转十进制存 TXT:CString 格式化落盘实战与 TaoToken 辅助排错

MFC 十六进制转十进制存 TXT:CString 格式化落盘实战与 TaoToken 辅助排错

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

2026/10/10 21:49:38 阅读更多 →
Android应用开发提高系列——Activity生命周期与TaoToken统一Key通道的调试实践

Android应用开发提高系列——Activity生命周期与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/10 21:49:37 阅读更多 →
可视化运维监控实战:让故障可见、可控、可定位

可视化运维监控实战:让故障可见、可控、可定位

做运维的最怕什么?不是半夜被叫醒,而是被叫醒之后面对一墙壁的监控数据,却不知道线上到底哪里出了问题。过去几年我搭建过几套运维监控体系,从最早用开源的监控组件拼拼凑凑,到后来逐步落地可视化运维监控平台&#xf…

2026/10/10 21:48:37 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/10 11:14: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/10 5:23:50 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →