1. 首页 > Oracle教程 > 正文

数据库教程FGMT04‑生产环境Linux+Oracle19c RAC集群安装配置与项目实战

数据库教程FGMT04‑生产环境Linux+Oracle19c RAC集群安装配置与项目实战
## 前言
Oracle RAC(Real Application Clusters)真实应用集群,是Oracle企业级高可用核心技术,多台服务器实例同时访问同一套共享存储数据库,实现业务负载分担、节点故障自动故障转移,广泛应用于金融、运营商、政务核心交易系统。我是风哥,在大量TB级业务项目实施过程中,两节点RAC是生产最主流部署形态。RAC部署复杂度远高于单机ASM环境,需要处理网络规划、节点互信、共享存储、GI集群栈、OCR/Voting磁盘、多节点同步配置,任意一个环节配置错误,会直接导致集群无法启动、节点驱逐、业务中断。风哥 itpux-com

本文面向DBA、数据库运维工程师、主机实施人员,基于**单节点64G内存、8CPU**硬件规格,采用两节点RHEL7平台,全部本地路径替换为`/fgedudb`,全局数据库名`fgedudb`,两个实例分别为`fgedudb1`、`fgedudb2`,业务用户名`fgedu`。全文包含集群理论规划、操作系统预处理、共享存储UDEV配置、Grid Infrastructure集群软件静默部署、ASM磁盘组创建、RAC数据库软件安装、dbca静默创建RAC数据库、负载均衡、故障切换测试、集群日常运维巡检全套内容,提供大量可直接复用Shell与SQL命令,为后续ADG容灾、大型数据库迁移打下基础。

**内容大纲:**
1. Oracle19c两节点RAC集群架构、网络、存储规划(64G/8C硬件基准)
2. RAC核心组件原理:GI、CRS、OCR、Voting磁盘、SCAN、VIP、ASM集群、Cache Fusion
3. 操作系统层:内核参数、资源限制、SSH互信、NTP时间同步理论(适配64G内存)
4. RAC部署实施顺序:操作系统预处理→共享存储配置→GI集群软件→ASM磁盘组→RAC数据库软件→创建RAC数据库
5. 完整实战操作,包含两节点全部Shell、静默响应文件、SQL操作命令
6. RAC集群后期配置:归档开启、闪回、负载均衡、故障切换验证、常用srvctl/crsctl运维命令
7. 全文总结,RAC生产实施风险提示与最佳实践

## 一、Linux下Oracle19c RAC集群部署基础理论
### 1.1 RAC集群架构核心概念
RAC允许多个数据库实例运行在不同物理节点,所有实例读写同一套共享ASM存储。各节点实例之间通过私有网络实现**Cache Fusion缓存融合**,节点之间传递数据块镜像,保障多实例内存缓存数据一致性。风哥教程 itpux_com

整套集群依赖Grid Infrastructure GI集群栈,GI包含CRS集群就绪服务、OHASD、CSS投票服务。
– **OCR(Oracle Cluster Registry)**:集群注册注册表,保存集群节点、VIP、SCAN、数据库资源元数据,存放在ASM磁盘组;
– **Voting Disk投票磁盘**:CSS集群同步服务用于节点心跳投票,判定节点存活,发生脑裂时完成节点驱逐;
– **VIP虚拟IP**:节点虚拟漂移IP,当节点故障,VIP自动漂移至存活节点,屏蔽故障节点;
– **SCAN(Single Client Access Name)**:单客户端访问名称,客户端统一使用SCAN访问集群,屏蔽节点变化,实现负载均衡;
– **Public公网网卡**:业务访问物理网卡;Private私网网卡:集群内部Cache Fusion、CSS心跳专用网卡,生产建议双网卡绑定做冗余。

> 关键约束:**所有RAC节点操作系统时间必须严格同步,必须配置NTP;集群所有主机名、VIP、SCAN必须完成域名解析,两节点主机名、IP配置完全一致**。

