Oracle Grid Infrastructure 安装

Oracle Grid Infrastructure 安装

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


1. 概述

Grid Infrastructure (GI) 是 RAC 和 ASM 的基础[1]:

组件

  • Oracle Clusterware
  • Automatic Storage Management (ASM)
  • ASM Filter Driver (ASMFD)

2. 安装前准备

2.1 系统配置

# OL 8
dnf install -y oracle-database-preinstall-19c

详细见:Oracle Linux 安装与配置

2.2 用户与组

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

useradd -u 54321 -g oinstall -G dba,oper,asmadmin,asmdba,asmoper,racdba oracle
useradd -u 54331 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
passwd oracle
passwd grid

2.3 目录

mkdir -p ******
mkdir -p ******
mkdir -p ******
mkdir -p ******

chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/19.0.0/grid
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle/product/19.0.0/dbhome_1
chmod -R 775 /u01

2.4 环境变量

# grid 用户
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/19.0.0/grid
ORACLE_SID=+ASM1
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

3. 网络配置

3.1 主机名

# /etc/hosts
192.168.1.101 rac1.example.com rac1
192.168.1.102 rac2.example.com rac2

192.168.10.101 rac1-priv.example.com rac1-priv
192.168.10.102 rac2-priv.example.com rac2-priv

192.168.1.111 rac1-vip.example.com rac1-vip
192.168.1.112 rac2-vip.example.com rac2-vip

192.168.1.120 rac-scan.example.com rac-scan
192.168.1.121 rac-scan.example.com rac-scan
192.168.1.122 rac-scan.example.com rac-scan

3.2 SSH 互信

# 节点 1
su - grid
ssh-keygen -t rsa
ssh-copy-id rac2

# 节点 2
su - grid
ssh-keygen -t rsa
ssh-copy-id rac1

# 测试
ssh rac2 date

4. 共享存储

4.1 ASM 磁盘

# 1. 识别磁盘
lsblk
fdisk -l

# 2. 创建分区(每磁盘)
fdisk /dev/sdb

# 3. ASMFD 或 UDEV
# ASMFD
asmcmd afd_label DATA1 /dev/sdb1

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

4.2 验证

# ASMFD
asmcmd afd_lsdsk

# UDEV
udevadm test /sys/block/sdb/sdb1
ls -l /dev/sdb1

详细见:Oracle ASM 详解


5. 集群验证

# CVU
su - grid
cd /u01/app/19.0.0/grid
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose

6. 静默安装

6.1 响应文件

# grid_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=CRS_CONFIG
ORACLE_BASE=/u01/app/grid
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
oracle.install.crs.config.gpnp.scanName=rac-scan.example.com
oracle.install.crs.config.gpnp.scanPort=1521
oracle.install.crs.config.ClusterConfiguration=STANDALONE
oracle.install.crs.config.clusterName=rac-cluster
oracle.install.crs.config.clusterNodes=rac1:rac1-vip,rac2:rac2-vip
oracle.install.crs.config.networkInterfaceList=ens33:192.168.1.0:1,ens34:192.168.10.0:2
oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE
oracle.install.crs.config.useIPMI=false
oracle.install.crs.config.ignoreDownNodes=false
oracle.install.config.managementOption=NONE
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.asm.SYSASMPassword=******
oracle.install.asm.diskGroup.name=DATA
oracle.install.asm.diskGroup.redundancy=EXTERNAL
oracle.install.asm.diskGroup.AUSize=4
oracle.install.asm.diskGroup.disks=/dev/asm-disk1,/dev/asm-disk2
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm*
oracle.install.asm.monitorPassword=******

6.2 安装

su - grid
cd /u01/app/19.0.0/grid
./gridSetup.sh -silent -responseFile /u01/app/19.0.0/grid/grid_install.rsp

6.3 root 脚本

# 节点 1
/u01/app/oraInventory/orainstRoot.sh
/u01/app/19.0.0/grid/root.sh

# 节点 2
/u01/app/oraInventory/orainstRoot.sh
/u01/app/19.0.0/grid/root.sh

7. 验证

7.1 集群状态

crsctl stat res -t
crsctl check crs
crsctl check cluster -all

7.2 ASM

su - grid
sqlplus / as sysasm
SQL> SELECT group_number, name, state FROM v$asm_diskgroup;

7.3 节点

olsnodes -n
olsnodes -s -t

8. 创建 RAC 数据库

8.1 DBCA 静默

dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbName orcl \
  -sid orcl \
  -databaseConfigType RAC \
  -nodelist rac1,rac2 \
  -sysPassword Oracle123 \
  -systemPassword Oracle123 \
  -storageType ASM \
  -diskGroupName +DATA \
  -recoveryGroupName +FRA \
  -characterSet AL32UTF8 \
  -createAsContainerDatabase true \
  -numberOfPDBs 1 \
  -pdbName orclpdb \
  -pdbAdminPassword Oracle123 \
  -totalMemory 4096

9. 管理

9.1 启停集群

# 停止
crsctl stop cluster -all
crsctl stop has

# 启动
crsctl start has
crsctl start cluster -all

9.2 ASM 管理

sqlplus / as sysasm
SQL> ALTER DISKGROUP DATA MOUNT;
SQL> ALTER DISKGROUP DATA DISMOUNT;

详细见:Oracle ASM 详解


10. 常见坑与排错

10.1 安装失败

# 1. CVU 检查
./runcluvfy.sh stage -pre crsinst -n rac1,rac2

# 2. 日志
$ORACLE_BASE/cfgtoollogs/

10.2 ASM 磁盘不可见

# 1. 检查权限
ls -l /dev/asm*

# 2. ASMFD
asmcmd afd_lsdsk

# 3. UDEV
udevadm info /dev/sdb1

10.3 节点加入失败

# 1. SSH 互信
# 2. 时间同步
# 3. 网络

11. 最佳实践

  1. CVU 验证:安装前
  2. SSH 互信:节点
  3. 共享存储:ASM
  4. ASMFD:管理
  5. 静默安装:自动化
  6. root 脚本顺序:节点 1 先
  7. 日志检查:问题
  8. 网络分离:公网/私网
  9. SCAN:负载均衡
  10. 文档化:维护

12. 参考资料

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