02_在 VMware Workstation 上安装 Oracle RAC 19c 双节点集群完整教程(共享磁盘 + ASM + SCAN)
系列Oracle 数据库全栈运维实战系列VMware 版· 高可用篇核心篇版本Oracle Grid Infrastructure 19.3 Oracle Database 19.3RHEL/Oracle Linux 7.9环境VMware Workstation 16/17 双节点虚拟机共享 VMDK 实现共享存储一、为什么在 VMware 上装 RAC生产环境 RAC 通常跑在物理机 专有存储SAN/iSCSI上门槛高。而VMware 虚拟化可以把共享存储“模拟”出来——两台虚拟机挂载同一块 VMDK即可让 Oracle 集群软件Grid Infrastructure感知到真实共享盘从而跑起完整、真实的双节点 RAC 集群真实集群组件CRS / CSS / EVM / ASM / SCAN 全部可用可验证 Cache Fusion、DLM分布式锁管理、GV$ 视图等 RAC 核心机制单台物理机即可模拟两节点适合学习、开发、测试与灾备演练注意容器化Docker方案只能“近似”模拟VMware 方案与生产环境完全同构迁移到物理机/云上的 RAC 几乎无差异。二、环境规划2.1 硬件与软件项配置宿主机物理机内存 ≥ 16G推荐 32G磁盘 ≥ 200G虚拟化VMware Workstation 16/17 Pro节点rac1 / rac2各分配4 vCPU / 8GB 内存 / 80G 系统盘Oracle Linux 7.9共享盘独立 VMDK 文件两节点同时挂载数据库Oracle Grid 19.3 Oracle DB 19.3linuxx64_193000ASMCRSDG3×2G放 OCR/Voting DATADG数据盘 20G2.2 网络规划每节点 2 张网卡用途网段rac1rac2Public业务192.168.10.0/24192.168.10.173192.168.10.174Private心跳172.16.0.0/24172.16.0.158172.16.0.159VIP192.168.10.0/24192.168.10.175192.168.10.176SCAN192.168.10.0/24192.168.10.177~1793 个地址—VMware 中Public 网卡用 NAT/桥接Private 网卡用“仅主机模式Host-Only”确保两节点心跳互通且独立。三、第一步创建共享磁盘3.1 用 vmware-vdiskmanager 预创建共享 VMDK在宿主机上VMware 安装目录Windows执行set pa th%path%;C:\Program Files (x86)\VMware\VMware Workstation vmware-vdiskmanager.exe -c -s 2g -a lsilogic -t 4 D:\VMS\Storages ac-crs1.vmdk vmware-vdiskmanager.exe -c -s 2g -a lsilogic -t 4 D:\VMS\Storages ac-crs2.vmdk vmware-vdiskmanager.exe -c -s 2g -a lsilogic -t 4 D:\VMS\Storages ac-crs3.vmdk vmware-vdiskmanager.exe -c -s 20g -a lsilogic -t 4 D:\VMS\Storages ac-data.vmdk-t 4 预分配EagerZeroedThick共享盘必须预分配-a lsilogic指定控制器类型与后续 vmx 一致。3.2 在两台虚拟机 vmx 中挂载共享盘编辑rac1.vmx 和 rac2.vmx两个文件都要加指向同一 VMDK# 共享磁盘段两节点必须一致 disk.locking false diskLib.dataCacheMaxSize 0 diskLib.dataCacheMaxReadAheadSize 0 diskLib.dataCacheMinReadAheadSize 0 diskLib.dataCachePageSize 4096 diskLib.maxUnsyncedWrites 0 scsi1.present TRUE scsi1.virtualDev lsilogic scsi1.sharedBus virtual scsi1:0.present TRUE scsi1:0.fileName D:\VMS\Storages ac-crs1.vmdk scsi1:0.mode independent-persistent scsi1:0.redo scsi1:1.present TRUE scsi1:1.fileName D:\VMS\Storages ac-crs2.vmdk scsi1:1.mode independent-persistent scsi1:1.redo scsi1:2.present TRUE scsi1:2.fileName D:\VMS\Storages ac-crs3.vmdk scsi1:2.mode independent-persistent scsi1:2.redo scsi1:3.present TRUE scsi1:3.fileName D:\VMS\Storages ac-data.vmdk scsi1:3.mode independent-persistent scsi1:3.redo 关键点disk.locking false允许两虚拟机并发写同一 VMDKscsi1.sharedBus virtual共享 SCSI 总线mode independent-persistent共享盘不能用快照模式VMware Workstation GUI 里“硬盘 → 高级 → SCSI 控制器共享”选择“虚拟”也可配置直接改 vmx 更可靠。四、第二步系统基础配置两节点相同4.1 /etc/hostsPublic Private VIP SCAN127.0.0.1 localhost localhost.localdomain # Public 192.168.10.173 rac1.example.com rac1 192.168.10.174 rac2.example.com rac2 # Private心跳 172.16.0.158 rac1-priv.example.com rac1-priv 172.16.0.159 rac2-priv.example.com rac2-priv # VIP 192.168.10.175 rac1-vip.example.com rac1-vip 192.168.10.176 rac2-vip.example.com rac2-vip # SCAN 192.168.10.177 rac-scan.example.com rac-scan 192.168.10.178 rac-scan.example.com rac-scan 192.168.10.179 rac-scan.example.com rac-scan若用 DNS 解析 SCAN可只写一条测试环境直接写 hosts 最省事3 个地址都指向同一域名做轮询。4.2 关闭 SELinux / 防火墙 / NetworkManager 干扰sed-is/^SELINUX.*/SELINUXdisabled//etc/selinux/config systemctl stop firewalldsystemctl disable firewalld systemctl disable NetworkManager# 用 network 脚本管理可选仅测试环境reboot4.3 内核参数/etc/sysctl.d/97-oracle.confcat/etc/sysctl.d/97-oracle.confEOF fs.aio-max-nr 3145728 fs.file-max 6815744 kernel.shmmax 68719476736 # 按内存调整8G 内存可设 64G 上限 kernel.shmall 16777216 kernel.shmmni 4096 kernel.sem 250 32000 100 128 net.ipv4.ip_local_port_ range 9000 65500 net.core.rmem_default 262144 net.core.rmem_max 4194304 net.core.wmem_default 262144 net.core.wmem_max 1048576 net.ipv4.tcp_rmem 4096 87380 4194304 net.ipv4.tcp_wmem 4096 16384 4194304 kernel.panic_on_oops 1 vm.min_free_kbytes 524288 EOFsysctl--system4.4 资源限制/etc/security/limits.d/99-grid-oracle.confcat/etc/security/limits.d/99-grid-oracle.confEOF oracle soft nproc 16384 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 oracle hard memlock 68719476736 grid soft nproc 16384 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 grid soft stack 10240 grid hard stack 32768 grid hard memlock 68719476736 EOF4.5 关闭透明大页 扩大 /dev/shm# 修改 /etc/default/grub在 GRUB_CMDLINE_LINUX 加# numaoff transparent_hugepagenevergrub2-mkconfig-o/boot/grub2/grub.cfg# /dev/shm 扩到 2Gechotmpfs /dev/shm tmpfs defaults,rw,exec,size2G 0 0/etc/fstabmount-oremount,size2G /dev/shm4.6 创建用户、组与目录groupadd-g54321oinstallgroupadd-g54322dbagroupadd-g54323opergroupadd-g54324backupdbagroupadd-g54325dgdbagroupadd-g54326kmdbagroupadd-g54327asmdbagroupadd-g54328asmopergroupadd-g54329asmadminuseradd-u1100-goinstall-Gdba,oper,backupdba,dgdba,kmdba griduseradd-u1101-goi nstall-Gdba,oper,backupdba,dgdba,kmdba,asmdba oraclemkdir-p/u01/app/19.0.0/gridmkdir-p/u01/app/oraclemkdir-p/u01/app/gridchown-Rgrid:oinstall /u01/app/19.0.0 /u01/app/gridchown-Roracle:oinstall /u01/app/oraclechmod-R775/u014.7 SSH 双机互信# 在 rac1 上执行grid 与 oracle 用户都要配su- grid ssh-keygen-trsa-P-f~/.ssh/id_rsacat~/.ssh/id_rsa.pub~/.ssh/authorized_keysssh-oStrictHostKeyCheckingno rac2cat ~/.ssh/id_rsa.pub~/.ssh/authorized_keys# 互相验证两边都要能免密sshrac2date五、第三步磁盘分区与 udev 固定设备名5.1 分区两节点共享盘同样可见只在 rac1 分区即可2 节点重扫echo-en\np\n1\n\n\nw|fdisk/dev/sdbecho-en\np\n1\n\n\nw|fdisk/dev/sdcecho-en\np\n1\n\n\nw|fdisk/dev/sddecho-en\np\n1\n\n\nw|fdisk/dev/sde partprobe5.2 udev 规则把磁盘固化为 asm 设备名先获取每块盘 WWID/usr/lib/udev/scsi_id--whitelisted--replace-whitespace--device/dev/sdb1再把结果写入/etc/udev/rules.d/99-oracle-asmdevices.rulesKERNELsd*, SUBSYSTEMblock, PROGRAM/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device/dev/$name, RESULTsdb1的WWID, SYMLINKoracleasm/asm-crs1, OWNERgrid, GROUPasmadmin, MODE0660 KERNELsd*, SUBSYSTEMblock, PROGRAM/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device/dev/$name, RESULTsdc1的WWID, SYMLINKoracleasm/asm-crs2, OWNERgrid, GROUPasmadmin , MODE0660 KERNELsd*, SUBSYSTEMblock, PROGRAM/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device/dev/$name, RESULTsdd1的WWID, SYMLINKoracleasm/asm-crs3, OWNERgrid, GROUPasmadmin, MODE0660 KERNELsd*, SUBSYSTEMblock, PROGRAM/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device/dev/$name, RESULTsde1的WWID, SYMLINKoracleasm/asm-data, OWNERgrid, GROUPasmadmin, MODE0660加载规则并验证udevadm control --reload-rules udevadm trigger--typedevices--actionchangels-l/dev/oracleasm/# 应看到 asm-crs1/2/3、asm-data 4 个符号链接属主 grid:asmadmin六、第四步安装 Grid InfrastructureCluster 软件6.1 解压软件并装 cvuqdiskunzip-qoLINUX.X64_193000_grid_home.zip-d/u01/app/19.0.0/gridchown-Rgrid:oinstall /u01/app/19.0.0/gridcd/u01/app/19.0.0/grid/cv/rpmrpm-ivhcvuqdisk-1.0.10-1.rpm6.2 预检查可选但推荐su- grid /u01/app/19.0.0/grid/runcluvfy.sh stage-precrsinst-nrac1,rac2-fixup-verbose6.3 静默安装 GI响应文件 gridsetup.rspsu- gridcat/home/grid/gridsetup.rspEOF oracle.install.responseFileVersion/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0 oracle.install.optionCRS_CONFIG oracle.install.asm.OSDBAasmdba oracle.install.asm.OSOPERasmoper oracle.install.asm.OSASMasmadmin oracle.install.crs.config.scanTypeLOCAL_SCAN oracle.install. crs.config.gpnp.scanNamerac-scan oracle.install.crs.config.gpnp.scanPort1521 oracle.install.crs.config.ClusterConfigurationSTANDALONE oracle.install.crs.config.configureAsExtendedClusterfalse oracle.install.crs.config.clusterNamerac-cluster oracle.install.crs.config.gpnp.configureGNSfalse oracle.install.crs.config.autoConfigureClusterNodeVIPfalse oracle.install.crs.config.clusterNodesrac1:rac1-vip:HUB,rac2:rac2-vip:HUB oracle.install.crs.config.networkInterfaceListens33:192.168.10.0:1,ens37:172.16.0.0:5 oracle.install.crs.configureGIMRfalse oracle.install.asm.diskGroup.nameCRSDG oracle.install.asm.diskGroup.redundancyNORMAL oracle.install.asm.diskGroup.AUSize4 oracle.install.asm.diskGroup.disks/dev/oracleasm/asm-crs1,/dev/oracleasm/asm-crs2,/dev/oracleasm/asm-crs3 oracle.install.asm.diskGroup.diskDiscoveryString/dev/oracleasm/* oracle.install.asm.SYSASMPasswordYour_ASM_Password oracle.install.asm.monitorPasswordYour_ASM_Password EOF/u01/app/19.0.0/grid/gridSetup.sh-silent-responseFile/home/grid/gridsetup.rsp-ignorePrereqnetworkInterfaceList 中网卡名ens33/ens37按实际环境调整-ignorePrereq用于跳过不影响核心的预检告警测试环境。6.4 执行 root 脚本关键步骤安装接近完成时按提示在两个节点分别以 root 执行# rac1/u01/app/19.0.0/grid/root.sh# rac2rac1 执行完后再执行/u01/app/19.0.0/grid/root.sh6.5 验证集群su- grid crsctlstatres-t# 预期ora.cssd / ora.diskmon / ora.asm / ora.crsd 等均为 ONLINE crsctl check cluster-allcrsctl check crs七、第五步安装数据库软件 DBCA 建 RAC 库7.1 安装 Database 软件unzip-qoLINUX.X64_193000_db_home.zip-d/u01/app/oracle/product/19.0.0/dbhome_1chown-Roracle:oinstall /u01/app/oraclesu- oraclecd/u01/app/oracle/product/19.0.0/dbhome_1 ./runInstaller-silent-responseFiledb_install.rsporacle.install.optionINSTALL_DB_SWONLYUNIX_GROUP_NAMEoinstallINVENTORY_LOCATION/u01/app/oraInventoryORACLE_HOME/u01/app/oracle/product/19.0.0/dbhome_1ORACLE_BASE/u01/app/oracleoracle.install.db.InstallEditionEEoracle.install.db.OSDBA_GROUPdbaoracle.install.db.OSOPER_GROUPoperoracle.install.db.OSBACKUPDBA_GROUPbackupdbaoracle.install.db.OSDGDBA_GROUPdgdbaoracle.install.db.OSKMDBA_GROUPkmdbaoracle.install.db.OSRACDBA_GROUPdbaoracle.install.db.CLUSTER_NODESrac1,rac2oracle.install.db.config.starterdb.typeGENERAL_PURPOSEoracle.install.db.config.starterdb.globalDBNameorcloracle.install.db.config.starterdb.SIDorcloracle.install.db.config.starterdb.characterSetAL32UTF8oracle.install.db.config.starterdb.memoryOptionfalseoracle.install.db.config.starterdb.storageTypeASM_STORAGE# 两节点执行 root 脚本/u01/app/oracle/product/19.0.0/dbhome_1/root.sh# rac1 与 rac2 各执行一次7.2 DBCA 创建 RAC 数据库su- oracle dbca-silent-createDatabase-templateName General_Purpose.dbc-gdbnameorcl-sidorcl-characterSetAL32UTF8-sysPasswordYour_DB_Password-systemPasswordYour_DB_Password-storageTypeASM-diskGroupNameDATADG-datafileDestinationDATADG-recoveryAreaDestinationDATADG-totalMemory4096-nodeinforac1,rac2若尚未创建 DATADG可先在 ASM 里补建asmca图形界面或asmcmd/SQL 创建。八、第六步验证 RAC 集群-- 1. 集群资源crsctl stat res-t-- 2. 实例状态两实例都应为 OPENsrvctlstatusdatabase-d orcl-- 3. GV$ 视图验证RAC 专属SQLSELECTinst_id,instance_name,statusFROMgv$instance;-- 4. Cache Fusion 相关等待事件RAC 特有SQLSELECTevent,total_waitsFROMgv$system_eventWHEREeventLIKEgc%ANDrownum10;-- 5. SCAN 连接验证负载均衡sqlplus system/xxxrac-scan:1521/orcl-- 反复连接观察实例轮换SELECT inst_id FROM gv$instance验证通过标准crsctl stat res -t全部 ONLINEgv$instance返回 2 行两实例SCAN 连接自动在两节点间负载均衡九、踩坑记录重点收藏#坑现象解决1共享盘未预分配GI 预检报共享存储权限/一致性错误vmdk 用-t 4预分配两节点 vmx 配置完全一致2忘记disk.lockingfalse第二节点看不到共享盘/IO 错误vmx 加共享段配置重启虚拟机3hosts 有误集群节点间通信失败cssd 起不来VIP/SCAN 地址不能与 Public 重复私网名后缀 -priv4透明大页未关GI 预检 WARN/性能异常grub 加transparent_hugepagenever并重建引导5/dev/shm 过小共享内存不足报错fstab 扩到 2G 并 remount6udev WWID 不一致两节点看到的盘名不同共享盘两节点 WWID 必须一致同一 VMDK分别核对7root.sh 顺序rac2 root.sh 报错必须 rac1 先执行成功后再执行 rac28心跳网卡选错集群误把 Public 当心跳networkInterfaceList 里 Private 网卡类型填 5cluster_interconnect9SCAN 解析失败客户端连不上 SCANhosts 里 SCAN 域名 3 个地址都写或配 DNS 轮询10内存不足root.sh/GI 安装 OOM每节点至少 8G 内存别同时跑太多进程十、结语在 VMware 上部署 RAC与生产环境物理机 SAN流程完全一致共享存储 → 系统加固 → GI → DB → DBCA → 验证。这套环境的每个组件都是真实的后续可以继续做Data Guard在 RAC 基础上搭建容灾系列第 14 篇监控Prometheus/Grafana 采集 GV$ 指标系列第 17 篇故障演练模拟节点宕机验证 Failover系列第 20 篇本文章属于《Oracle 数据库全栈运维实战系列VMware 版》高可用篇。系列规划见专栏总纲欢迎收藏、交流。