### 1.2 两节点标准化规划(每个节点64G内存,8CPU)
#### 网络规划
|项目|节点1(rac‑node01)|节点2(rac‑node02)|
|—|—|—|
|Public IP|10.20.30.101|10.20.30.102|
|VIP虚拟IP|10.20.30.103|10.20.30.104|
|Private私网IP|192.168.10.101|192.168.10.102|
|SCAN名称|rac‑scan.fgedu.local|rac‑scan.fgedu.local|
|SCAN‑IP|10.20.30.105、10.20.30.106、10.20.30.107|

#### 存储规划(全部共享SAN裸磁盘,两节点均可识别)
|共享磁盘|用途|
|—|—|
|/dev/sdb|OCR+Voting磁盘组(CRS磁盘组,EXTERNAL冗余)|
|/dev/sdc|DATA磁盘组:数据文件、控制文件、redo日志|
|/dev/sdd|FRA磁盘组:归档日志、快速恢复区、备份文件|

本地软件目录规划(两节点完全一致,全部替换原/u01路径为`/fgedudb`)
|目录路径|用途说明|
|—|—|
|`/fgedudb/app`|Oracle Base根目录|
|`/fgedudb/app/grid`|Grid Infrastructure GI软件家目录|
|`/fgedudb/app/product/19.0.0/dbhome_1`|RAC数据库软件家目录|
|`/fgedudb/app/oraInventory`|Oracle软件清单目录,两节点路径保持一致|
|`/fgedudb/soft`|GI介质、数据库介质、RU补丁存放目录|

数据库业务标准化信息(单节点64G内存,8CPU)
– 集群数据库唯一名称:`fgedudb`
– 实例名:节点1 `fgedudb1`,节点2 `fgedudb2`
– ASM实例:节点1 `+ASM1`,节点2 `+ASM2`
– 业务用户名:`fgedu`
– 字符集:`AL32UTF8`,国家字符集`AL16UTF16`
– 监听端口:1521
– memory_target每个实例设置48G,预留16G给操作系统与ASM实例;processes=2000,parallel_max_servers=16适配8CPU;生产强制开启归档模式,归档存放`+FRA`。

### 1.3 用户组权限体系理论
RAC环境用户组相比单机ASM,新增`racdba`组。
1. `asmadmin`:ASM管理员组,grid用户主组;
2. `asmdba`:访问ASM磁盘组权限;
3. `asmoper`:ASM启停权限;
4. `dba`:数据库DBA权限;
5. `racdba`:RAC集群数据库管理附属组。

用户规划两节点必须完全一致:
– grid用户:GI所有者,主组oinstall、asmadmin;附属组asmdba、asmoper、dba、racdba;
– oracle用户:RAC数据库软件所有者,主组oinstall;附属组dba、oper、asmdba、racdba。

### 1.4 操作系统关键前置理论
1. **SSH互信**:grid、oracle两个操作系统用户,两节点之间必须配置ssh免密互信,GI安装远程拷贝需要依赖ssh;
2. **NTP时间同步**:RAC集群对时间偏差高度敏感,节点时间差过大,会出现节点驱逐故障;禁止使用CTSS替代NTP生产部署;
3. **透明大页必须关闭**:透明大页会造成RAC内存抖动、节点重启驱逐,两节点全部关闭;
4. **内核参数**:基于单节点64G内存调优,两节点sysctl.conf参数完全相同;
5. **UDEV共享磁盘规则**:SAN共享磁盘使用UUID识别,两节点udev规则完全相同,磁盘属主grid:asmadmin,权限0660。风哥数据库 itpux-com

> 实施顺序硬性要求:操作系统预处理(**两节点全部操作**)→共享存储UDEV配置→GI集群软件(只在节点1执行安装,自动分发到节点2)→创建ASM磁盘组→安装RAC数据库软件→dbca创建RAC集群数据库。顺序颠倒会直接部署失败。

### 1.5 RAC数据库创建与集群资源管理理论
RAC数据库文件全部放置ASM共享磁盘组,spfile存放在ASM磁盘组。集群所有资源(ASM、VIP、SCAN、监听、数据库实例)由CRS集群统一托管,日常启停优先使用`srvctl`、`crsctl`命令,不建议直接sqlplus启停实例。RAC支持服务管理,可以配置服务绑定实例,用于业务读写分离、负载均衡;同时支持节点故障时服务自动故障切换至存活节点。

