简介面向需要在Red Hat Enterprise Linux 7.6上部署Oracle 19c RAC的DBA与运维工程师这份安装手册将环境准备与集群配置拆分为可逐步跟做的阶段涵盖OS环境检查、关闭THP并开启Hugepages、依赖包与内核参数设置、时钟同步等前置任务并重点讲解如何通过GNS配置SCAN以及Flex ASM在不同版本中的功能变化。网络配置部分专门区分固定配置与GNS固定配置两种方式内核参数也给出了Preinstall RPM与手工配置两条路径。手册同时梳理了从12.2版本开始集群区分为Standalone Cluster与Domain Service Cluster两种模式后的选择依据帮助读者理解架构演进而非机械执行命令遇到配置问题时还可以按其中的分析思路排查定位。资源为单一docx文档压缩包约160KB共1个文件章节按安装流程组织便于查阅和打印。目前已有716人学习/下载适合具备一定Linux和Oracle基础、希望降低RAC搭建踩坑成本的中高级读者。1. Oracle 19c RAC on Linux 7.6 是把一台库拆成三台先看清楚你在装什么安装 Oracle 19c RAC on Linux 7.6本质上不是“装一个数据库”而是把单机上的数据库实例、集群软件、共享存储三件事拆开再组合成一个整体。很多人第一次装 RAC习惯性地先跑 Oracle 数据库安装向导结果在最后建库阶段发现集群资源根本没起来然后倒回去重装。这个方向真正费时间的不是点下一步而是装前的网络解析、共享磁盘规划、Grid Infrastructure简称 GI和它的 root.sh 脚本。这套东西装好了数据库软件安装反而是整个流程里最顺的一段。本文从我在多个模拟项目和某公司生产环境里反复跑过的流程出发把环境检查、存储规划、GI 安装、常见翻车点一路写到静默建库与验证照着做一遍基本能把从零到可连接的 RAC 跑通。2. 装前 30 分钟的系统检查解析、用户、内核与依赖包一次理顺RAC 安装失败的案例里有相当大比例是在 Grid 安装阶段才开始报环境问题。与其等到 gridSetup.sh 跑一半报 missing package 再回退不如先把前 30 分钟的系统检查做扎实。2.1 网络解析选型/etc/hosts 配四段地址心跳不能走公共网段RAC 节点需要四类 IP公共 IPPublic IP、私有 IPPrivate IP也叫心跳 IP、虚拟 IPVIP、SCAN IP。在只有两三个节点的规模下完全可以用 /etc/hosts 做解析不必上 DNS。我一般这样配# /etc/hosts —— 两个节点双网卡 # 公共网段 192.168.10.11 rac1 192.168.10.12 rac2 # 虚拟IP段与公共网段同一子网 192.168.10.21 rac1-vip 192.168.10.22 rac2-vip # 心跳网段单独一张物理网卡不能与公共网段混用 10.10.10.11 rac1-priv 10.10.10.12 rac2-priv # SCAN IP 三个官方推荐三个最少可用一个 192.168.10.31 rac-scan 192.168.10.32 rac-scan 192.168.10.33 rac-scan逻辑说明Public 和 VIP 必须同网段因为 VIP 漂移时依赖同一二层广播域Private 心跳网段要独立且不要增加路由否则跨网段心跳会引入延迟和丢包节点驱逐就容易在这时候发生。SCAN IP 我习惯配置三个并加到集群里客户端连接字符串只需写 rac-scan:1521不需要知道具体节点地址。参数说明上面是常见的内网地址规划实际请替换成你自己的网段。特别注意 hostname 不要带下划线、不要用大写字母要和/etc/hostname保持一致。两个节点的 hosts 文件要完全一样不然节点二跑 cvu 检查时解析出来的名称对不上直接报错。还有一个容易漏的点hostname -i 返回的地址必须是对应 public 网卡的那个 IP。如果服务器上有 docker0、virbr0 这类虚拟网卡hostname -i 可能会返回一个奇怪的地址后续集群注册会失败。检查命令如下hostname hostname -i cat /etc/hosts | grep $(hostname)只要 hostname -i 的输出不在 /etc/hosts 里当前主机名对应的行优先修复 hosts 文件或清掉多余网卡的 IP。2.2 用户、组、目录和内核参数三份配置一次改完RAC 需要两个操作系统用户grid 跑 GIoracle 跑数据库软件。它们可以共用主组 oinstall但 grid 必须额外加入 asmadmin、asmdba 组oracle 加入 dba、asmadmin、asmdba 组。我见过有人图省事把 grid 和 oracle 合并成一个用户虽然小规模测试能跑但后续打补丁、跑升级脚本时权限边界会很模糊不建议生产这么玩。创建命令groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 asmadmin groupadd -g 54324 asmdba useradd -u 54321 -g oinstall -G asmadmin,asmdba grid useradd -u 54322 -g oinstall -G dba,asmadmin,asmdba oracle mkdir -p /u01/app/grid /u01/app/oracle chown -R grid:oinstall /u01/app/grid chown -R oracle:oinstall /u01/app/oracle参数说明用户 UID 和组 GID 在多个节点之间必须一致因为集群文件系统层面的属主判断依赖数字 ID 而非用户名。如果两台机器在不共享 NIS/LDAP 的情况下 UID 不一致ASM 磁盘属主和 OCR 文件的权限校验会在第二个节点上出现各种权限类报错。内核参数里最关键的是信号量和文件句柄。19c 对 kernel.shmall 这类参数已经不再强制要求大页配置但 sem、file-max、端口范围三件套仍然必调cat /etc/sysctl.conf EOF fs.aio-max-nr 1048576 fs.file-max 6815744 kernel.shmall 1073741824 kernel.shmmax 4398046511104 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 EOF sysctl -p参数说明kernel.sem 四个值分别指信号量组最大数量、系统最大信号量数、每组最大信号量结构、系统最大信号量组数。Grid 安装向导会校验这些值如果有改动没生效runcluvfy 会直接标 FAIL。ip_local_port_range 的起始值从 9000 开始是为了给 Oracle 内部服务预留高端口空间。资源限制方面把下面内容写到 /etc/security/limits.d/99-oracle.confgrid soft nproc 2047 grid hard nproc 16384 grid soft nofile 1024 grid hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536依赖包列表在不同小版本上有差异在 Linux 7.6 环境我习惯装齐这一组避免来回补包yum install -y bc binutils compat-libcap1 compat-libstdc-33 \ elfutils-libelf elfutils-libelf-devel gcc gcc-c glibc glibc-devel \ kmod-lt glibc-static libaio libaio-devel libgcc libstdc libstdc-devel \ libxcb libX11 libXext libXi libXtst make net-tools nfs-utils numactl \ openmotif policycoreutils python python-configshell python-rtslib \ readline sysstat unixODBC unixODBC-devel lvm2 chrony注意这个列表里 kmod-lt 在部分源里不存在缺失时把它从安装命令里去掉即可不影响 cvu 检查通过。装完后用rpm -q逐一核对比等 GI 安装时报缺包再回头补要快得多。2.3 runcluvfy 前置检查别等 Grid 安装一半才报错Oracle 的安装介质里自带一个集群验证工具Grid 解压后在 grid 子目录下可以找到。它能把上面的解析、包、内核参数、用户权限一次性检查完cd /u01/grid_setup ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 \ -fixup -verbose逻辑说明这条命令检查两个节点是否满足安装 GI 的前置条件。-fixup参数会自动尝试修复可以自动改的项比如内核参数的动态修改不能自动处理的项会给出具体路径提示。如果某个检查是 WARNING 而不是 FAILED一般可以忽略继续安装FAILED 的项目必须解决后重跑。最常见的 FAILED 集中在缺包、coredump 目录不存在、公共网卡命名不一致这几类。把输出同步到多节点runcluvfy 支持-srcnode参数或者直接在两个节点上各跑一次结果对比着看。3. 共享存储与 ASMUDEV 固定盘符OCR 与数据盘分开规划RAC 与单机数据库最本质的差异在共享存储。所谓“共享”是指两个节点能同时看到同一批磁盘并且写入的可见性由集群层保证。这里最关键的是把 OCR/Voting 盘和数据盘规划清楚。3.1 磁盘分组OCR/Voting 至少三小块数据盘按冗余单独建组OCROracle Cluster Registry保存集群和数据库的配置信息Voting Disk 用于节点成员仲裁。19c 里 OCR 和 Voting Disk 可以放在同一个磁盘组里不再强制要求分开。我的习惯是给 OCR/Voting 三个 20GB 的 LUN用 Normal 冗余数据盘按业务量再单独规划一个或多个磁盘组组内也用 Normal 冗余。之所以选 Normal 而不是 External是因为 External 依赖存储层面做 RAID一旦存储那边配置错误OCR 盘损坏时集群配置没有第二份可读副本恢复成本极高。一张表看明白规划磁盘组用途建议LUN数量单盘容量冗余级别说明OCRVOTE320GBNormal三份副本存心跳和投票DATA4~8按业务容量Normal存放数据文件副本数2FRA2~4按备份策略Normal归档与闪回区其他注意事项磁盘要挂到两个节点且路径一致LUN 不要跨存储控制器做镜像链避免 I/O 路径重复计数导致 ASM 判断盘离线。生产环境里我习惯把共享盘全部挂到独立的存储交换机上和业务网络隔离这个边界很重要但不是必须项量力而行。3.2 UDEV 规则按 WWID 固定盘符规避系统重启后的 Z 变 Y多路径或者直连裸盘时两个节点的 /dev/sdX 名称很可能不一致。更麻烦的是同一节点重启后内核枚举顺序变化可能导致盘符漂移。解决办法是用 UDEV 按 WWID 固定盘符和权限不要依赖 sda/sdb 这类顺序名。先在两台机器上各自执行scsi_id拿到所有共享盘的世界唯一标识for disk in /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh; do echo $disk - $(/usr/lib/udev/scsi_id -g -u -d $disk) done参数说明这里的盘符只是临时枚举结果两个节点看到的具体字母可能不同。要保证的是同一块物理盘的 WWID 在两台机器上输出一致拿到后写进 UDEV 规则。然后写 /etc/udev/rules.d/99-oracle-asm.rules# 每一行对应用户 scsi_id 得到的一个 WWID KERNELsd*, SUBSYSTEMblock, PROGRAM/usr/lib/udev/scsi_id -g -u -d $devnode, RESULT3600508e000000000000008000000, OWNERgrid, GROUPasmadmin, MODE0660写完后刷新规则并验证udevadm control --reload-rules udevadm trigger --typesubsystems --actionchange udevadm trigger --typedevices --actionchange ls -l /dev/sdb*常见的血泪点在这里如果两个节点拿到的 WWID 数量不一致先检查多路径软件。安装了 multipath 的环境共享盘会变成 /dev/mapper/mpathX此时 UDEV 规则要匹配dm-*或直接在 multipath.conf 里用 alias 固定名称而不是用 sd* 规则。没有 multipath 的直连环境才用上面的 sd* 写法。注意不只是 ASM 的属主要固定GRID 用户访问这些盘的权限也要统一为 grid:asmadmin 0660。如果权限不对后续 asmca 初始化磁盘组时磁盘会显示为 candidate 但无法创建组报权限错误。3.3 asmca 初始化 ASM冗余级别与密码策略的口径磁盘分组规划好后用 grid 用户执行 asmca可以图形化或静默初始化 ASM 实例。我一般用图形界面做这步因为它能直观看到每块盘的发现状态# 以 grid 用户登录图形界面 export DISPLAY你的X显示器地址 asmcaasmca 里选择“磁盘组”先创建 OCRVOTE 组勾选三块盘冗余选 Normal组名和密码在这里设定。之后再创建 DATA 和 FRA。密码要记住后面建库和配 DG 都会用到。如果你在无图形界面的机器上也可以先手动启动 ASM 实例再创建磁盘组# 以 grid 用户执行 sqlplus / as sysasm CREATE DISKGROUP OCRVOTE NORMAL REDUNDANCY DISK /dev/sdb, /dev/sdc, /dev/sdd ATTRIBUTE compatible.asm19.0.0.0;逻辑说明compatible.asm属性定义了磁盘组的最低 ASM 兼容版本设成与软件版本一致即可。如果你不设默认值可能是 11.2某些 19c 新特性比如更大容量的 OCR用不了但这个不影响本次安装。每次我做到这步都想提醒一句话不要跳过磁盘头检查。在 asmca 的磁盘列表里如果某块盘的 Header Status 显示 FORMER 或 MEMBER说明它之前被别的 ASM 实例用过。直接复用会导致旧磁盘组信息与新集群冲突。遇到这种情况先用dd if/dev/zero of/dev/sdX bs1M count100清掉旧头信息再初始化。4. Grid Infrastructure 安装与 root.sh集群起不来多半卡在这一步GI 装好后集群管理进程负责维护 ASM 实例、监听器和后续数据库资源。这一章是整个 RAC 安装里最需要耐心的一步。4.1 用响应文件跑 gridSetup.sh常用参数与静默超时问题在解压后的 Grid 目录里以 grid 用户执行cd /u01/grid ./gridSetup.sh -silent -responseFile /home/grid/grid19c.rsp响应文件通常可以从response/GridSetup.rsp模板复制修改。核心参数是集群名称、SCAN 名称、节点列表和存储选型。我常用的几个参数如下oracle.install.responseFileVersion/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0 oracle.install.optionCRS_CONFIG ORACLE_BASE/u01/app/grid ORACLE_HOME/u01/app/grid/19.0.0/grid oracle.install.asm.OSDBAasmdba oracle.install.asm.OSOPERasmoper oracle.install.asm.OSASMasmadmin oracle.install.crs.config.scanTypeLOCAL_SCAN oracle.install.crs.config.SCANNamerac-scan oracle.install.crs.config.gpnp.enableGPNPtrue oracle.install.asm.SYSASMPasswordLetsDoIt_2024 oracle.install.asm.diskGroup.nameOCRVOTE oracle.install.asm.diskGroup.redundancyNORMAL oracle.install.asm.diskGroup.disks/dev/sdb,/dev/sdc,/dev/sdd逻辑说明oracle.install.asm.SYSASMPassword和对应的 SYS 密码一定要按 Oracle 的复杂度要求写避免脚本因为密码太简单直接退出。disks列表要和你 UDEV 固定好的盘路径一致。静默模式如果某一步校验不通过日志写在$ORACLE_HOME/cfgtoollogs/crsconfig/里第一反应看日志而不是猜参数。静默安装常见的超时点在 GNS 或 SCAN 解析校验。如果你没有 DNS 却选了 GNS 模式这里会卡很久。本地小规模环境选 LOCAL_SCAN 模式即可SCAN 解析落在 hosts 上。4.2 root.sh 执行顺序与重跑姿势别在两台机上并行甩锅GI 安装向导会在结束时提醒你在两个节点上分别以 root 执行 root.sh。这个顺序有讲究必须先在第一个节点上等 root.sh 完全跑完确认集群资源正常再执行第二个节点。# 节点1root 用户 sh /u01/app/grid/19.0.0/grid/root.sh # 完全执行完毕后节点2 sh /u01/app/grid/19.0.0/grid/root.sh原因在于 root.sh 会启动第一个节点的集群软件栈并通过网络把配置推送给第二个节点。如果两边并行两个节点同时尝试写 OCR轻则报资源冲突重则 OCR 文件损坏后面要做 restore 才能恢复。root.sh 跑完后输出会提示几行关键成功信息比如crsctl start crs完成。如果你看到CRS-2675等警告先别急着重跑。把/u01/app/grid/19.0.0/grid/cfgtoollogs/crsconfig/rootcrs_hostname.log这个文件拉出来看大部分问题是 VIP 网络未就绪或 hosts 解析不完整。如果某次 root.sh 确实失败需要重跑绝对不能直接再执行一次完整脚本。常见做法是先跑$ORACLE_HOME/crs/install/rootcrs.sh -deconfig -force针对已配置的节点做回退然后再执行 root.sh。随意重跑会把集群配置弄成半初始化状态那才是真的头疼。4.3 crsctl 自检从 css 到 ora.asm 逐一验证两个节点的 root.sh 都完成后用 grid 用户验证集群状态crsctl stat res -t crsctl check cluster -all crsctl check crs正常情况下你会看到类似的目标ONLINE状态覆盖 ora.cssd、ora.diskmon、ora.evmd 等集群基础资源。重点看两个节点的ora.asm是否 ONLINE它起不来后面建库无从谈起。如果crsctl check crs提示 CRS-4639 或类似错误说明集群资源没有完全拉起。先检查集群日志tail -200 $ORACLE_HOME/log/hostname/alerthostname.log tail -200 $ORACLE_HOME/log/hostname/crsd/crsd.log常见的是磁盘心跳超时。这时回到第 3 章检查 UDEV 盘符和权限另外确认两个节点的时间差在 30 秒以内时间偏差过大也会导致 CSS 层不停尝试重新同步现象就是各种资源在 ONLINE 和 OFFLINE 之间反复横跳。5. 常见问题避坑指南安装现场最容易翻车的 5 个场景以下几条是从多个安装项目里反复踩出来的问题按“现象 → 原因 → 解决”整理建议安装前通读一遍。5.1 现象hostname 解析不齐runcluvfy 第一阶段就 FAILED现象在节点 2 上跑 runcluvfy报Node applicability check failed或PRVG-1110等错误提示无法解析节点 1。原因两个节点的 hosts 文件内容不一致或者节点名没有写进节点的/etc/hostname。最常见的是节点 1 的 hosts 里写了 rac2节点 2 的 hosts 却没写 rac1。解决把 /etc/hosts 完全对齐尤其保留对应的 public、VIP、private 三段。同步后重新登录再跑一次 hostname 检查。顺手确认两节点的/etc/sysconfig/network文件里 HOSTNAME 字段一致虽然 Linux 7 用 hostnamectl 管理但有些脚本还会读这个文件。5.2 现象ASM 磁盘出现但权限为 root:rootasmca 里灰色不可选现象asmca 打开后能看到磁盘但 Header Status 一直显示 UNKNOWN且无法勾选。原因UDEV 规则没生效或者规则里 OWNER/GROUP 写错。很多时候是改完规则忘了udevadm trigger也有人在两个节点上分别写了不同的 UDEV 规则文件。解决先 ls -l /dev/sdX 看当前属主确认后再依次执行 udev 的三个刷新命令。如果属主还是错检查规则文件是否以 .rules 结尾并放在 /etc/udev/rules.d/ 下还有一个很隐蔽的坑规则行末尾不能有回车之外的不可见字符建议用cat -A查看确认。5.3 现象root.sh 跑到一半卡住日志停在 Configuring Cluster现象root.sh 长时间无输出看 rootcrs 日志最后一行停在某个 ocssd 或者 network 相关步骤。原因最常见是私有心跳网卡没选对。root.sh 会读取 GI 安装时记录的互联信息如果安装时选择了虚拟机默认的 NAT 网卡作为心跳而实际业务网卡是另一个二层通信失败导致集群注册一直等。解决这个阶段不要直接杀掉 root.sh。先确认两个节点的私网地址互相能 ping 通ping -c 3 rac2-priv ip addr show | grep 10.10.10如果能通等一段时间再观察如果不通需要先rootcrs.sh -deconfig -force回退再重跑安装向导这次在网络配置步骤明确选择正确网卡。经验是心跳网卡尽量选独立的物理网卡虚拟机环境用桥接网卡不要用 NAT。5.4 现象第二个节点执行 root.sh 后第一个节点的集群资源被驱逐现象节点 2 跑完 root.sh回头发现节点 1 上大量 ora.* 资源变成 OFFLINE或者节点 1 直接进入 reboot 状态。原因节点 1 和节点 2 的时间不同步节点 2 加入时 CSS 仲裁认为节点 1 心跳丢失触发 fence 动作。Linux 7.6 环境下很多默认配置没有开启 chrony或者开了但没有指向同一时间源。解决两个节点都配置 chrony指向同一台内网 NTP 服务器没有内网 NTP 就互相用对方做时间源也可以但稳定性一般。配置后检查chronyc sources -v确保状态为^*而不是^?。时间同步后再把被驱逐的节点用crsctl start crs拉起来。5.5 现象DBCA 建库时看不到 ASM 磁盘组现象数据库软件装完后DBCA 到达存储选择页面ASM 磁盘组列表为空无法继续。原因grid 用户的 ASM 实例起来了但 oracle 用户环境里的 ORACLE_HOME 指向数据库软件目录没有配置和 ASM 实例通信或者 oracle 用户没有 asmdba 组成员资格。解决确认 oracle 用户属于 asmdba 组必要时usermod -aG asmdba oracle。然后在 oracle 用户的环境变量里设置指向 ASM 的连接方式DBCA 建库时使用DATA作为数据文件位置它能解析的前提是 ASM 实例健康。用crsctl stat res -t看 ora.asm 状态再export ORACLE_HOME到正确路径重试。6. 数据库软件安装与 RAC 实例创建静默建库收口再用业务视角验证GI 和 ASM 稳定后数据库软件安装相对简单但值得注意的细节仍然不少。6.1 数据库软件安装的静默响应文件要点以 oracle 用户解压数据库软件执行cd /u01/db_home ./runInstaller -silent -responseFile /home/oracle/db19c.rsp响应文件核心参数oracle.install.optionINSTALL_DB_SWONLY UNIX_GROUP_NAMEoinstall INVENTORY_LOCATION/u01/app/oraInventory ORACLE_HOME/u01/app/oracle/product/19.0.0/dbhome ORACLE_BASE/u01/app/oracle oracle.install.db.InstallEditionEE oracle.install.db.OSDBA_GROUPdba oracle.install.db.OSOPER_GROUPdba oracle.install.db.OSBACKUPDBA_GROUPdba oracle.install.db.OSDGDBA_GROUPdba oracle.install.db.OSKMDBA_GROUPdba oracle.install.db.OSRACDBA_GROUPdba oracle.install.db.isRACOneInstallfalse oracle.install.db.rac.configurationGSD注意rac.configurationGSD表示集群数据库软件安装它会要求先存在可用的集群环境。软件安装完成后同样要在两个节点以 root 执行 root.sh这一步创建数据字典目录并设置权限。6.2 DBCA 静默建库的最小参数与校验软件装好后用静默方式建库dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbName racdb -sid racdb \ -sysPassword SysPass_2024 -systemPassword SysPass_2024 \ -datafileDestination DATA \ -recoveryAreaDestination FRA \ -storageType ASM \ -characterSet AL32UTF8 \ -totalMemory 4096 \ -databaseType MULTIPURPOSE \ -nodeinfo rac1,rac2参数说明-datafileDestination直接写 ASM 磁盘组名 DATADBCA 会自动在组里创建数据文件目录结构-nodeinfo必须列出两个节点缺了它建出来的是单实例库。-totalMemory是实例总内存根据机器实际内存调整。字符集在正式业务库上要提前定好库建完再改字符集限制多且容易踩编码坑。DBCA 跑完会输出一条Database creation complete。在这之后用业务视角验证srvctl status database -d racdb sqlplus sysrac-scan:1521/racdb as sysdba select name, db_unique_name from v$database; select inst_id, instance_name from gv$instance;第一条命令确认两个实例都 ONLINE第二条通过 SCAN 监听连接数据库第三条确认你连上的实例负载均衡是否正常。多执行几次第二条连接看看每次拿到的 inst_id 会不会在两个节点间切换。如果一直连到同一个节点说明 SCAN 监听配置或客户端负载均衡参数没生效需要检查 tnsnames.ora 的连接描述符里有没有(LOAD_BALANCEON)。6.3 装上之后要养成的两个验证习惯RAC 装完不代表万事大吉我还有两个固定动作一是在第二个节点上也执行一遍srvctl status database -d racdb确认两个节点的 srvctl 信息一致二是故意把某个节点的集群服务停掉观察实例会不会在剩余节点上继续提供服务再把服务拉回来。这个动作看起来像是给生产环境找麻烦但在测试环境提前暴露监听、VIP 漂移的问题比日后业务报告连接中断再排查要省心得多。RAC 的核心价值不是“两个节点同时干活”而是“一个节点挂了业务不感知”。验证这个目标比任何安装日志里的 ONLINE 都更有说服力。我最早带项目时迷信安装日志的全绿结果某次真实故障里数据库实例没能在存活节点上自动接管教训就是把验证当成安装的一部分别等故障来帮你验证。希望这篇手册能帮你少走一次弯路一路顺到建库成功。本文还有配套的精品资源点击获取