相关新闻

基于DCT的数字水印:原理、Python实现与鲁棒性优化

基于DCT的数字水印:原理、Python实现与鲁棒性优化

简介:基于DCT的数字水印技术MATLAB实现资源包,涵盖从图像变换、系数处理到水印嵌入与提取的完整代码方案,适合图像处理、信息安全及相关方向的学习者用于课程设计或科研验证。压缩包内共3个文件,包含可直接运行的.m脚本、原始图像…

2026/10/14 9:25:08 阅读更多 →
Agent技能体系从零搭建:描述文件、回归测试与工程化维护实践

Agent技能体系从零搭建:描述文件、回归测试与工程化维护实践

1. 为什么同一个模型,不同团队跑出的效果差距这么大 先讲一个我最近的观察。在同类项目里,好几个团队用的是同一个基座模型,甚至系统提示词都相差不大,但最终跑出来的Agent应用效果却天差地别。有的团队做出来的东西像“一个人”在…

2026/10/14 9:24:06 阅读更多 →
rea:一个安全可预览的跨平台命令行批量重命名工具的设计与实现

rea:一个安全可预览的跨平台命令行批量重命名工具的设计与实现

命令行批量重命名这事,我前前后后折腾过不下十次。每次从相机导出一堆照片,或者接过一个遗留项目里乱糟糟的文件目录,总得打开某个图形化工具,或者临时网上搜一段脚本,改改参数、跑一遍、报错、再改一遍。直到某次为了…