## 二、生产环境完整实战操作
> 说明:操作系统RHEL7,每个节点硬件规格64GB内存、8核CPU;两节点大部分操作系统配置**两个节点都要执行**;本地路径全部替换为`/fgedudb`;root执行操作系统配置,grid执行GI相关操作,oracle执行RAC数据库软件操作。

### 2.1 操作系统预处理(节点1、节点2全部执行)
#### 2.1.1 主机名与/etc/hosts配置
节点1设置主机名
“`bash
hostnamectl set-hostname rac‑node01
“`
节点2设置主机名
“`bash
hostnamectl set-hostname rac‑node02
“`
两个节点写入完全相同/etc/hosts
“`bash
cat >> /etc/hosts << EOF
10.20.30.101 rac‑node01
10.20.30.102 rac‑node02
10.20.30.103 rac‑node01‑vip
10.20.30.104 rac‑node02‑vip
192.168.10.101 rac‑node01‑priv
192.168.10.102 rac‑node02‑priv
10.20.30.105 rac‑scan.fgedu.local
10.20.30.106 rac‑scan.fgedu.local
10.20.30.107 rac‑scan.fgedu.local
EOF
“`

#### 2.1.2 防火墙、SELinux、透明大页关闭(两节点)
“`bash
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i ‘s/^SELINUX=enforcing/SELINUX=permissive/’ /etc/selinux/config

#关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’ >> /etc/rc.local
echo ‘echo never > /sys/kernel/mm/transparent_hugepage/defrag’ >> /etc/rc.local
chmod +x /etc/rc.d/rc.local
“`

#### 2.1.3 NTP时间同步配置(两节点)
“`bash
yum install -y chrony
systemctl enable chronyd
systemctl start chronyd
chronyc sources
“`

#### 2.1.4 安装操作系统依赖包(两节点)
“`bash
yum install -y binutils compat‑libcap‑devel gcc gcc‑c++ glibc glibc‑devel ksh libaio libaio‑devel libgcc libstdc++ libstdc++‑devel libXi libXtst make sysstat unzip libnsl compat-libstdc++-33 chrony
“`

#### 2.1.5 创建用户组与操作系统用户(两节点)
“`bash
groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin
groupadd asmdba
groupadd asmoper
groupadd racdba

useradd -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba grid
useradd -g oinstall -G dba,oper,asmdba,racdba oracle

echo “Grid@123” | passwd –stdin grid
echo “Oracle@123″ | passwd –stdin oracle
“`

#### 2.1.6 创建目录并且授权属主(两节点)
“`bash
mkdir -p /fgedudb/app
mkdir -p /fgedudb/app/grid
mkdir -p /fgedudb/app/product/19.0.0/dbhome_1
mkdir -p /fgedudb/app/oraInventory
mkdir -p /fgedudb/soft

chown -R grid:oinstall /fgedudb/app/grid
chown -R oracle:oinstall /fgedudb/app/product/19.0.0/dbhome_1
chown -R grid:oinstall /fgedudb/app/oraInventory
chown -R root:root /fgedudb/soft
chmod -R 775 /fgedudb
“`

#### 2.1.7 内核参数/etc/sysctl.conf(两节点,适配单节点64G内存)
“`ini
kernel.shmmax=51539607552
kernel.shmall=12582912
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
kernel.numa_balancing=0
vm.swappiness=10
vm.dirty_background_ratio=5
vm.dirty_ratio=15
“`
生效:
“`bash
sysctl -p
“`

#### 2.1.8 用户资源限制/etc/security/limits.conf(两节点)
“`ini
grid   soft    nofile  10240
grid   hard    nofile  65535
grid   soft    nproc   8192
grid   hard    nproc   16384
grid   soft    stack   10240
grid   hard    stack   32768

oracle soft    nofile  10240
oracle hard    nofile  65535
oracle soft    nproc   8192
oracle hard    nproc   16384
oracle soft    stack   10240
oracle hard    stack   32768
“`

