1. 环境准备与前置条件
在开始安装Oracle 26ai RAC数据库之前,我们需要确保所有硬件和软件环境都满足最低要求。我建议使用VMware Workstation Pro 17作为虚拟化平台,因为它提供了稳定的虚拟网络支持和资源管理功能,非常适合搭建复杂的集群环境。
1.1 硬件需求
对于Oracle RAC安装,建议的虚拟机配置如下:
- 每个节点至少4个vCPU(推荐8个)
- 每个节点至少16GB内存(推荐32GB)
- 共享存储至少100GB(推荐使用多个虚拟磁盘)
- 网络适配器需要至少两个(一个用于公共网络,一个用于私有互联)
注意:在实际生产环境中,这些配置需要根据负载情况进行调整。但在测试环境中,这个配置已经足够运行基本的RAC功能。
1.2 操作系统选择
Oracle 26ai RAC支持多种Linux发行版,我推荐使用Oracle Linux 8或Rocky Linux 8,因为它们与Oracle数据库有最好的兼容性。以下是具体的操作系统要求:
- 内核版本:4.18.0或更高
- 文件系统:XFS或EXT4
- SELinux:建议设置为permissive模式
- 防火墙:需要开放相关端口或临时禁用
1.3 VMware网络配置
在VMware中创建两个虚拟网络:
- 公共网络(桥接模式):用于客户端访问
- 私有网络(仅主机模式):用于节点间通信
每个虚拟机需要配置两个网络适配器,分别连接到这两个网络。私有网络的IP地址建议使用192.168.100.0/24网段,避免与公共网络冲突。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装Oracle Grid Infrastructure
Grid Infrastructure是Oracle RAC的基础组件,它提供了集群管理和存储服务。安装过程需要特别注意权限和路径设置。
2.1 创建用户和组
在所有节点上执行以下命令创建必要的用户和组:
bash复制groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,asmadmin,asmoper oracle
useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
2.2 配置内核参数
编辑/etc/sysctl.conf文件,添加以下参数:
conf复制fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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
执行sysctl -p使配置生效。
2.3 安装Grid Infrastructure软件
- 以grid用户登录
- 解压安装包并运行runInstaller
- 选择"Install and Configure Oracle Grid Infrastructure for a Cluster"
- 配置SCAN名称和节点列表
- 指定ASM磁盘组(需要提前创建共享虚拟磁盘)
安装完成后,运行root.sh脚本。这个脚本可能会在第二个节点上失败,这是正常现象,需要手动修复。
3. 安装Oracle 26ai数据库软件
Grid Infrastructure安装完成后,我们可以开始安装Oracle 26ai数据库软件。
3.1 准备安装环境
设置oracle用户的环境变量:
bash复制export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/26ai/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
3.2 运行数据库安装程序
- 以oracle用户登录
- 解压数据库安装包
- 运行runInstaller
- 选择"Install database software only"
- 选择"Oracle Real Application Clusters database installation"
- 选择所有节点
- 指定之前创建的Inventory目录
安装完成后,在每个节点上运行root.sh脚本。
4. 创建RAC数据库
现在我们可以使用DBCA工具创建RAC数据库。
4.1 启动DBCA
bash复制dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName orcl \
-sid orcl \
-nodelist node1,node2 \
-storageType ASM \
-diskGroupName DATA \
-recoveryGroupName RECO \
-characterSet AL32UTF8 \
-nationalCharacterSet AL16UTF16 \
-totalMemory 4096 \
-emConfiguration NONE \
-sampleSchema false \
-automaticMemoryManagement false \
-initParams sga_target=3G,sga_max_size=3G,pga_aggregate_target=1G
4.2 配置服务
创建完成后,我们需要配置服务以便客户端可以连接到数据库:
sql复制srvctl add service -d orcl -s app_srv -r "orcl1,orcl2" -P BASIC -e SELECT -m BASIC -z 180 -w 5
srvctl start service -d orcl -s app_srv
5. 验证与测试
安装完成后,我们需要验证集群是否正常工作。
5.1 检查集群状态
bash复制crsctl check cluster -all
输出应该显示所有资源都处于ONLINE状态。
5.2 测试故障转移
- 在一个节点上运行持续查询
- 突然关闭该节点
- 观察查询是否自动转移到另一个节点继续执行
5.3 性能测试
使用Oracle自带的性能测试工具进行基准测试:
sql复制@?/rdbms/admin/utlrp.sql
@?/rdbms/admin/utlbstat.sql
-- 运行测试负载
@?/rdbms/admin/utlestat.sql
6. 常见问题与解决方案
在实际安装过程中,可能会遇到各种问题。以下是我在多次安装中总结的一些常见问题及其解决方法。
6.1 共享存储问题
如果ASM无法识别共享磁盘,检查以下事项:
- 磁盘权限是否正确(grid用户和asmadmin组应该有读写权限)
- 磁盘是否在所有节点上都可见
- 是否使用了正确的磁盘标识符(/dev/sdX可能会变化,建议使用/dev/disk/by-id)
6.2 网络连接问题
私有网络通信问题会导致节点驱逐。检查:
- 网络延迟(ping时间应小于2ms)
- 是否配置了正确的/etc/hosts条目
- 防火墙是否阻止了集群通信
6.3 OCR和投票磁盘问题
如果集群无法启动,可能是OCR或投票磁盘损坏。可以尝试:
- 使用ocrcheck验证OCR完整性
- 使用crsctl query css votedisk检查投票磁盘状态
- 如果有备份,可以尝试恢复
7. 性能优化建议
安装完成后,我们可以进行一些优化以提高性能。
7.1 ASM磁盘组配置
对于生产环境,建议:
- 使用多个故障组提高可用性
- 根据I/O特性分离数据、日志和归档
- 使用适当的AU大小(4M对于大型数据库更好)
7.2 内存配置
调整SGA和PGA大小以适应工作负载:
sql复制ALTER SYSTEM SET sga_target=4G SCOPE=BOTH;
ALTER SYSTEM SET pga_aggregate_target=2G SCOPE=BOTH;
7.3 并行查询配置
对于分析型负载,可以启用并行查询:
sql复制ALTER SYSTEM SET parallel_max_servers=32 SCOPE=BOTH;
ALTER SYSTEM SET parallel_min_servers=8 SCOPE=BOTH;
8. 备份与恢复策略
即使是测试环境,也应该建立基本的备份策略。
8.1 RMAN配置
设置RMAN保留策略和自动备份:
sql复制CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/%F';
8.2 定期备份
创建每周全备和每日增量的备份脚本:
bash复制rman target / <<EOF
RUN {
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG;
BACKUP CURRENT CONTROLFILE;
}
EOF
8.3 恢复测试
定期测试恢复过程以确保备份有效:
bash复制rman target / <<EOF
STARTUP MOUNT;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN;
EOF
9. 监控与维护
保持集群健康需要持续的监控和维护。
9.1 集群日志检查
定期检查以下日志:
- $GRID_HOME/log/[hostname]/alert[hostname].log
- $GRID_HOME/log/[hostname]/agent/ohasd/oraagent_grid/oraagent_grid.log
- $ORACLE_HOME/rdbms/log/alert_orcl.log
9.2 资源使用监控
使用以下命令监控资源使用情况:
bash复制crsctl status resource -t
asmcmd lsdg
9.3 定期维护任务
设置定期维护窗口执行:
- 统计信息收集
- 段顾问运行
- 数据库健康检查
10. 高级配置选项
对于需要更复杂配置的环境,可以考虑以下选项。
10.1 服务质量管理
使用Resource Manager管理工作负载:
sql复制BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP('OLAP_GROUP', 'OLAP queries');
DBMS_RESOURCE_MANAGER.CREATE_PLAN('DAYTIME', 'Daytime plan');
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE('DAYTIME', 'OLAP_GROUP',
'OLAP queries', MGMT_P1=>80, PARALLEL_DEGREE_LIMIT_P1=>8);
DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
END;
/
10.2 多租户配置
Oracle 26ai支持多租户架构。创建CDB和PDB:
sql复制CREATE DATABASE cdb1
USER SYS IDENTIFIED BY password
USER SYSTEM IDENTIFIED BY password
ENABLE PLUGGABLE DATABASE
FILE_NAME_CONVERT=('/pdbseed/','/pdb1/')
ADMIN USER pdbadmin IDENTIFIED BY password;
10.3 内存中选项
启用内存中列存储以提高分析查询性能:
sql复制ALTER SYSTEM SET inmemory_size=2G SCOPE=SPFILE;
CREATE TABLE sales INMEMORY PRIORITY HIGH AS SELECT * FROM sales_history;