2026/10/14 9:24:06 阅读更多 →

最新新闻

数据库安全加固实战:五大数据库风险排查与加固指南

数据库安全加固实战:五大数据库风险排查与加固指南

简介:一份面向数据库运维与安全管理技术人员的数据库安全加固手册,围绕 MySQL、Oracle、SQL Server、PostgreSQL、Redis 五种主流数据库,逐项梳理用户与密码配置、权限管理、通信加密、日志审计、文件权限等关键安全控制点,并给出…

2026/10/14 11:18:26 阅读更多 →
面向Agent的互联网:资源接口的设计与改造实践

面向Agent的互联网:资源接口的设计与改造实践

1. 从“人看网页”到“Agent 读接口”,互联网发生了什么变化 1.1 先搞清楚“面向 Agent 的互联网”到底在说什么 过去十几年我们谈互联网,默认的使用者是“人”。人在浏览器里输入网址、滚动页面、辨认按钮、点击链接,这整套行为都建立在人类…

2026/10/14 11:18:26 阅读更多 →
开源客户端省Token实战:上下文管理、模型路由与缓存优化

开源客户端省Token实战:上下文管理、模型路由与缓存优化

前阵子一位朋友跟我抱怨,他给团队搭的问答机器人,每天只是几十个人问问题,月底账单却高得离谱。我帮他检查了一遍调用链路,问题很明显:客户端一直用官方默认配置,上下文窗口拉满,系统提示词写了…

