Oracle 11g RAC 异机恢复实战(漫画版)
前言节后刚到公司业务那边就来了一个需求有一套测试库的数据太老了需要从生产库恢复一份数据过去。生产库和测试库都是 Oracle 11g RAC准备使用 RMAN DUPLICATE 完成恢复。原本以为很简单就是清理旧库、恢复数据、配置 RAC没想到过程中还是遇到了几个问题RMAN DUPLICATE 成功后修改参数时报 ORA-01565找不到 SPFILERAC 第二节点启动后一直停留在 STARTED 状态登录第二节点时又遇到了 ORA-09925 报错。好在最后都解决了两个实例正常 OPEN完整启停测试也顺利通过。这类生产库恢复到测试环境的需求应该挺常见索性就把这次从旧库清理、RMAN 恢复到 RAC 重建的完整操作过程记录下来方便以后遇到类似需求时直接参考。一、环境及恢复方案先看一下环境项目源端生产库目标测试库Oracle 版本11.2.0.411.2.0.4数据库架构双节点 RAC双节点 RACDB_NAMEPRODDBPRODDBDB_UNIQUE_NAMEproddbtestdb实例名称proddb1 / proddb2testdb1 / testdb2节点名称生产 RAC 节点rac-test01 / rac-test02数据存储ASMDATAFRAASMFRA恢复方式RMAN 备份Backup-Based DUPLICATE目标端 Oracle Home/u01/app/oracle/product/11.2.0/dbhome_1RMAN 备份目录/backup/rman本次采用Backup-Based DUPLICATE直接使用已有的 RMAN 备份恢复不需要连接生产库。主要分为三个步骤清理原测试库保留现有 RAC 和 ASM 环境。执行 RMAN DUPLICATE先恢复为单实例数据库。配置 RAC 参数及 Clusterware恢复双节点运行。源端和目标端的DB_NAME均为PRODDB目标端使用独立的DB_UNIQUE_NAMEtestdb。二、恢复前检查1. 检查 RMAN 备份目录这套生产库的 RMAN 备份是通过 NFS 挂载到目标服务器作为存储先检查df -h /backup/rman mount | grep /backup ls -ld /backup/rman ls -lh /backup/rman | head确认 Oracle 用户可以正常读取备份文件并检查数据文件、控制文件及归档日志备份是否齐全。如果可以连接源库可通过 RMAN 查看备份信息LIST BACKUP SUMMARY; LIST BACKUP OF DATABASE; LIST BACKUP OF ARCHIVELOG ALL;本次使用 Level 0 备份结合归档日志恢复最终恢复至 SCN 73594150946。2. 检查目标 RAC 集群首先确认目标 RAC 环境正常使用 grid 用户执行crsctl stat res -t重点检查 ASM、监听、VIP、SCAN 等资源再检查 ASM 磁盘组asmcmd lsdg确认DATA、FRA正常挂载并且有足够的可用空间需要注意ASM 磁盘组的Free_MB不一定等于实际可用空间特别是 NORMAL、HIGH 冗余磁盘组还要关注Usable_file_MB。接着查看当前 Clusterware 中注册的数据库srvctl config database如果已经存在testdb还需要进一步检查srvctl config database -d testdb -a srvctl status database -d testdb srvctl config service -d testdb这次目标端原本就有一套测试数据库所以不能直接启动 DUPLICATE必须先处理旧数据库。3. 检查 Oracle 软件环境两个节点都要确认 Oracle Home 和软件版本echo $ORACLE_HOME echo $ORACLE_SID which sqlplus which rman sqlplus -v本次使用 Oracle 11.2.0.4恢复阶段先在第一个节点操作export ORACLE_HOME/u01/app/oracle/product/11.2.0/dbhome_1 export ORACLE_SIDtestdb1 export PATH$ORACLE_HOME/bin:$PATH第二节点后续使用export ORACLE_SIDtestdb2三、清理原测试数据库目标端已有一套测试 RAC本次需要使用生产数据重新恢复因此需要先清理原测试库保留现有 GI、ASM 和监听环境再执行 RMAN DUPLICATE。1. 保存原数据库信息先连接旧测试数据库sqlplus / as sysdba检查数据库身份SELECT name, db_unique_name, dbid, open_mode FROM v$database;检查 RAC 实例SELECT inst_id, instance_name, host_name, status FROM gv$instance ORDER BY inst_id;保存 SPFILE 和控制文件位置SHOW PARAMETER spfile; SHOW PARAMETER control_files;查询数据文件SELECT file#, name FROM v$datafile ORDER BY file#;查询临时文件SELECT file#, name FROM v$tempfile ORDER BY file#;查询 REDOSELECT group#, member FROM v$logfile ORDER BY group#;提前记录原测试库的数据文件、控制文件和 REDO 路径方便后续清理 ASM 文件时核对避免误删其他数据库文件。2. 备份原测试库配置先导出参数文件CREATE PFILE/home/oracle/init_testdb_before_rebuild.ora FROM SPFILE;再保存 Clusterware 配置srvctl config database -d testdb -a \ /home/oracle/testdb_srvctl_before_rebuild.txt如果原测试库的数据还需要保留应提前做好备份避免清理后无法恢复。3. 停止原测试数据库确认旧测试库已停用、数据允许覆盖后停止数据库srvctl stop database -d testdb -o immediate检查srvctl status database -d testdb确认两个实例均已停止Instance testdb1 is not running on node rac-test01 Instance testdb2 is not running on node rac-test02两个节点分别检查 PMON 进程ps -ef | grep [p]mon确认原实例已退出。4. 注销旧 Clusterware 资源注销旧数据库的 Clusterware 资源srvctl remove database -d testdb srvctl config database确认testdb已注销。注意srvctl remove database不会删除 ASM 中的数据文件。5. 检查并清理 ASM 文件使用 grid 用户asmcmd lsdg asmcmd ls DATA/ asmcmd ls FRA/查看旧数据库目录asmcmd ls -l DATA/TESTDB/ asmcmd ls -l FRA/TESTDB/结合前面记录的控制文件、数据文件和 REDO 路径逐一核对待清理文件的归属。确认文件已废弃且没有其他资源引用后再执行asmcmd rm 已确认废弃文件的完整ASM路径清理 ASM 文件前建议先确认好文件的归属避免误删。也可以根据实际情况使用RMAN DROP DATABASE删除旧库但要确保不影响现有 GI、ASM、监听、VIP 和 SCAN 等集群资源。6. 清理旧实例本地配置两个节点分别检查ls -l $ORACLE_HOME/dbs/*testdb*主要关注inittestdb1.ora inittestdb2.ora spfiletestdb1.ora orapwtestdb1 orapwtestdb2先备份旧配置mkdir -p /home/oracle/testdb_old_config将旧 PFILE、SPFILE 和密码文件移入备份目录核实后再清理原文件。清理完成后再确认srvctl config database crsctl stat res -t asmcmd lsdg确认旧库已清理GI 和 ASM 正常准备恢复。四、准备 RMAN 辅助实例在第一个节点准备 RMAN 辅助实例恢复阶段暂不启用 RAC。1. 创建 PFILE使用 oracle 用户export ORACLE_HOME/u01/app/oracle/product/11.2.0/dbhome_1 export ORACLE_SIDtestdb1 export PATH$ORACLE_HOME/bin:$PATH创建初始化参数文件vi $ORACLE_HOME/dbs/inittestdb1.ora ## 写入以下内容 db_namePRODDB db_unique_nametestdb instance_nametestdb1 cluster_databaseFALSE db_create_file_destDATA db_recovery_file_destFRA db_recovery_file_dest_size100G diagnostic_dest/u01/app/oracle audit_file_dest/u01/app/oracle/admin/testdb/adump job_queue_processes0以上为参考参数FRA 大小、内存及兼容性参数按实际环境调整db_name必须与源库备份一致。2. 创建审计目录mkdir -p /u01/app/oracle/admin/testdb/adump chmod 750 /u01/app/oracle/admin/testdb/adump两个节点都需要创建审计目录后面遇到的 ORA-09925 就与此有关。3. 启动 NOMOUNTsqlplus / as sysdba执行STARTUP NOMOUNT PFILE/u01/app/oracle/product/11.2.0/dbhome_1/dbs/inittestdb1.ora;检查SELECT instance_name, status FROM v$instance; INSTANCE_NAME STATUS ------------- ------- testdb1 STARTED辅助实例处于 STARTEDNOMOUNT即可后续由 RMAN 完成恢复。五、执行 RMAN DUPLICATE这里采用 Backup-Based DUPLICATE直接通过 RMAN 备份恢复无需连接生产库。1. 确认备份和恢复目标恢复前确认备份目录、源库 DBID、数据文件及控制文件路径以及归档日志和目标恢复 SCN。本次分配 4 个辅助通道共恢复 59 个数据文件最终恢复至 SCN 73594150946并通过 RESETLOGS 打开数据库。2. 准备 RMAN 脚本以下为 RMAN DUPLICATE 参考脚本实际执行时需根据备份信息、ASM 路径和目标恢复 SCN 调整。先通过辅助实例连接 RMANrman auxiliary /参考脚本RUN { ALLOCATE AUXILIARY CHANNEL a1 DEVICE TYPE DISK; ALLOCATE AUXILIARY CHANNEL a2 DEVICE TYPE DISK; ALLOCATE AUXILIARY CHANNEL a3 DEVICE TYPE DISK; ALLOCATE AUXILIARY CHANNEL a4 DEVICE TYPE DISK; DUPLICATE DATABASE PRODDB DBID 1234567890 TO PRODDB BACKUP LOCATION /backup/rman NOFILENAMECHECK; RELEASE CHANNEL a1; RELEASE CHANNEL a2; RELEASE CHANNEL a3; RELEASE CHANNEL a4; }该脚本仅供参考实际执行前需确认 RMAN 语法、ASM 文件路径及恢复 SCN避免覆盖其他数据库文件。3. 执行恢复将 RMAN 脚本保存为/home/oracle/duplicate_testdb.rman执行rman auxiliary / \ cmdfile/home/oracle/duplicate_testdb.rman \ log/home/oracle/duplicate_testdb.log查看恢复日志tail -f /home/oracle/duplicate_testdb.log重点查看数据文件恢复、归档应用及 RESETLOGS 是否成功。RMAN 日志显示database opened Finished Duplicate Db Recovery Manager complete.DUPLICATE 完成。4. 检查恢复结果SELECT name, db_unique_name, dbid, open_mode, database_role, resetlogs_time FROM v$database; NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE -------- -------------- ---------- ------------- PRODDB testdb READ WRITE PRIMARY确认目标库 DBID 已更新再检查数据文件SELECT file#, name, status FROM v$datafile ORDER BY file#;确认数据文件已恢复至目标 ASM接下来配置双节点 RAC。六、处理 SPFILE 丢失问题恢复完成后准备修改 RAC 参数ALTER SYSTEM SET cluster_databaseTRUE SCOPESPFILE SID*;结果报错ORA-01565: error in identifying file ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file or directory检查SHOW PARAMETER spfile;发现当前实例引用的仍然是本地 SPFILE/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfiletestdb1.ora但是操作系统上已经没有这个文件ls -l $ORACLE_HOME/dbs/*testdb*实例虽然已经 OPEN但引用的 SPFILE 文件不存在导致无法写入参数。重新创建 ASM 共享 SPFILECREATE SPFILEDATA/TESTDB/spfiletestdb.ora FROM MEMORY; File created.检查 ASMasmcmd ls -l DATA/TESTDB/spfiletestdb.ora在两个节点分别配置 PFILE指向共享 ASM SPFILE。rac-test01cat $ORACLE_HOME/dbs/inittestdb1.ora EOF SPFILEDATA/TESTDB/spfiletestdb.ora EOFrac-test02cat $ORACLE_HOME/dbs/inittestdb2.ora EOF SPFILEDATA/TESTDB/spfiletestdb.ora EOF新 SPFILE 不会自动生效重启第一个实例SHUTDOWN IMMEDIATE; STARTUP;再次检查SHOW PARAMETER spfile;确认已经指向DATA/TESTDB/spfiletestdb.ora确认 SPFILE 已切换。七、配置双节点 RAC 参数接下来配置 RAC 参数。1. 配置集群参数ALTER SYSTEM SET cluster_databaseTRUE SCOPESPFILE SID*; ALTER SYSTEM SET cluster_database_instances2 SCOPESPFILE SID*;2. 配置实例编号ALTER SYSTEM SET instance_number1 SCOPESPFILE SIDtestdb1; ALTER SYSTEM SET instance_number2 SCOPESPFILE SIDtestdb2;3. 配置 REDO ThreadALTER SYSTEM SET thread1 SCOPESPFILE SIDtestdb1; ALTER SYSTEM SET thread2 SCOPESPFILE SIDtestdb2;4. 配置 UNDOALTER SYSTEM SET undo_tablespaceUNDOTBS1 SCOPESPFILE SIDtestdb1; ALTER SYSTEM SET undo_tablespaceUNDOTBS2 SCOPESPFILE SIDtestdb2;5. 禁用自动任务由于数据库来自生产环境暂时不允许自动执行原生产库的任务ALTER SYSTEM SET job_queue_processes0 SCOPESPFILE SID*;6. 清理遗留参数检查SELECT sid, name, value FROM v$spparameter WHERE name IN ( cluster_database, cluster_database_instances, instance_name, instance_number, thread, undo_tablespace, job_queue_processes ) AND isspecified TRUE ORDER BY name, sid; *.instance_name testdb1恢复阶段遗留了全局instance_name需要清理避免第二节点继承。执行ALTER SYSTEM RESET instance_name SCOPESPFILE SID*;同时清理全局 UNDO 参数ALTER SYSTEM RESET undo_tablespace SCOPESPFILE SID*;最终保留实例级配置*.cluster_database TRUE *.cluster_database_instances 2 testdb1.instance_number 1 testdb2.instance_number 2 testdb1.thread 1 testdb2.thread 2 testdb1.undo_tablespace UNDOTBS1 testdb2.undo_tablespace UNDOTBS2 *.job_queue_processes 07. 检查 REDO 和 UNDO先检查 REDOSELECT group#, thread#, bytes/1024/1024 mb, status FROM v$log ORDER BY thread#, group#;本次两个 Thread 均已配置每个 Thread 5 组 REDO每组 300MB。检查SELECT thread#, status, enabled FROM v$thread ORDER BY thread#;第二节点尚未启动时Thread 2 可能显示 CLOSED。再检查 UNDOSELECT tablespace_name, status FROM dba_tablespaces WHERE contentsUNDO;本次 REDO 和两个 UNDO 表空间均已存在无需重新创建。八、准备密码文件并注册 Clusterware1. 准备密码文件两个节点分别需要rac-test01: $ORACLE_HOME/dbs/orapwtestdb1 rac-test02: $ORACLE_HOME/dbs/orapwtestdb2使用orapwd创建密码文件密码应与目标数据库 SYS 密码一致。Oracle 11g 环境可以使用orapwd file$ORACLE_HOME/dbs/orapwtestdb1设置 SYS 密码后将密码文件复制到第二节点并调整文件名确保两个节点保持一致。2. 注册数据库使用 oracle 用户执行srvctl add database \ -d testdb \ -o /u01/app/oracle/product/11.2.0/dbhome_1 \ -p DATA/TESTDB/spfiletestdb.ora \ -r PRIMARY \ -s OPEN注册实例srvctl add instance -d testdb -i testdb1 -n rac-test01 srvctl add instance -d testdb -i testdb2 -n rac-test02添加 ASM 磁盘组依赖srvctl modify database -d testdb -a DATA,FRA检查srvctl config database -d testdb -a确认Database unique name: testdb Spfile: DATA/TESTDB/spfiletestdb.ora Database instances: testdb1,testdb2 Disk Groups: DATA,FRA Type: RAC Database is enabled3. 启动 RAC先确保手工启动的实例已经关闭SHUTDOWN IMMEDIATE;然后通过 Clusterware 启动srvctl start database -d testdb检查srvctl status database -d testdb Instance testdb1 is running on node rac-test01 Instance testdb2 is running on node rac-test02继续检查实例状态。九、第二节点启动后停留在 STARTED虽然srvctl显示两个实例都在运行但进一步检查SELECT inst_id, instance_name, host_name, status, thread# FROM gv$instance ORDER BY inst_id; INST_ID INSTANCE_NAME HOST_NAME STATUS THREAD# ------- ------------- ---------- ------- ------- 1 testdb1 rac-test01 OPEN 1 2 testdb2 rac-test02 STARTED 0第二节点仍停留在 STARTED。srvctl显示 running不代表实例已经 OPEN继续登录第二节点检查。export ORACLE_SIDtestdb2 sqlplus / as sysdba ORA-09925: Unable to create audit trail file Linux-x86_64 Error: 2: No such file or directory先检查磁盘df -h磁盘空间正常继续看报错No such file or directory优先检查目录是否存在。回到第一个节点查询SHOW PARAMETER audit_file_dest;发现审计目录/u01/app/oracle/admin/testdb/adump到第二节点检查ls -ld /u01/app/oracle/admin/testdb/adump目录不存在补齐创建目录mkdir -p /u01/app/oracle/admin/testdb/adump chmod 750 /u01/app/oracle/admin/testdb/adump确保目录属于 Oracle 软件用户。重新连接数据库sqlplus / as sysdba连接恢复正常继续执行ALTER DATABASE MOUNT; ALTER DATABASE OPEN;执行成功。再查SELECT inst_id, instance_name, status, thread# FROM gv$instance ORDER BY inst_id; INST_ID INSTANCE_NAME STATUS THREAD# ------- ------------- ------ ------- 1 testdb1 OPEN 1 2 testdb2 OPEN 2第二节点正常 OPEN问题原因是审计目录缺失。十、数据库最终验收两个实例 OPEN 后进行验收检查。1. 检查数据库身份SELECT name, db_unique_name, dbid, open_mode, database_role FROM v$database;确认数据库名称、DBID、打开状态和角色正确。2. 检查 RAC 实例SELECT inst_id, instance_name, host_name, status, thread# FROM gv$instance ORDER BY inst_id;两个实例均为 OPEN分别使用 Thread 1 和 Thread 2。3. 检查数据文件SELECT status, COUNT(*) FROM v$datafile GROUP BY status; STATUS COUNT(*) -------- -------- ONLINE 58 SYSTEM 1SYSTEM为数据文件状态属于正常结果。4. 检查表空间SELECT tablespace_name, status FROM dba_tablespaces ORDER BY tablespace_name;34 个表空间全部 ONLINE。5. 检查数据库组件SELECT comp_name, status FROM dba_registry WHERE status VALID; no rows selected6. 检查监听两个节点分别执行lsnrctl services确认两个实例都注册到本地监听并且状态为 READY。再检查 SCANsrvctl config scan srvctl status scan_listener本地监听和 SCAN Listener 均正常后续还需验证 SCAN 服务注册及客户端连接。7. 完整启停测试最后再做一次完整启停srvctl stop database -d testdb -o immediate检查srvctl status database -d testdb两个实例均已停止。然后重新启动srvctl start database -d testdb再次检查srvctl status database -d testdb两个实例均显示 running。登录数据库SELECT inst_id, instance_name, status, thread# FROM gv$instance ORDER BY inst_id; INST_ID INSTANCE_NAME STATUS THREAD# ------- ------------- ------ ------- 1 testdb1 OPEN 1 2 testdb2 OPEN 2完整启停通过两个实例均由 Clusterware 正常管理。十一、测试环境隔离生产库复制到测试环境后还要检查 DB Link、定时任务和外部接口避免误连生产系统。先检查 DB LinkSELECT owner, db_link, username, host FROM dba_db_links;这次发现测试库仍然存在连接外部数据库的 DB Link。连接地址已脱敏需确认是否指向生产环境。检查 Scheduler JobSELECT owner, job_name, enabled, state FROM dba_scheduler_jobs WHERE enabled TRUE;还发现了多个已启用任务其中包含业务相关任务。再检查 DBMS_JOBSELECT schema_user, job, broken, what FROM dba_jobs ORDER BY schema_user, job;因此暂时保持ALTER SYSTEM SET job_queue_processes0 SCOPEBOTH SID*;完成环境隔离检查前暂不启用这些任务。总结本次恢复从清理原测试库开始依次完成 RMAN DUPLICATE、共享 SPFILE 创建、RAC 参数配置及 Clusterware 注册最终恢复双节点 RAC。RMAN 共恢复 59 个数据文件过程中主要遇到两个问题ORA-01565恢复完成后原 SPFILE 文件不存在导致参数修改失败。通过CREATE SPFILE FROM MEMORY重新创建共享 ASM SPFILE重启后恢复正常。ORA-09925第二节点启动后停留在 STARTED排查发现audit_file_dest目录不存在创建目录后正常 MOUNT、OPEN。最后通过srvctl完成双节点启停验证两个实例均正常 OPEN。这次恢复也算再次验证了一点RMAN DUPLICATE 完成不代表整个恢复结束后续的 RAC 配置、监听检查和测试环境隔离同样不能少。

