1. 这套“简单”到底简单在哪Oracle 23ai RAC 部署这件事我第一次听到“简单”两个字时是持怀疑态度的。毕竟从 10g 时代一路做过来两节点 RAC 的全流程我闭着眼都能背核对 OS 版本、改内核参数、配 hosts、划共享盘、装 GI、跑 root.sh、装 DB 软件、DBCA 建库、配 SCAN、加服务、验切换……整套下来顺利的话大半天遇到私网丢包或者 ASM 盘识别不到两天都出不来。所以当有人告诉我 23ai 的 RAC 能“很简单”地搭起来时我第一反应是是不是把哪一步偷偷省了。真上手做了三轮之后结论是RAC 该有的复杂度一点没少变的是“把复杂度收敛到哪里”。过去的做法是把 12 个手工步骤摊在时间线上每步都可能出错且出错点和出错原因隔得很远现在这套做法是把它们压进三个响应文件加几条校验命令里出错点集中、可回溯、可重跑。换句话说这条标题里说的“简单”是方法论层面的简化——先想清楚再一次性配置最后一次性校验并非版本本身的额外功能。这篇内容写给谁如果你已经知道 RAC 是什么、装过一次 19c 或者更早版本现在要迁移到 23ai或者要给团队搭一套标准的部署模板那这篇可以直接拿去用如果你是刚接触 RAC 的新手建议你先在虚拟化环境里按本文走一遍再考虑上生产。文中所有主机名、IP、目录都是虚构的示例代称你按自己环境替换涉及具体版本补丁的行为差异最终以你手上介质对应的官方文档为准。1.1 传统 RAC 部署到底卡在哪里先说清楚老流程的毛病才知道新做法在治什么病。我梳理了一遍过往的 RAC 部署记录真正卡住人的无非六处操作顺序不稳定先配内核参数还是先建用户组、先划盘还是先装 preinstall顺序错了会留下互相覆盖的配置最典型的是先手工改了sysctl.conf再装 preinstall 包结果被包里的配置覆盖回去重启后参数又不对了。手工操作不可复现每台机器的私网网卡名不一样ens192、eth1、enp4s0f0全见过每次都要现查响应文件里的网卡名字段一填错GI 装到一半报错回滚。共享存储权限漂移/dev/sdb这种名字重启一次可能就变了udev 规则没写对GI 起来的瞬间 ASM 找不到盘ORA-15018报出来排查得从头开始。节点间时间与网络不一致两节点 chrony 没对好CRS 起不来私网 MTU 不一致心跳包被丢节点被踢出去日志里只有一行 EVMD 报错。root.sh 时机模糊node1 跑完 root.sh 要不要等 node2两边谁先谁后老文档里五花八门实际上顺序错了会导致 OCR 写坏。建库参数靠猜DBCA 图形界面一路下一步建完才发现字符集不对、redo 太小、归档没开返工代价极高。这六条共同点是它们都属于“一次性决策”做对了后面一路顺做错了后面全是排查。所以真正该做的是把一次性决策提前定死再用脚本固化。1.2 我把流程压成了三段式我的做法是把整件事拆成三段每段有独立的输入和输出段与段之间用校验点隔开阶段输入输出校验方式第一段系统层主机清单、磁盘清单、IP 规划两节点 OS 一致、盘符固化、用户组齐全cluvfy stage -pre crsinst第二段集群层grid 响应文件GI 起来、ASM 磁盘组可挂crsctl check cluster -all第三段数据库层db 响应文件 DBCA 参数RAC 实例双活、SCAN 可连gv$instance双行、切换测试这个三段式的好处很直接任何一段失败你只需要退回这一段的起点不用从头再来。GI 装坏了清掉后用同样的响应文件重跑建库失败删库重建不碰集群。过去那种“一路装到底、坏了全推倒”的痛苦主要是没有分段校验点。注意23ai 的 Grid Infrastructure 与 Database 是两个独立介质、独立 Home。不要图省事把两者装到同一个 ORACLE_HOME这个在 RAC 场景下一定会出问题属于经典的坑踩了会浪费你半天时间。2. 上机前的规划表一次定死资源和目录我见过太多人跳过这一步然后卡在“SCAN 用几个 IP”“ASM 要不要拆两个盘组”“OCR 放哪里”上反复试。规划做细一点后面能省掉一整天的试错。下面这套取值是我在虚拟化环境下验证过的物理机按比例放大即可。2.1 主机、内存与存储的实测取值我的测试环境是两台 16 核 / 64G 内存的虚机配一块可共享的块存储。这套配置能跑起来但生产环境不要照抄尤其是内存。内存怎么算。RAC 是每节点跑一个实例所以内存按单节点算不要按总量除。以 64G 为例操作系统 Grid Infrastructure ASM 实例 监控代理留 14G剩 50G 给数据库实例。这 50G 里SGA 给 24GPGA 给 12G留 14G 余量应对峰值剩下 14G 其实是防御性冗余——不要把内存挤满RAC 节点因为内存抖动导致 ASM 实例被 OOM 杀掉整个节点就掉线了这个代价远大于多买两条内存。SGA 与 HugePages 的关系。RAC 下不能用自动内存管理AMMmemory_target在集群环境下根本不支持只能用自动共享内存管理ASMM。用了 ASMM 就应该配 HugePages否则 24G 的 SGA 会被切成几十万个小页TLB 命中率低得可怜。计算方式很朴素nr_hugepages SGA 大小(MB) / 2 10% 余量 24G 24 * 1024 / 2 12288加余量取 13312两台机器在sysctl.conf里写vm.nr_hugepages 13312数据库参数配use_large_pagesONLY。这里有个细节一旦设成ONLY如果大页不够实例直接起不来报ORA-27102。所以宁可多给 1024 个页也不要刚刚好。存储怎么划。我把共享盘分成两组磁盘组用途盘数与大小冗余方式AU 大小CRSOCR Voting Disk3 块 8GNORMAL生产/ EXTERNAL测试4MDATA数据文件4 块 100GNORMAL4MRECO归档日志2 块 100GNORMAL4MOCR 和 Vote 一定要单独放不要和数据文件挤在同一个盘组。理由很实际数据盘组被打满导致 OCR 写不进去整个集群会失去一致性保护然后节点重启这种事我见过两次修起来非常难受。2.2 网络规划公网、私网、SCAN 的分配顺序网络是 RAC 里最容易配错、也最难排查的部分。我的规划习惯是先画表再动手角色举例地址说明公网 VIPnode1 / node2192.168.56.11 / .12客户端与运维入口故障时漂移物理公网 IP192.168.56.21 / .22主机固定地址不能漂私网心跳 ASM10.0.0.21 / .22建议独立网卡不走路由SCAN VIP192.168.56.31 / .32 / .33三个地址对应三个 SCAN ListenerSCAN 名称rac-scan必须在 DNS 或三节点 hosts 里解析到三个 IP几个常被忽略的点SCAN 用三个 IP 是上限不是必须。测试环境一个也能跑但生产建议三个客户端连接分配更均匀某个 Listener 挂掉影响面小。私网必须和公网不同网段且两节点私网在同一网段。这不是“建议”是硬性要求跨网段的私网会让 HAIP 起不来。HAIP 是自动的。23ai 里集群互联的高可用地址169.254.x.x段由集群自己管不需要你手工配但防火墙策略要放行这个网段否则心跳不通。测试环境最省事的做法是直接关掉防火墙生产环境则要精确放行。MTU 两节点必须一致。公网 1500、私网 9000 是可以的只要两边一致但如果 node1 私网 9000、node2 私网 1500装机前置检查会直接报 MTU 不一致这个错误信息很明确照着改就行。提示所有主机名、IP、SCAN 名称在动手前先写进两节点的/etc/hosts格式为“IP 主机名 主机名-域名后缀”。RAC 对主机名解析非常敏感hostname -f返回短名会导致后续节点添加失败。2.3 目录结构与用户组装完再改是灾难目录规划的原则是同一个路径在两节点上必须完全一致且属于同一套用户组。我用的结构/u01/app/oraInventory 库存目录属主 oinstall /u01/app/grid GI 的 ORACLE_BASE /u01/app/23ai/grid GI 的 ORACLE_HOME /u01/app/oracle DB 的 ORACLE_BASE /u01/app/23ai/db DB 的 ORACLE_HOME用户组我用了标准六件套oinstall主组、dbaOSDBA、operOSOPER、backupdba、dgdba、kmdba、racdba。有人图省事只建oinstalldba能装能跑但后面做 RMQ 备份、Data Guard、TDE 加密时会发现权限对不上需要重新授权甚至重装 Home。这一步多花十分钟后面省几小时。还有两个容易踩的细节grid 用户和 oracle 用户的 UID / GID 在两节点上必须完全一致。不一致的情况下共享存储在两边看到的属主不同ASM 会认为盘不可用。用id grid、id oracle两边对一遍数字对不上就改。不要给 oracle / grid 用户配免密登录 root。这对部署没有任何帮助反而会让后续的安全基线检查不过。3. 系统层准备准备工作交给预安装包完成这一步是整篇内容里“简化”感最明显的地方。以前要手工改十几处内核参数、核对一堆 rpm 包、写 limits现在一个预安装包基本全覆盖。3.1 预安装包和内核参数的落地方式两节点都执行# 关闭透明大页与 NUMA 均衡避免内存抖动 echo never /sys/kernel/mm/transparent_hugepage/enabled echo never /sys/kernel/mm/transparent_hugepage/defrag # 预安装包会把依赖、sysctl、limits、用户组一次性写好 dnf install -y oracle-database-preinstall-23ai # 按自己的规划覆盖关键内核参数 cat /etc/sysctl.d/99-oracle-rac.conf EOF kernel.shmmni 4096 kernel.sem 250 32000 100 128 fs.file-max 6815744 fs.aio-max-nr 1048576 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 vm.nr_hugepages 13312 vm.swappiness 10 EOF sysctl --system这里有个我反复验证过的顺序问题预安装包必须在写自定义 sysctl 之前装因为包会写入自己的/usr/lib/sysctl.d/配置文件优先级比/etc/sysctl.d/低。如果你先写自定义配置再装包覆盖关系虽然是自定义的赢但包可能顺带调整了limits.conf和 PAM容易造成理解混乱。统一用“先装包、再覆盖”的顺序两节点的最终配置可以用sysctl -a | grep -E shmmni|sem|nr_hugepages比对输出必须一模一样。limits.conf我也习惯显式覆盖一遍不依赖包的默认值grid soft nofile 1024 grid hard nofile 65536 grid soft nproc 16384 grid hard nproc 16384 grid soft stack 10240 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384 oracle soft stack 10240验收方式很简单su - grid -c ulimit -n和su - oracle -c ulimit -n两节点输出应该都是 65536。如果还是 1024说明 PAM 没生效或者被别的配置覆盖了通常是/etc/security/limits.d/下有更高优先级的文件检查一下文件名排序。3.2 共享盘识别与设备权限固化共享盘这一步是 RAC 部署里唯一没法完全自动化的环节因为它依赖你的存储环境。核心目标只有一个让同一个盘在两节点上永远指向同一个设备名并且属主属组固定。我用 udev 规则解决。先看盘的唯一标识# 逐块查 SCSI ID确认两节点看到的是同一批盘 for d in /dev/sd{b,c,d,e,f,g}; do echo -n $d - /usr/lib/udev/scsi_id -g -u -d $d done拿到 ID 后写规则示例实际 ID 换成你自己的KERNELsd*, SUBSYSTEMblock, PROGRAM/usr/lib/udev/scsi_id -g -u -d /dev/$name, RESULT3600a098038304a4b2b4b4a7a7a7a7a7, SYMLINKasm-crs1, OWNERgrid, GROUPasmadmin, MODE0660 KERNELsd*, SUBSYSTEMblock, PROGRAM/usr/lib/udev/scsi_id -g -u -d /dev/$name, RESULT3600a098038304a4b2b4b4a7a7a7a7a7b, SYMLINKasm-data1, OWNERgrid, GROUPasmadmin, MODE0660然后udevadm control --reload-rules udevadm trigger --typedevices --actionchange检查ls -l /dev/asm-* # 两节点输出应完全一致权限 crw-rw---- grid asmadmin注意刻盘前把每块盘的头部清一下dd if/dev/zero of/dev/sdX bs1M count100残留的分区表或旧 ASM 头会让 GI 拒绝使用这块盘报错信息通常只说“磁盘不可用”不告诉你为什么。此外两节点必须关掉同一批服务别只关一台systemctl disable --now firewalld systemctl disable --now NetworkManager # 静态 IP 场景下更稳 sed -i s/SELINUXenforcing/SELINUXpermissive/ /etc/selinux/config提示firewalld关掉只是测试环境的省事做法。生产环境保留防火墙的话必须放行公网段、私网段、HAIP 段169.254.0.0/16以及 SCAN 端口缺一个就会卡在节点添加或者 SCAN 监听起不来。4. Grid Infrastructure 安装响应文件静默跑通到这一步前面的准备工作如果做扎实了整个安装过程就是“执行一条命令 等”。这一节我重点拆响应文件因为它是整个流程里唯一需要动脑的地方。4.1 响应文件逐段拆解我的 grid 响应文件内容路径和主机名替换成你自己的oracle.install.responseFileVersion/oracle/install/rspfmt_crsinstall_response_schema_v23.0.0 ORACLE_HOSTNAMErac1 UNIX_GROUP_NAMEoinstall INVENTORY_LOCATION/u01/app/oraInventory SELECTED_LANGUAGESen,zh_CN ORACLE_HOME/u01/app/23ai/grid ORACLE_BASE/u01/app/grid oracle.install.optionCRS_CONFIG oracle.install.asm.OSDBAasmdba oracle.install.asm.OSOPERasmoper oracle.install.asm.OSASMasmadmin oracle.install.crs.config.clusterNamerac-cluster oracle.install.crs.config.ClusterTypeSTANDARD oracle.install.crs.config.clusterNodesrac1:rac1-vip:HUB,rac2:rac2-vip:HUB oracle.install.crs.config.networkInterfaceListens192:192.168.56.0:1,ens224:10.0.0.0:5 oracle.install.crs.config.scanTypeLOCAL_SCAN oracle.install.crs.config.gpnp.scanNamerac-scan oracle.install.crs.config.gpnp.scanPort1521 oracle.install.crs.config.useIPMIfalse oracle.install.crs.config.storageOptionFLEX_ASM_STORAGE oracle.install.asm.diskGroup.nameCRS oracle.install.asm.diskGroup.redundancyEXTERNAL oracle.install.asm.diskGroup.AUSize4 oracle.install.asm.diskGroup.disks/dev/asm-crs1 oracle.install.asm.diskGroup.diskDiscoveryString/dev/asm-* oracle.install.asm.monitorPasswordMonitor#2024 oracle.install.asm.SYSASMPasswordSysasm#2024几个字段值得单独说明填错概率最高clusterNodes的格式是“主机名:VIP 名:角色”角色写HUB表示普通节点。这个字段里出现的所有名字都必须在两节点 hosts 里有解析否则安装程序会在预检查阶段就退出。networkInterfaceList的格式是“网卡名:网段:类型码”类型码1是公网、5是私网心跳兼 ASM 用。网卡名必须和你环境里ip a看到的一致写错了直接报“接口不存在”。storageOption我选FLEX_ASM_STORAGE这是推荐值后续扩容和加盘都更灵活。diskGroup.disks建议只显式写 CRS 需要的盘其余盘通过diskDiscoveryString让 ASM 自己发现避免误把系统盘划进磁盘组。密码字段要满足复杂度至少 8 位且包含字母、数字、特殊字符。我在这一步被拦过两次报错信息很含糊只提示“密码不符合要求”。4.2 安装执行节奏与 root.sh 的时机静默安装用grid用户执行su - grid cd /u01/app/23ai/grid ./gridSetup.sh -silent -responseFile /home/grid/grid_install.rsp -waitForCompletion看到Successfully Setup Software之后此时不要继续下一步先在两节点分别跑 root.sh顺序是先 rac1 后 rac2# rac1 /u01/app/23ai/grid/root.sh # 等 rac1 的 root.sh 完全结束、提示成功后再到 rac2 /u01/app/23ai/grid/root.sh这个顺序是硬性的。我在早期版本上试过两边同时跑OCR 写冲突集群起不来最后只能清盘重装。root.sh 执行过程中会做几件事配置集群启动脚本、创建 OCR 和 Vote、启动 CRS。看输出的时候关注最后几行出现The Cluster Ready Services (CRS) is now configured这类提示才算过。4.3 装完立刻做的五项验证装完不验证等于没装。这五条命令我每次都会跑一遍几十秒的事能挡掉后面 80% 的怪问题# 1. 两节点集群状态 crsctl check cluster -all # 2. 资源清单重点看 ora.asm、ora.crsd、ora.cssd 状态 crsctl stat res -t # 3. ASM 磁盘组是否挂上 asmcmd lsdg # 4. OCR 一致性 ocrcheck # 5. SCAN 与监听 srvctl config scan srvctl status scan_listener判断标准crsctl stat res -t里所有资源都是ONLINE或ONLINE INTERMEDIATE不能出现INTERMEDIATE卡住超过五分钟的状态asmcmd lsdg里 CRS 盘组MOUNTEDocrcheck返回SUCCEEDED。任何一条不对先别往下走回查这一节。注意如果crsctl check cluster -all只在 rac1 上返回正常rac2 无响应九成是私网不通或者两节点时间相差太大。先ping私网地址再chronyc sources -v看时间同步两个都过了再怀疑更深层的原因。5. 数据库软件与建库DBCA 一步写成集群层稳了剩下的活其实是“装软件 建库 验连接”其中真正需要动脑的只有建库参数。5.1 数据库软件静默安装的差异点DB 软件的响应文件和 GI 的差别不大主要是oracle.install.option变成INSTALL_DB_SWONLY以及要显式声明各个管理组oracle.install.responseFileVersion/oracle/install/rspfmt_dbinstall_response_schema_v23.0.0 oracle.install.optionINSTALL_DB_SWONLY UNIX_GROUP_NAMEoinstall INVENTORY_LOCATION/u01/app/oraInventory ORACLE_HOME/u01/app/23ai/db ORACLE_BASE/u01/app/oracle oracle.install.db.InstallEditionEE oracle.install.db.OSDBA_GROUPdba oracle.install.db.OSOPER_GROUPoper oracle.install.db.OSBACKUPDBA_GROUPbackupdba oracle.install.db.OSDGDBA_GROUPdgdba oracle.install.db.OSKMDBA_GROUPkmdba oracle.install.db.OSRACDBA_GROUPracdba oracle.install.db.rootconfig.executeRootScripttrue oracle.install.db.rootconfig.configMethodROOT执行su - oracle cd /u01/app/23ai/db ./runInstaller -silent -responseFile /home/oracle/db_install.rsp -waitForCompletion两个细节一是-ignorePrereqFailure尽量别加前置检查报的警告八成是真问题比如大页不够、包缺失加了跳过只是把炸弹埋到建库阶段二是executeRootScripttrue让安装程序自动在两节点跑 root.sh省一次手工操作但前提是当前用户有 sudo 或者在 root 下执行没权限就老实改回 false 手工跑。5.2 DBCA 建库参数怎么算出来的建库这块我把参数分成三类不能改的、要按容量算的、按业务定的。dbca -silent -createDatabase \ -templateName New_Database.dbt \ -gdbName RACDB -sid RACDB \ -databaseConfigType RAC \ -nodeinfo rac1,rac2 \ -policyManaged false \ -sysPassword Sys#2024pass -systemPassword Sys#2024pass \ -createAsContainerDatabase true -numberOfPDBs 1 -pdbName PDB1 \ -storageType ASM -diskGroupName DATA \ -datafileDestination DATA \ -recoveryAreaDestination RECO \ -characterSet AL32UTF8 -nationalCharacterSet AL16UTF16 \ -totalMemory 24576 -memoryMgmtType AUTO_SGA \ -redoLogFileSize 1024 \ -databaseType OLTP -emConfiguration NONE \ -responseFile /home/oracle/dbca_create.rsp \ -useWallet false不能改的部分。-databaseConfigType RAC加-nodeinfo是让它建 RAC 库的关键少了这两个参数会建出单实例库之后想转 RAC 极其麻烦。-characterSet AL32UTF8也别动中文环境用别的字符集后面导入导出会出各种乱码问题。要按容量算的部分。-totalMemory 24576就是前面算的 SGA 24G注意 DBCA 里这个参数单位是 MB。-redoLogFileSize 1024是我根据日均归档量估的——redo 太小会导致频繁切换日志切换时会有短暂的性能抖动我按每小时切换不超过 3 次来定实测日增归档 80G 左右的库1024M 的 redo 刚好。按业务定的部分。-createAsContainerDatabase true建议开多租户是 23ai 的默认形态后面插拔 PDB 做迁移、做测试库非常方便。-emConfiguration NONE是因为我环境里没部署 EM你要用就改成DBEXPRESS。密码策略。建库前先确认口令复杂度要求DBCA 里设的密码会同时作为sys、system的密码且两节点一致。我在这一步被“密码不符合复杂度策略”卡过一次报错信息只给一个ORA-28003其实是 profile 里的校验函数没满足。5.3 建库后的连通性与切换验证建库成功不代表可用要验三件事实例双活、SCAN 连接正常、故障时能切。# 1. 两个实例都在 srvctl status database -d RACDB # 2. 通过 SCAN 连进去看实例分布 sqlplus sys/Sys#2024passrac-scan:1521/RACDB as sysdba SQL select inst_id, instance_name, status from gv$instance; SQL select name, value from gv$parameter where name cluster_database;gv$instance应该返回两行cluster_database为TRUE。然后用 SCAN 循环连十次看实例号是否在两个节点间轮转轮转说明 SCAN 的负载分发是好的如果十次全落到同一个节点检查 SCAN Listener 数量或者客户端连接串是不是写死了地址。再做一次真实的切换测试这个步骤我强烈建议在交付前执行# 关掉 rac1 上的实例确认服务漂到 rac2 srvctl stop instance -d RACDB -i RACDB1 srvctl status database -d RACDB # 应用侧通过 SCAN 仍然能连然后恢复 srvctl start instance -d RACDB -i RACDB1提示如果业务连接串用的是 SCAN 服务名切换时客户端几乎无感但如果写死了 VIP 或者物理 IP切换必然中断。上线前务必确认应用侧连接串的正确形态。服务这块我习惯单独建一个业务服务而不是让应用连默认的RACDB服务srvctl add service -db RACDB -service APPS \ -preferred RACDB1,RACDB2 -policy AUTOMATIC \ -failovertype SESSION -failovermethod BASIC srvctl start service -db RACDB -service APPS这样后续做srvctl relocate service、按服务限流、单独调整服务的并行度都不会影响其他业务。6. 遇到的问题记录与常见问题速查前面写得再顺真机上也一定会遇到问题。我把这几轮遇到的、以及同行反馈过的典型问题整理成表按报错先定位别急着重建。6.1 常见问题速查表现象 / 报错最可能原因处理方向预检查报 PRVF 类网络错误提示 MTU 不一致两节点网卡 MTU 或网段配错统一ip link的 MTU确认私网同网段ORA-15018/ORA-15031磁盘组创建失败盘权限不对 / 盘上有残留头检查/dev/asm-*属主属组清盘头重试crsctl check cluster只有一台返回正常私网不通或时间不同步先 ping 私网再看 chrony最后看 HAIP 状态root.sh 跑完 CRS 起不来两节点 root.sh 顺序错 / OCR 写冲突查$GRID_HOME/log/host/crsd严重时清盘重来DBCA 报 ORA-01017 或口令校验失败密码复杂度不满足换含大小写、数字、特殊字符的密码实例启动报ORA-27102大页不足提高vm.nr_hugepages并sysctl -pSCAN VIP 起不来hosts / DNS 解析不到三个 IP确认nslookup rac-scan返回三条记录节点莫名重启日志含节点驱逐信息私网丢包虚拟化环境常见检查网卡多队列配置或明确指定集群互联网卡应用连上后偶发断连连接串写死 VIP / 未配服务改为 SCAN 服务名配 TAF 参数建库后归档空间迅速打满redo 过小或归档未设清理策略调大 redo配 RMAN 归档删除策略这张表覆盖了我实际遇到的绝大部分问题。重点说三条不在表里但更值得注意的。6.2 三条常规文档不写的经验第一条虚拟化环境下私网才是最大的不确定因素。物理机装 RAC 时私网基本不出问题虚拟化平台就完全不一样——虚拟网卡的缓冲区、多队列、宿主机调度都会影响心跳包的时延。表现是节点稳定运行几天后突然重启日志里找不到明显原因。我的做法是三件事私网单独走一块虚拟网卡并开启多队列把集群互联明确绑定到这块网卡上别让集群自己猜上线前用ping -f -s 8000对私网打一轮压测观察丢包率是否为 0。这几步做完节点的非预期重启基本就消失了。第二条所有“装完再调”的念头都要在开工前掐掉。RAC 的很多参数是“装的时候写进 OCR / 建库时写进控制文件”的装完再改的代价远大于装前想清楚。典型例子是字符集、db_block_size、redo 大小、ASM 的 AU 大小。有人建完库发现db_block_size是 8K 想改成 16K只能重建库有人 ASM AU 用了 1M 想改成 4M只能重建磁盘组。花半天做规划表能省掉两天返工。第三条验收清单比安装过程更值得沉淀。装完之后我把那五条crsctl/asmcmd/ocrcheck命令写成脚本每次部署、每次变更都跑一遍输出存档。这套东西后来帮我在一次存储扩容后提前发现了 OCR 备份过期的问题避免了更大的麻烦。交付一套 RAC交的不只是“能跑”还有“下次出问题时能查”。最后分享一个我在实际操作中的体会RAC 这东西的难点从来不在安装本身安装只是把正确的决策执行一遍真正耗时间的是每个决策背后的“为什么”。把规划做在前面、把校验点设在中途、把验收做成脚本这套流程走顺之后两节点 RAC 从裸机到建成库我实测下来四个小时左右能完成其中两个小时是在等 root.sh 和 DBCA 跑完。剩下那两个小时基本都花在核对输出和记录上——这两小时不能省省了后面一定要还。
企业数字化 ERP 产品动态
相关推荐
大数据预测分析在现代农业中的核心技术架构与应用 1. 大数据预测分析如何重塑现代农业当我在农场看到无人机飞过麦田时,突然意识到农业正在经历一场静默的革命。传统农业依赖代代相传的经验法则,而现代农场主口袋里装着的不再是老黄历,而是实时更新的预测模型。大数据预测分析正在彻底改变我们… · 2026/11/6 17:28:22
TiDB报错Transaction is too large:大事务拆分与参数调优实战 1. 报错现场还原:一条看似普通的写入为什么突然崩了第一次撞上Transaction is too large这个报错,是在一个批量数据回填的场景里。业务侧要一次性把一批历史订单的状态刷成新值,开发同学图省事,直接在一个事务里循环更新了几万行&… · 2026/11/5 4:00:49
基于微服务的智慧养老系统架构设计与实践 1. 项目背景与行业痛点我国正加速进入老龄化社会,根据最新统计数据,65岁以上老年人口占比已超过14%,正式迈入深度老龄化阶段。在这个背景下,传统的家庭养老模式面临巨大挑战:子女工作繁忙无法全天候照料、专业护理人员… · 2026/11/8 21:46:05
电工证复审周末能考吗?通过率揭秘,别被中介骗了 电工证复审周末能考吗?通过率揭秘,别被中介骗了 你是不是正愁着 电工证复审周末能考吗 这个问题,又怕找个不靠谱的机构被坑?尤其是许昌中小施工企业的负责人,既要管理项目,又要操心员工证书的复审,时间紧张、怕被中介坑,真的太现实了。别急,今天我… · 2026/11/9 15:55:59
上海考电工证政策文件考前押题怎么准备更高效 上海考电工证政策文件考前押题怎么准备更高效 你是不是也担心不知道去哪里报名,怕被中介坑?现在电工证考试越来越规范,但信息混乱,容易踩坑。别急,这篇文章从 上海考电工证政策文件 出发,给你一套 考前押题 的准备策略,避免走弯路。… · 2026/11/9 15:55:59
怎样查电工证被盗用 电工证值不值得考 怎样查电工证被盗用 电工证值不值得考 不知道去哪报名怕被中介坑,你不是一个人。很多人想考电工证,但又怕被培训机构骗钱,怕证过期、怕证书造假、甚至怕自己的证被人盗用。特别是现在网上信息太多,真假难辨,连自己是不是被“盗用”了都搞不清楚。今天就… · 2026/11/9 15:55:59
佛冈有电工证考吗 从零基础到持证上岗多久拿证全解析 佛冈有电工证考吗 从零基础到持证上岗多久拿证全解析 你是不是也这样,刚从老家出来打工,手里啥证也没有,找工作处处碰壁,老板一听没电工证直接摇头?别急,今天咱们就聊聊 佛冈有电工证考吗… · 2026/11/9 15:55:59
玉环特种工考证学校教你搞定上岗必备证书复审延期难题 玉环特种工考证学校教你搞定上岗必备证书复审延期难题 证书过期了不知道怎么复审延期?你不是一个人。在玉环特种工考证学校,我们每天都会遇到类似的问题。特种作业操作证一旦过期,不仅影响你上岗,还可能被依法追责。尤其是在建筑、制造等行业,… · 2026/11/9 15:55:59
好用的电工证模拟考试题库 电工证在外省考了能转到郑州吗?这本郑州报考避坑指南你必须看 之前考的证在外省能不能转过来?这是很多准备在郑州发展或者已经在郑州工作的电工朋友最关心的问题。今天我用10年应急管理行业经验,结合 郑州市应急管理局… · 2026/11/9 15:54:51
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/9 2:05:04
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/9 3:11:26
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/9 5:24:17
电工证不需要考复审延期怎么办理 通过率揭秘 电工证不需要考复审延期怎么办理 通过率揭秘 不知道去哪报名怕被中介坑?电工证不需要考复审延期怎么办理?最近不少学员都在问这个问题,尤其是刚拿到证的新手,对复审流程一知半解,生怕被培训机构套路。别担心,今天咱们就来聊聊电工证复审的真相,尤其是… · 2026/11/9 0:00:54
砀山哪里考电工证的多 电工证报考别踩坑 郑州报考避坑指南 砀山哪里考电工证的多 电工证报考别踩坑 郑州报考避坑指南 工地太忙根本没时间复习考试,这几乎是所有一线施工人员的共同心声。尤其是像电工这样的特种作业,操作证不仅关系到能不能上工,还直接关系到工资高低和职业发展。可偏偏,很多人连怎么报名、去哪… · 2026/11/9 0:00:54
南方电网电工作业含金量高吗?应届生怎么考怎么干? 南方电网电工作业含金量高吗?应届生怎么考怎么干? 工地太忙根本没时间复习考试,这不是个别现象,而是很多刚毕业的工程类学生面临的现实。南方电网电工作业的证书,听起来门槛不低,但 含金量… · 2026/11/9 0:00:54
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:23:35
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:23:58
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/9 11:25:08