#### 2.1.9 UDEV共享磁盘规则配置(两节点完全相同)
共享磁盘:`/dev/sdb`(CRS),`/dev/sdc`(DATA),`/dev/sdd`(FRA),获取磁盘UUID,编写`/etc/udev/rules.d/99-oracle-asm.rules`
“`bash
udevadm info –query=property –name=/dev/sdb
udevadm info –query=property –name=/dev/sdc
udevadm info –query=property –name=/dev/sdd
“`
udev规则模板,替换实际ID_SERIAL:
“`ini
ACTION==”add”, SUBSYSTEM==”block”, ENV{DEVTYPE}==”disk”, ENV{ID_SERIAL}==”SATA_XXXX”, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″
ACTION==”add”, SUBSYSTEM==”block”, ENV{DEVTYPE}==”disk”, ENV{ID_SERIAL}==”SATA_YYYY”, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″
ACTION==”add”, SUBSYSTEM==”block”, ENV{DEVTYPE}==”disk”, ENV{ID_SERIAL}==”SATA_ZZZZ”, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″
“`
重载udev,两节点都执行:
“`bash
udevadm control –reload-rules
udevadm trigger
ls -l /dev/sdb /dev/sdc /dev/sdd
“`

#### 2.1.10 grid、oracle用户SSH互信配置(节点1执行,生成密钥分发到节点1、节点2)
“`bash
su – grid
ssh-keygen -t rsa
ssh-copy-id rac‑node01
ssh-copy-id rac‑node02

su – oracle
ssh-keygen -t rsa
ssh-copy-id rac‑node01
ssh-copy-id rac‑node02
“`

### 2.2 grid用户环境变量(两节点配置)
“`bash
su – grid
vi ~/.bash_profile
“`
“`bash
export ORACLE_BASE=/fgedudb/app
export ORACLE_HOME=/fgedudb/app/grid
export ORACLE_SID=+ASM1
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
“`
“`bash
source ~/.bash_profile
“`

### 2.3 GI介质解压,CVUQDISK包安装(节点1执行)
GI介质`LINUX.X64_193000_grid_home.zip`上传至`/fgedudb/soft`
“`bash
su – grid
cd /fgedudb/soft
unzip LINUX.X64_193000_grid_home.zip -d $ORACLE_HOME
chmod -R 755 $ORACLE_HOME

#安装cvuqdisk校验rpm包,分发到节点2
su – root
rpm -ivh /fgedudb/app/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
scp /fgedudb/app/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm rac‑node02:/tmp
ssh rac‑node02 “rpm -ivh /tmp/cvuqdisk-1.0.10-1.rpm”
“`

### 2.4 GI集群软件静默安装(仅节点1执行)
复制响应文件模板
“`bash
su – grid
cp $ORACLE_HOME/install/response/grid_install.rsp ~/grid_install.rsp
“`
grid_install.rsp关键参数:
“`ini
oracle.install.responseFileVersion=/fgedudb/app/grid/install/rspfmt_grid_install_response_schema_v19.0.0
oracle.install.option=CRS_CONFIG
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/fgedudb/app/oraInventory
ORACLE_BASE=/fgedudb/app
ORACLE_HOME=/fgedudb/app/grid
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
oracle.install.crs.config.ClusterNodes=rac‑node01,rac‑node02
oracle.install.crs.config.NodeVirtualIPS=rac‑node01‑vip/10.20.30.103,rac‑node02‑vip/10.20.30.104
oracle.install.crs.config.PrivateInterfaces=ens36:192.168.10.101,ens36:192.168.10.102
oracle.install.crs.config.ScanName=rac‑scan.fgedu.local
oracle.install.crs.config.ScanPort=1521
oracle.install.asm.SYSASMPassword=Asm@Fgedu123
oracle.install.asm.diskGroup.name=CRS
oracle.install.asm.diskGroup.redundancy=EXTERNAL
oracle.install.asm.diskGroup.AUSize=4
oracle.install.asm.diskGroup.disks=/dev/sdb
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/sd*
oracle.install.asm.monitorPassword=AsmMon@123
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
“`

