Oracle Real Application Clusters(RAC)是Oracle数据库的高可用性解决方案,允许多个Oracle实例同时运行在多个节点(服务器)上,共享同一份存储数据。其核心特性包括故障转移(节点故障时自动切换至其他节点)、负载均衡(将请求分发至多个实例提升性能)和扩展性(通过增加节点提升系统处理能力)。
192.168.1.101);10.10.10.101);192.168.1.105);/etc/hosts文件,添加节点主机名与IP的映射(如192.168.1.101 rac1、192.168.1.102 rac2)。在所有节点上安装Oracle要求的依赖包(以Oracle Linux为例):
yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
Oracle Grid Infrastructure(GI)是RAC的核心组件,负责集群管理、资源调度和存储管理(OCR、Voting Disk)。
以root用户执行,创建用于管理集群的用户和组:
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 asmdba
useradd -u 54321 -g oinstall -G dba,asmdba grid
passwd grid # 设置grid用户密码
以grid用户执行,实现节点间无密码登录:
su - grid
ssh-keygen -t rsa # 生成密钥对(直接回车)
ssh-copy-id grid@rac2 # 将公钥复制到rac2节点
ssh rac2 date # 测试互信(无密码提示则成功)
LINUX.X64_193000_grid_home.zip)到/opt/oracle/product/19.3.0/grid;cd /opt/oracle/product/19.3.0/grid
./gridSetup.sh
rac_cluster);rac_scan)和SCAN IP(如192.168.1.107);以root用户执行,创建数据库用户和目录:
groupadd -g 54324 oinstall
groupadd -g 54325 dba
useradd -u 54324 -g oinstall -G dba oracle
passwd oracle # 设置oracle用户密码
mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01
LINUX.X64_193000_db_home.zip)到/u01/app/oracle/product/19.3.0/dbhome_1;oracle用户执行安装向导:su - oracle
cd /u01/app/oracle/product/19.3.0/dbhome_1
./runInstaller
AL32UTF8)。使用DBCA(Database Configuration Assistant)工具创建RAC数据库:
dbca
orcl)和SID(如orcl1);以root用户执行,查看集群整体状态:
crsctl check cluster
以oracle用户执行,查看数据库实例状态:
srvctl status database -d orcl
srvctl stop instance -d orcl -i orcl1
srvctl status instance -d orcl -i orcl2
通过客户端工具(如SQL*Plus)连接VIP(192.168.1.105),执行查询,观察请求是否分发至rac1和rac2节点。
使用监控工具(如Prometheus+Grafana、Nagios)监控集群状态(节点存活、实例运行、存储使用率),设置告警规则(如节点宕机时发送邮件通知)。
配置RMAN(Recovery Manager)自动备份,定期测试备份恢复流程(如全量备份+增量备份)。
通过AWR(Automatic Workload Repository)报告分析数据库性能瓶颈,调整SGA/PGA参数、优化SQL语句、添加索引。