温馨提示×

Ubuntu Oracle集群搭建怎么实现

小樊
51
2025-10-16 17:49:19
栏目: 云计算

Ubuntu环境下Oracle RAC集群搭建指南

1. 环境准备

1.1 操作系统要求

确保所有集群节点(至少2台)安装Ubuntu 22.04 LTS及以上版本(需满足Oracle 19C/21C/23C的最低兼容要求),并完成系统更新:

sudo apt update && sudo apt upgrade -y

1.2 网络配置

  • IP规划:每个节点需配置3类IP:
    • 公有IP:客户端访问数据库的入口IP;
    • 私有IP(心跳IP):节点间通信(如状态同步),通常使用专用网卡;
    • 虚拟IP(VIP):故障转移时自动漂移的IP,客户端无需感知节点变化。
  • 主机名解析:编辑/etc/hosts文件,添加节点名称与IP的映射(如node1 192.168.1.101node2 192.168.1.102),确保节点间可通过主机名互相访问。
  • 网络连通性测试:使用ping命令验证节点间网络延迟≤1ms、带宽≥1Gbps。

1.3 存储配置

  • 共享存储选择:推荐使用ASM(Automatic Storage Management)(Oracle原生共享存储解决方案),或第三方SAN/NAS存储。
  • ASM磁盘划分:至少创建2类ASM磁盘:
    • OCR磁盘:存储集群配置信息(需1块,建议大小1GB以上);
    • Voting Disk:存储节点投票信息(需奇数块,如3块,建议大小1GB以上,用于节点仲裁);
    • Data磁盘:存储数据库数据文件(根据业务需求划分,建议RAID 10或RAID 5)。
  • 磁盘挂载:在所有节点上挂载ASM磁盘,确保磁盘UUID一致(可通过blkid命令查看),并修改/etc/fstab实现开机自动挂载。

1.4 软件依赖

在所有节点上安装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

2. 安装Oracle Grid Infrastructure(集群基础软件)

Grid Infrastructure是Oracle RAC的核心管理组件,负责集群节点协调、资源监控及故障恢复。

2.1 上传并解压安装介质

将Oracle Grid Infrastructure安装介质(如linux.x64_19c_grid_1of2.ziplinux.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

2.2 运行安装程序

进入安装目录,运行runInstaller启动图形化安装向导:

cd /soft/grid
./runInstaller
  • 选择安装类型:勾选“集群安装”模式,指定所有集群节点(如node1node2);
  • 配置SCAN:设置Single Client Access Name(负载均衡域名)(如racdb.example.com),Oracle会自动创建DNS记录(需提前配置DNS服务器);
  • 配置VIP:为每个节点分配虚拟IP(如192.168.1.103对应node1-vip192.168.1.104对应node2-vip);
  • 配置ASM磁盘:选择之前划分的OCR磁盘和Voting Disk,设置ASM密码(用于管理ASM实例)。

2.3 完成安装

按照向导完成安装,安装完成后,执行root.sh脚本(在每个节点上执行):

sudo /u01/app/oraInventory/orainstRoot.sh
sudo /u01/app/oracle/product/19.0.0/grid/root.sh

2.4 启动集群服务

使用crsctl命令启动集群,验证节点状态:

crsctl start crs  # 启动集群
crsctl status crs # 查看集群状态(所有节点应显示“Online”)

3. 安装Oracle RAC数据库软件

Grid Infrastructure安装完成后,在主节点上安装Oracle Database软件(RAC模式)。

3.1 上传并解压安装介质

将Oracle Database安装介质(如linux.x64_21c_database_1of2.ziplinux.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

3.2 运行安装程序

进入安装目录,运行runInstaller

cd /soft/db
./runInstaller
  • 选择安装类型:勾选“RAC安装”选项,指定集群节点信息;
  • 配置数据库参数:设置数据库名称(如orcl)、字符集(如AL32UTF8)、密码(SYS、SYSTEM用户);
  • 集成Grid Infrastructure:选择“使用现有Grid Infrastructure”,指定Grid Infrastructure的安装目录(如/u01/app/19.0.0/grid)。

3.3 完成安装

按照向导完成安装,安装完成后,执行root.sh脚本(在每个节点上执行):

sudo /u01/app/oracle/product/21.0.0/dbhome_1/root.sh

4. 创建Oracle RAC数据库

使用dbca(Database Configuration Assistant)创建RAC数据库,确保选择“RAC模式”。

4.1 启动DBCA

dbca

4.2 配置数据库

  • 选择模板:选择“自定义数据库”或“General Purpose”模板;
  • 配置数据库标识:设置全局数据库名称(如orcl.example.com)、SID(如orcl);
  • 配置存储:选择ASM作为数据文件、重做日志文件、控制文件的存储位置;
  • 配置实例:设置每个节点的实例名称(如orcl1对应node1orcl2对应node2)、内存参数(如SGA_TARGET、PGA_AGGREGATE_TARGET);
  • 配置备份与恢复:可选配置RMAN备份策略。

4.3 完成创建

点击“完成”,等待数据库创建完成。创建成功后,可使用sqlplus连接到数据库,验证RAC状态:

sqlplus / as sysdba
SELECT INSTANCE_NAME, STATUS FROM GV$INSTANCE; -- 查看所有节点实例状态(应均为“OPEN”)

5. 验证集群功能

5.1 节点故障转移测试

停用某个节点(如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

5.2 负载均衡测试

通过多个客户端同时连接数据库,验证连接是否均匀分布在各节点(可通过GV$SESSION视图查看会话分布):

SELECT INST_ID, COUNT(*) AS SESSION_COUNT FROM GV$SESSION GROUP BY INST_ID;

注意事项

  • 备份策略:定期备份OCR磁盘、Voting Disk及数据库数据(可使用ocrconfig命令备份OCR,rman备份数据库);
  • 监控维护:使用Oracle Enterprise Manager(OEM)或crsctl命令监控集群状态,及时处理节点故障;
  • 安全配置:关闭不必要的端口(如SSH默认端口22可修改为其他端口),限制数据库访问IP;
  • 性能优化:根据业务需求调整ASM磁盘组、SGA/PGA参数,优化SQL语句。

以上步骤为Ubuntu环境下Oracle RAC集群搭建的基本流程,实际操作中需根据具体环境(如网络拓扑、存储设备)调整配置参数。建议在测试环境中充分验证后再应用于生产环境。

0