2026/10/14 11:18:26 阅读更多 →
OpenTiny开源项目:从组件库到智能前端生态的演进

OpenTiny开源项目:从组件库到智能前端生态的演进

1. OpenTiny开源项目三年发展全景回顾 作为国内企业级前端开源领域的标杆项目,OpenTiny在过去三年间完成了从单一组件库到完整前端开发生态体系的蜕变。这个由华为云前端团队主导的开源项目,最初只是为解决内部业务需求而诞生的技术方案,如今…

2026/10/14 11:18:26 阅读更多 →
超临界二氧化碳布雷顿简单循环MATLAB计算程序:建模思路与工程验证指南

超临界二氧化碳布雷顿简单循环MATLAB计算程序:建模思路与工程验证指南

简介:面向能源动力领域的技术人员、科研人员及相关专业学生,基于 MATLAB 的超临界二氧化碳布雷顿简单循环计算程序,能替代繁琐的人工手算,帮助使用者快速完成热力状态参数求解与循环性能评估。压缩包内包含 2 个 m 文件&#xff0…

2026/10/14 11:18:26 阅读更多 →
cmux实战:将AI Coding的Agent、浏览器和终端统一编排进同一会话

cmux实战:将AI Coding的Agent、浏览器和终端统一编排进同一会话

干 AI Coding 最烦的事情,往往不是模型给错了答案,而是窗口开得太多。左边一个 Agent 在跑分析,右边浏览器开着开发预览,底下还有四五个终端在编译、跑测试、看日志……我一度以为是自己不够专注,后来才意识到是工具管…

2026/10/14 11:17:25 阅读更多 →

日新闻

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/13 16:22:04 阅读更多 →
影刀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 阅读更多 →