执行静默GI安装:
“`bash
$ORACLE_HOME/gridSetup.sh -silent -responseFile ~/grid_install.rsp
“`
安装结束,root用户在节点1、节点2分别执行脚本:
“`bash
#节点1 root
/fgedudb/app/oraInventory/orainstRoot.sh
/fgedudb/app/grid/root.sh

#节点2 root
ssh rac‑node02 “/fgedudb/app/oraInventory/orainstRoot.sh”
ssh rac‑node02 “/fgedudb/app/grid/root.sh”
“`

GI部署完成后验证集群状态:
“`bash
su – grid
crsctl check cluster -all
crsctl stat res -t
olsnodes
“`

### 2.5 ASMCA静默创建DATA、FRA共享磁盘组(节点1 grid用户)
“`bash
asmca -silent -createDiskGroup \
‑diskGroupName DATA \
‑diskList /dev/sdc \
‑redundancy EXTERNAL \
‑au_size 4 \
‑compatible.asm 19.0.0.0.0 \
‑compatible.rdbms 19.0.0.0.0

asmca -silent -createDiskGroup \
‑diskGroupName FRA \
‑diskList /dev/sdd \
‑redundancy EXTERNAL \
‑au_size 4 \
‑compatible.asm 19.0.0.0.0 \
‑compatible.rdbms 19.0.0.0.0
“`
查看两节点ASM磁盘组挂载状态
“`bash
sqlplus / as sysasm
SELECT name,state,type,total_mb,free_mb FROM v$asm_diskgroup;
“`

### 2.6 RAC数据库软件静默安装(仅节点1 oracle用户,仅安装软件,不建库)
节点1 oracle用户配置`.bash_profile`
“`bash
su – oracle
vi ~/.bash_profile
“`
“`bash
export ORACLE_BASE=/fgedudb/app
export ORACLE_HOME=/fgedudb/app/product/19.0.0/dbhome_1
export ORACLE_SID=fgedudb1
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
“`
“`bash
source ~/.bash_profile
“`
数据库介质解压:
“`bash
cd /fgedudb/soft
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
chmod -R 755 $ORACLE_HOME
“`
复制响应文件:
“`bash
cp $ORACLE_HOME/install/response/db_install.rsp ~/db_install.rsp
“`
db_install.rsp关键RAC参数:
“`ini
oracle.install.responseFileVersion=/fgedudb/app/product/19.0.0/dbhome_1/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/fgedudb/app/oraInventory
ORACLE_HOME=/fgedudb/app/product/19.0.0/dbhome_1
ORACLE_BASE=/fgedudb/app
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.CLUSTER_NODES=rac‑node01,rac‑node02
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
“`

执行RAC数据库软件静默安装,软件自动分发到节点2:
“`bash
$ORACLE_HOME/runInstaller -silent -responseFile ~/db_install.rsp
“`
安装结束,root在两个节点执行root.sh脚本
“`bash
su – root
/fgedudb/app/product/19.0.0/dbhome_1/root.sh
ssh rac‑node02 “/fgedudb/app/product/19.0.0/dbhome_1/root.sh”
“`

### 2.7 dbca静默创建两节点RAC数据库fgedudb(节点1 oracle执行,适配单节点64G内存)
“`bash
dbca -silent -createDatabase \
‑templateName General_Purpose.dbc \
‑gdbName fgedudb \
‑sid fgedudb1 \
‑sid fgedudb2 \
‑characterSet AL32UTF8 \
‑nationalCharacterSet AL16UTF16 \
‑sysPassword Sys@Fgedu123 \
‑systemPassword Sys@Fgedu123 \
‑createAsContainerDatabase false \
‑storageType ASM \
‑datafileDestination +DATA \
‑recoveryAreaDestination +FRA \
‑redoLogFileSize 2048 \
‑initParams audit_trail=db,memory_target=48G,db_recovery_file_dest_size=30G,db_recovery_file_dest=+FRA,processes=2000,open_cursors=300,parallel_max_servers=16 \
‑enableArchive true \
‑archiveLogDest +FRA \
‑nodelist rac‑node01,rac‑node02
“`

