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. 最佳实践
- 测试:演练
- 文档:配置
- 验证:每步
- 备份:安装前
- 补丁:最新
- 网络:冗余
- 存储:冗余
- 监控:状态
- 自动化:脚本
- 演练:故障
14. 参考资料
[1] Oracle Grid Infrastructure Installation Guide 19c for Linux https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/