相关新闻

边缘计算与云端协同实战:降低延迟、优化带宽的架构设计与运维经验

边缘计算与云端协同实战:降低延迟、优化带宽的架构设计与运维经验

搞边缘计算的人,这两年应该都有一个明显的体感:单纯把数据一股脑推到云端的做法,越来越扛不住业务需求了。数据量越来越大、实时性要求越来越高、带宽成本逐年上涨,你要是还按老思路去堆节点、扩带宽,运维成本和体验只…

2026/10/14 22:08:28 阅读更多 →
Python绘制3D球体网格散点图:球面数据点生成与可视化实战

Python绘制3D球体网格散点图:球面数据点生成与可视化实战

在开始之前,先说句实话:网上关于“Python 绘制 3D 球体”的教程,十个里有九个是在教你画一个实心球,再不然就是画一个线框球。但你真到了做项目的时候,往往会发现这些花架子根本不顶用。我这次要聊的,是“绘…

2026/10/14 22:08:28 阅读更多 →
基于Django与机器学习的电商评论情感分析系统设计

基于Django与机器学习的电商评论情感分析系统设计

1. 项目概述与核心价值电商平台每天产生海量用户评论数据,这些非结构化文本中蕴含着消费者对商品、服务的真实评价。传统人工分析方式效率低下且主观性强,而基于Django框架结合机器学习的情感分析系统,能够自动化完成评论数据采集、清洗、建模…

