ITPub博客

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

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

原创 Oracle 作者:mfkqwyc86 时间:2026-09-09 19:50:06 0 删除 编辑

数据库教程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疑难故障。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9664900/viewspace-3182000/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
风哥Oracle,MySQL,PostgreSQL,Linux,大数据,国产数据库,中间件等教程

注册时间:2010-10-26

  • 博文量
    68
  • 访问量
    406001