### 2.8 RAC数据库基础校验、创建业务用户fgedu
登录数据库:
“`bash
sqlplus / as sysdba
“`
“`sql
SELECT instance_number,instance_name,host_name,status FROM gv$instance;
SELECT name,dbid,log_mode,open_mode FROM v$database;
SELECT name FROM v$controlfile;
SELECT file_name,tablespace_name FROM dba_data_files;
SHOW PARAMETER memory_target;

CREATE USER fgedu IDENTIFIED BY Fgedu@123 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
GRANT connect,resource,create view TO fgedu;
CONNECT fgedu/Fgedu@123;
SELECT * FROM dual;
“`

### 2.9 RAC集群资源查看,负载均衡、故障切换测试
查看全部集群资源状态(grid用户)
“`bash
su – grid
crsctl stat res -t
srvctl status database -db fgedudb
srvctl config database -db fgedudb
“`
数据库启停srvctl命令:
“`bash
#启动整个RAC数据库
srvctl start database -db fgedudb
#停止整个RAC数据库
srvctl stop database -db fgedudb
#单独停止节点1实例
srvctl stop instance -db fgedudb -i fgedudb1
#单独启动节点1实例
srvctl start instance -db fgedudb -i fgedudb1
#启停集群监听
srvctl stop listener
srvctl start listener
“`

故障切换测试模拟:停止节点1实例,观察业务连接自动切换至节点2实例。
“`bash
srvctl stop instance -db fgedudb -i fgedudb1
sqlplus fgedu/Fgedu@123@rac‑scan.fgedu.local:1521/fgedudb
SELECT instance_name FROM v$instance;
srvctl start instance -db fgedudb -i fgedudb1
“`

### 2.10 RAC综合巡检脚本
“`bash
#操作系统层面两节点信息
olsnodes
crsctl check cluster -all
crsctl stat res -t

#ASM层面
su – grid
sqlplus / as sysasm <<EOF
SELECT name,state,type,total_mb,free_mb FROM v$asm_diskgroup;
SELECT name,path,state FROM v$asm_disk;
EOF

#RAC数据库多实例信息
su – oracle
sqlplus / as sysdba <<EOF
SELECT instance_number,instance_name,host_name,status FROM gv\$instance;
SELECT name,log_mode FROM v\$database;
SHOW PARAMETER memory_target;
SHOW PARAMETER processes;
SELECT file_name FROM dba_data_files;
EOF

lsnrctl status
tnsping rac‑scan.fgedu.local
“`

## 三、总结
两节点Oracle19c RAC集群部署,复杂度远高于单机ASM,最大难点在于**双节点配置一致性、网络规划、共享存储UDEV权限、GI集群栈部署、NTP时间同步**。我是风哥,在多年项目实施中,遇到RAC最常见故障:两节点hosts解析不一致、私网网卡配置错误、共享磁盘权限异常、节点时间不同步导致节点驱逐,这些问题全部来自操作系统预处理阶段疏漏。风哥数据库 itpux-com

本文遵循OFA规范,全部本地路径替换为`/fgedudb`,整套内核参数、数据库内存参数基于**单节点64G内存、8CPU**硬件调优;集群数据库名`fgedudb`,两个实例`fgedudb1/fgedudb2`,业务用户`fgedu`;全部采用静默部署,适合无图形机房生产环境。RAC集群资源全部交由GI的CRS托管,运维人员必须熟练掌握`crsctl`、`srvctl`集群管理工具,不能沿用单机数据库sqlplus直接启停习惯。

部署完成后必须完成全套巡检,确认CRS全部资源ONLINE、两节点ASM磁盘组全部MOUNT、数据库开启归档、SCAN/VIP正常工作,并且完成故障切换功能验证。正式上线前务必完整执行服务器重启演练,确认操作系统重启后集群资源可以按照依赖顺序自动拉起。RAC只是高可用底座,后续还需要配套备份策略、ADG容灾架构、监控告警、RU补丁升级运维流程。DBA不能机械复制脚本,必须理解GI、CSS、OCR/Voting、Cache Fusion底层原理,才能够处理集群部署与运行阶段各类节点驱逐、资源OFFLINE疑难故障。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息