2026/10/14 22:07:27 阅读更多 →

最新新闻

原生JS组态软件实战:无后台监控界面的数据格式与架构设计

原生JS组态软件实战:无后台监控界面的数据格式与架构设计

简介:一份基于原生JavaScript实现的组态软件源码包,面向Web前端与工业自动化开发者,用于在无后台依赖环境中通过拖拽方式快速构建电力一次接线图、工业流程图等图形界面。压缩包共1013个文件,约14.4MB,以svg、png、gif…

2026/10/14 22:55:37 阅读更多 →
离职原因这样回答,面试官当场刮目相看:三步包装法详解

离职原因这样回答,面试官当场刮目相看:三步包装法详解

“我的离职原因是个人的职业发展规划……”这话一出口,对面面试官的眼神是不是闪了一下?别觉得奇怪,很多求职者都折在这句话上。明明说的是真心话,怎么就变成了减分项?干了十几年招聘,我筛过几万份简历、做…

2026/10/14 22:55:37 阅读更多 →
HEIC转JPG全攻略:格式原理、工具选择与批量转换实战

HEIC转JPG全攻略:格式原理、工具选择与批量转换实战

做图像处理这几年,被问得最多的问题之一就是:HEIC格式怎么转成JPG。来源基本都是iPhone用户,拍的照片在手机上看一切正常,发到Windows电脑上打不开,传到某些网络平台上不认,发给安卓朋友半天收不到预览。HE…

