Oracle RAC 部署实战详解

Oracle RAC 部署实战详解

适用版本:Oracle Database 19c 文档版本:v1.0 / 2026-07


1. 概述

RAC 部署实战[1]:

详细见:Oracle RAC 19c 部署详解Oracle Grid Infrastructure 详解


2. 准备

2.1 硬件

- 双节点
- 共享存储
- 网络
- 内存/CPU

2.2 OS

- Oracle Linux 8
- 内核参数
- 用户/组
- 依赖包

2.3 网络

- Public
- Private
- VIP
- SCAN

3. OS 配置

3.1 用户/组

groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 asmadmin
groupadd -g 54325 asmdba
groupadd -g 54326 asmoper

useradd -u 54321 -g oinstall -G dba,asmadmin,asmdba,asmoper grid
useradd -u 54322 -g oinstall -G dba,oper,asmdba oracle

3.2 内核参数

# /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = ...
kernel.shmall = ...
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

3.3 限制

# /etc/security/limits.conf
grid  soft  nofile  1024
grid  hard  nofile  65536
grid  soft  nproc   2047
grid  hard  nproc   16384
grid  soft  stack   10240
grid  hard  stack   32768

oracle  soft  nofile  1024
oracle  hard  nofile  65536
oracle  soft  nproc   2047
oracle  hard  nproc   16384
oracle  soft  stack   10240
oracle  hard  stack   32768

4. 网络

4.1 /etc/hosts

# Public
192.168.1.10 node1
192.168.1.20 node2

# Private
10.10.1.10 node1-priv
10.10.1.20 node2-priv

# VIP
192.168.1.11 node1-vip
192.168.1.21 node2-vip

# SCAN
192.168.1.100 scan
192.168.1.101 scan
192.168.1.102 scan

4.2 SSH

# 节点间互信
ssh-keygen
ssh-copy-id node2

4.3 DNS

- SCAN 3 个 IP
- DNS 配置
- 或 /etc/hosts

5. 共享存储

5.1 LUN

- 多 LUN
- 多路径
- 共享

5.2 ASMFD

# 标记磁盘
$GI_HOME/bin/asmcmd afd_label DATA /dev/sdb
$GI_HOME/bin/asmcmd afd_label FRA /dev/sdc
$GI_HOME/bin/asmcmd afd_label OCR /dev/sdd

5.3 UDEV

# /etc/udev/rules.d/99-oracle.rules
KERNEL=="sdb", OWNER="grid", GROUP="asmadmin", MODE="0660"

6. GI 安装

6.1 解压

unzip LINUX.X64_193000_grid_home.zip -d $GI_HOME

6.2 安装

$GI_HOME/gridSetup.sh

6.3 root 脚本

# 节点 1
$GI_HOME/root.sh

# 节点 2
$GI_HOME/root.sh

7. ASM 配置

7.1 Disk Group

asmca
# 创建 DATA
# 创建 FRA

7.2 OCR/Voting

- OCR:+DATA
- Voting:+DATA
- Normal Redundancy

8. RDBMS 安装

8.1 解压

unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

8.2 安装

$ORACLE_HOME/runInstaller
# RAC 安装
# 所有节点

8.3 root 脚本

$ORACLE_HOME/root.sh

9. 数据库创建

9.1 DBCA

dbca
# 创建数据库
# RAC
# 所有节点

9.2 配置

- 数据库名
- 实例名
- 存储:ASM
- 内存
- 字符集

9.3 验证

srvctl status database -d prod
srvctl status instance -d prod -i prod1
srvctl status instance -d prod -i prod2

10. 服务

10.1 创建

srvctl add service -d prod -s oltp_svc \
  -preferred prod1,prod2 \
  -available prod3

10.2 启动

srvctl start service -d prod -s oltp_svc

11. 验证

11.1 集群

crsctl stat res -t
olsnodes -n -s -t

11.2 ASM

srvctl status asm
asmcmd lsdg

11.3 数据库

SELECT inst_id, instance_name, status FROM gv$instance;

12. 常见问题

12.1 root.sh 失败

- 日志
- 修复
- 重试

12.2 ASM

- 磁盘
- 权限
- 检查

12.3 网络

- SSH
- DNS
- 检查

13. 最佳实践

  1. 测试:演练
  2. 文档:配置
  3. 验证:每步
  4. 备份:安装前
  5. 补丁:最新
  6. 网络:冗余
  7. 存储:冗余
  8. 监控:状态
  9. 自动化:脚本
  10. 演练:故障

14. 参考资料

[1] Oracle Grid Infrastructure Installation Guide 19c for Linux https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/