确保所有集群节点(至少2台)安装Ubuntu 22.04 LTS及以上版本(需满足Oracle 19C/21C/23C的最低兼容要求),并完成系统更新:
sudo apt update && sudo apt upgrade -y
/etc/hosts文件,添加节点名称与IP的映射(如node1 192.168.1.101、node2 192.168.1.102),确保节点间可通过主机名互相访问。ping命令验证节点间网络延迟≤1ms、带宽≥1Gbps。blkid命令查看),并修改/etc/fstab实现开机自动挂载。在所有节点上安装Oracle安装所需的依赖包:
sudo apt install -y automake autotools-dev binutils bzip2 elfutils expat gawk gcc gcc-multilib g++-multilib libaio1 libaio-dev libelf-dev libltdl-dev libssl-dev unixodbc unixodbc-dev sysstat ksh libtool lsof
Grid Infrastructure是Oracle RAC的核心管理组件,负责集群节点协调、资源监控及故障恢复。
将Oracle Grid Infrastructure安装介质(如linux.x64_19c_grid_1of2.zip、linux.x64_19c_grid_2of2.zip)上传至主节点的/soft目录,解压并合并文件:
unzip linux.x64_19c_grid_1of2.zip -d /soft/grid
unzip linux.x64_19c_grid_2of2.zip -d /soft/grid
进入安装目录,运行runInstaller启动图形化安装向导:
cd /soft/grid
./runInstaller
node1、node2);racdb.example.com),Oracle会自动创建DNS记录(需提前配置DNS服务器);192.168.1.103对应node1-vip,192.168.1.104对应node2-vip);按照向导完成安装,安装完成后,执行root.sh脚本(在每个节点上执行):
sudo /u01/app/oraInventory/orainstRoot.sh
sudo /u01/app/oracle/product/19.0.0/grid/root.sh
使用crsctl命令启动集群,验证节点状态:
crsctl start crs # 启动集群
crsctl status crs # 查看集群状态(所有节点应显示“Online”)
Grid Infrastructure安装完成后,在主节点上安装Oracle Database软件(RAC模式)。
将Oracle Database安装介质(如linux.x64_21c_database_1of2.zip、linux.x64_21c_database_2of2.zip)上传至/soft目录,解压:
unzip linux.x64_21c_database_1of2.zip -d /soft/db
unzip linux.x64_21c_database_2of2.zip -d /soft/db
进入安装目录,运行runInstaller:
cd /soft/db
./runInstaller
orcl)、字符集(如AL32UTF8)、密码(SYS、SYSTEM用户);/u01/app/19.0.0/grid)。按照向导完成安装,安装完成后,执行root.sh脚本(在每个节点上执行):
sudo /u01/app/oracle/product/21.0.0/dbhome_1/root.sh
使用dbca(Database Configuration Assistant)创建RAC数据库,确保选择“RAC模式”。
dbca
orcl.example.com)、SID(如orcl);orcl1对应node1,orcl2对应node2)、内存参数(如SGA_TARGET、PGA_AGGREGATE_TARGET);点击“完成”,等待数据库创建完成。创建成功后,可使用sqlplus连接到数据库,验证RAC状态:
sqlplus / as sysdba
SELECT INSTANCE_NAME, STATUS FROM GV$INSTANCE; -- 查看所有节点实例状态(应均为“OPEN”)
停用某个节点(如node1)的服务,观察VIP是否自动漂移至另一个节点(node2),数据库服务是否持续可用:
# 在node1上停用Oracle服务
systemctl stop oracle-rac
# 在node2上查看VIP状态
crsctl status resource -t | grep -i vip
# 在node2上连接数据库,验证服务可用性
sqlplus sys/password@node2-vip:1521/orcl as sysdba
通过多个客户端同时连接数据库,验证连接是否均匀分布在各节点(可通过GV$SESSION视图查看会话分布):
SELECT INST_ID, COUNT(*) AS SESSION_COUNT FROM GV$SESSION GROUP BY INST_ID;
ocrconfig命令备份OCR,rman备份数据库);crsctl命令监控集群状态,及时处理节点故障;以上步骤为Ubuntu环境下Oracle RAC集群搭建的基本流程,实际操作中需根据具体环境(如网络拓扑、存储设备)调整配置参数。建议在测试环境中充分验证后再应用于生产环境。