2026/10/14 22:55:37 阅读更多 →
Selenium自动化测试实战:定位策略、等待机制与框架搭建

Selenium自动化测试实战:定位策略、等待机制与框架搭建

1. 为什么还在用Selenium:一个老牌框架的历久弥新做Web自动化测试的朋友,几乎没人绕得过Selenium。哪怕这几年新工具层出不穷,Playwright、Puppeteer、Cypress一个比一个火,但我在一线项目里兜兜转转这么多年,但凡遇到…

2026/10/14 22:55:37 阅读更多 →
腾讯开源 Octop Agent 实战:任务编排与工具调用标准化解析

腾讯开源 Octop Agent 实战:任务编排与工具调用标准化解析

1. 从标题拆解 Octop 的定位与野心 第一次看到“Octop:像 WorkBuddy 的腾讯开源 Agent”这个标题,我的直觉是:这又是一个把“Agent”当卖点的项目,但“像 WorkBuddy”这个类比很关键。WorkBuddy 在圈内的口碑是“把复杂任务拆成可…

2026/10/14 22:55:37 阅读更多 →
Axure交互动效入门:事件、用例与动作三要素实战解析

Axure交互动效入门:事件、用例与动作三要素实战解析

很多刚接触原型设计的人,一听到“Axure交互动效”就觉得这是进阶内容,得先把元件、样式、页面这些基础吃透了才敢碰。我实际带新人的过程中发现,这个顺序其实是反过来的:动效不但不是进阶内容,反而是理解Axure底层逻辑…

2026/10/14 22:54:32 阅读更多 →

日新闻

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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →