当前位置: 首页 > news >正文

虚拟机上redhat7.2安装oracle 11g rac 集群

在 Red Hat Enterprise Linux 7.2 虚拟机上安装 Oracle 11g RAC(Real Application Clusters)是一个复杂的过程,涉及环境准备、存储配置、集群软件安装、数据库安装等多个关键步骤。以下是详细的分步指南,确保每一步可落地(基于 Oracle 11gR2 版本,RAC 节点数为 2 个,节点名分别为 rac1 和 rac2):
一、前置条件说明

  1. 硬件要求(虚拟机配置)
    每个节点至少满足:
    CPU:2 核及以上(推荐 4 核)
    内存:4GB 及以上(Oracle 建议最小 2GB,RAC 建议 4GB+)
    磁盘:
    系统盘:50GB+(/ 分区、swap 分区 4GB+)
    共享存储:用于 OCR/Voting Disk 和数据文件(推荐用 iSCSI 或 NFS 模拟共享存储,虚拟机不支持裸设备时优先 iSCSI)
    网络:2 块网卡(公有网卡 eth0 用于业务,私有网卡 eth1 用于集群心跳)
  2. 软件依赖
    Red Hat 7.2 需安装 Oracle 11gR2 依赖的 RPM 包(部分包 RHEL7 已自带,缺失的需手动安装):
    bash
    运行

基础依赖包(root 用户执行)

yum install -y binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686
gcc gcc-c++ glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libaio libaio.i686
libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686
libstdc++-devel libstdc++-devel.i686 libXi libXi.i686 libXtst libXtst.i686
make sysstat unixODBC unixODBC-devel
3. 网络规划(示例)
节点 公有 IP(eth0) 私有 IP(eth1,心跳) VIP(虚拟 IP) SCAN IP(单客户端访问)
rac1 192.168.1.101 10.0.0.101 192.168.1.103 192.168.1.105
rac2 192.168.1.102 10.0.0.102 192.168.1.104 192.168.1.105
注意:SCAN IP 需解析到所有节点(推荐用 DNS,或修改 /etc/hosts)。
二、环境准备(两个节点均执行)

  1. 关闭防火墙和 SELinux
    bash
    运行

关闭防火墙(永久禁用)

systemctl stop firewalld
systemctl disable firewalld

关闭 SELinux(临时+永久)

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2. 配置 /etc/hosts 文件
bash
运行
cat >> /etc/hosts << EOF

公有IP

192.168.1.101 rac1
192.168.1.102 rac2

VIP(虚拟IP)

192.168.1.103 rac1-vip
192.168.1.104 rac2-vip

私有IP(心跳)

10.0.0.101 rac1-priv
10.0.0.102 rac2-priv

SCAN IP(必须解析)

192.168.1.105 rac-scan
EOF
3. 创建 Oracle 相关用户和组
bash
运行

创建组

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

创建 oracle 用户(属于所有组)

useradd -u 54321 -g oinstall -G dba,oper,asmdba oracle

创建 grid 用户(集群软件用户,属于 asm 相关组)

useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,dba grid

设置密码

passwd oracle
passwd grid
4. 创建安装目录并授权
bash
运行

创建 grid 安装目录(集群软件)

mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/grid

创建 oracle 安装目录(数据库软件)

mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1

创建数据文件目录(共享存储挂载点)

mkdir -p /u02/oradata

授权

chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/11.2.0/grid
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u02/oradata
chmod -R 775 /u01 /u02
5. 配置内核参数(/etc/sysctl.conf)
bash
运行
cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295 # 物理内存的 50%-80%(示例:8GB 内存设为 4GB)
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
EOF

生效内核参数

sysctl -p
6. 配置用户限制(/etc/security/limits.conf)
bash
运行
cat >> /etc/security/limits.conf << EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
EOF
7. 配置环境变量(grid 和 oracle 用户)
(1)grid 用户环境变量(~/.bash_profile)
bash
运行
su - grid
cat >> ~/.bash_profile << EOF
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=rac1 # rac2 节点改为 rac2
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_SID=+ASM1 # rac2 节点改为 +ASM2
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
umask 022
EOF

生效

source ~/.bash_profile
(2)oracle 用户环境变量(~/.bash_profile)
bash
运行
su - oracle
cat >> ~/.bash_profile << EOF
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=rac1 # rac2 节点改为 rac2
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl1 # rac2 节点改为 orcl2
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
umask 022
EOF

生效

source ~/.bash_profile
三、配置共享存储(关键步骤)
RAC 依赖共享存储(OCR/Voting Disk 和数据文件需多节点访问),虚拟机推荐用 iSCSI 模拟共享存储(以下以 rac1 为 iSCSI 服务器,rac1 和 rac2 为客户端)。

  1. 在 rac1(iSCSI 服务器)配置
    bash
    运行

安装 iSCSI 服务

yum install -y scsi-target-utils

创建共享磁盘文件(模拟裸设备,大小根据需求调整)

dd if=/dev/zero of=/u01/iscsi/ocr1.img bs=1G count=2 # OCR 盘1(2GB)
dd if=/dev/zero of=/u01/iscsi/ocr2.img bs=1G count=2 # OCR 盘2(2GB)
dd if=/dev/zero of=/u01/iscsi/voting1.img bs=1G count=1 # Voting Disk1(1GB)
dd if=/dev/zero of=/u01/iscsi/voting2.img bs=1G count=1 # Voting Disk2(1GB)
dd if=/dev/zero of=/u01/iscsi/voting3.img bs=1G count=1 # Voting Disk3(1GB)
dd if=/dev/zero of=/u01/iscsi/data.img bs=1G count=20 # 数据文件盘(20GB)

配置 iSCSI 目标(编辑 /etc/tgt/targets.conf)

cat >> /etc/tgt/targets.conf << EOF

backing-store /u01/iscsi/ocr1.img
backing-store /u01/iscsi/ocr2.img
backing-store /u01/iscsi/voting1.img
backing-store /u01/iscsi/voting2.img
backing-store /u01/iscsi/voting3.img
backing-store /u01/iscsi/data.img
initiator-address 192.168.1.101 # 允许 rac1 访问
initiator-address 192.168.1.102 # 允许 rac2 访问

EOF

启动 iSCSI 服务并设置开机自启

systemctl start tgtd
systemctl enable tgtd
2. 在 rac1 和 rac2(iSCSI 客户端)配置
bash
运行

安装 iSCSI 客户端

yum install -y iscsi-initiator-utils

发现 iSCSI 服务器目标

iscsiadm -m discovery -t st -p 192.168.1.101 # rac1 的公有IP

登录 iSCSI 目标(永久登录)

iscsiadm -m node -l
iscsiadm -m node -o update -n node.startup -v automatic

验证共享磁盘(两个节点都能看到 /dev/sdb、/dev/sdc、/dev/sdd、/dev/sde、/dev/sdf、/dev/sdg)

lsblk
3. 配置 ASM 磁盘标签(两个节点均执行)
Oracle ASM 需要识别共享磁盘,推荐用 udev 绑定磁盘标签:
bash
运行

查看磁盘的 WWID(以 /dev/sdb 为例,所有共享磁盘都需执行)

/sbin/scsi_id -g -u -d /dev/sdb # 输出类似:14f504e46494c455254786a6d79387a

创建 udev 规则文件 /etc/udev/rules.d/99-oracle-asm.rules

cat >> /etc/udev/rules.d/99-oracle-asm.rules << EOF
KERNEL"sd*", SUBSYSTEM"block", PROGRAM"/sbin/scsi_id -g -u -d /dev/$name", RESULT"14f504e46494c455254786a6d79387a", SYMLINK+="asm-ocr1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL"sd*", SUBSYSTEM"block", PROGRAM"/sbin/scsi_id -g -u -d /dev/$name", RESULT"[第二个磁盘WWID]", SYMLINK+="asm-ocr2", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL"sd*", SUBSYSTEM"block", PROGRAM"/sbin/scsi_id -g -u -d /dev/$name", RESULT"[第三个磁盘WWID]", SYMLINK+="asm-voting1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL"sd*", SUBSYSTEM"block", PROGRAM"/sbin/scsi_id -g -u -d /dev/$name", RESULT"[第四个磁盘WWID]", SYMLINK+="asm-voting2", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL"sd*", SUBSYSTEM"block", PROGRAM"/sbin/scsi_id -g -u -d /dev/$name", RESULT"[第五个磁盘WWID]", SYMLINK+="asm-voting3", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL"sd*", SUBSYSTEM"block", PROGRAM"/sbin/scsi_id -g -u -d /dev/$name", RESULT"[第六个磁盘WWID]", SYMLINK+="asm-data1", OWNER="grid", GROUP="asmadmin", MODE="0660"
EOF

重新加载 udev 规则

udevadm control --reload-rules
udevadm trigger --type=devices --action=change

验证标签(两个节点均能看到 /dev/asm-* 设备)

ls -l /dev/asm-*
四、安装 Grid Infrastructure(集群软件)
Grid Infrastructure 是 RAC 的核心(包含 Clusterware 和 ASM),需以 grid 用户在其中一个节点(如 rac1)执行图形化安装。

  1. 上传安装包并解压
    bash
    运行

以 grid 用户登录 rac1,上传安装包到 /tmp

su - grid
cd /tmp
unzip linux.x64_11gR2_grid.zip # 解压后生成 grid 目录
2. 执行图形化安装(需虚拟机开启图形界面)
bash
运行
cd /tmp/grid
./runInstaller
安装步骤向导:
选择安装类型:选择「Install and Configure Grid Infrastructure for a Cluster」。
选择集群类型:选择「Typical Cluster Installation」(典型安装)。
集群节点信息:
添加节点:点击「Add」,输入 rac2 的主机名,验证节点连通性(需无密码 SSH 登录,安装程序可自动配置)。
网络配置:
公有网络:选择 eth0,子网 192.168.1.0。
私有网络:选择 eth1,子网 10.0.0.0。
SCAN 名称:输入 rac-scan,端口 1521,IP 192.168.1.105。
存储配置:
选择「Oracle ASM」,点击「Create New ASM Disk Group」。
磁盘组名称:OCR_VOTING(用于 OCR 和 Voting Disk),冗余类型「Normal Redundancy」(需 2 块 OCR 盘 + 3 块 Voting Disk)。
选择 /dev/asm-ocr1、/dev/asm-ocr2、/dev/asm-voting1、/dev/asm-voting2、/dev/asm-voting3。
ASM 密码:设置 ASM 实例密码(如 asm123456)。
安装目录:验证 /u01/app/grid(ORACLE_BASE)和 /u01/app/11.2.0/grid(ORACLE_HOME)。
先决条件检查:忽略「Swap 大小」等非致命警告(虚拟机资源不足时)。
开始安装:安装过程中会提示执行两个脚本(以 root 用户在两个节点分别执行):
bash
运行

第一个脚本(rac1 和 rac2 均执行)

/u01/app/oraInventory/orainstRoot.sh

第二个脚本(rac1 和 rac2 均执行)

/u01/app/11.2.0/grid/root.sh
完成安装:安装成功后,验证集群状态:
bash
运行
su - grid
crs_stat -t # 查看集群资源状态(所有资源应为 ONLINE)
asmca # 验证 ASM 磁盘组(OCR_VOTING 状态为 MOUNTED)
五、安装 Oracle 11g 数据库软件(RAC)
以 oracle 用户在 rac1 执行图形化安装,数据库软件会自动同步到 rac2 节点。

  1. 上传安装包并解压
    bash
    运行
    su - oracle
    cd /tmp
    unzip linux.x64_11gR2_database_1of2.zip
    unzip linux.x64_11gR2_database_2of2.zip # 解压后生成 database 目录
  2. 执行图形化安装
    bash
    运行
    cd /tmp/database
    ./runInstaller
    安装步骤向导:
    选择安装选项:选择「Install database software only」(仅安装软件,后续创建数据库)。
    选择集群类型:选择「Real Application Clusters database installation」。
    选择节点:勾选 rac1 和 rac2(验证节点连通性)。
    语言选择:默认英文(或添加中文)。
    数据库版本:选择「Enterprise Edition」(企业版)。
    安装目录:验证 /u01/app/oracle(ORACLE_BASE)和 /u01/app/oracle/product/11.2.0/dbhome_1(ORACLE_HOME)。
    先决条件检查:忽略非致命警告。
    开始安装:安装过程中提示执行脚本(以 root 用户在两个节点分别执行):
    bash
    运行
    /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
    完成安装:数据库软件安装成功。
    六、创建 RAC 数据库
    以 oracle 用户在 rac1 执行 dbca(数据库配置助手),创建 RAC 数据库。
  3. 启动 DBCA
    bash
    运行
    su - oracle
    dbca
    配置步骤向导:
    选择操作:选择「Create a Database」。
    数据库模板:选择「General Purpose or Transaction Processing」。
    数据库名称:
    全局数据库名:orcl.example.com
    SID 前缀:orcl(rac1 节点 SID 为 orcl1,rac2 为 orcl2)。
    节点选择:勾选 rac1 和 rac2。
    存储配置:选择「Oracle Automatic Storage Management (ASM)」,选择 ASM 磁盘组 DATA(需先创建 DATA 磁盘组):
    启动 asmca,创建磁盘组 DATA,选择 /dev/asm-data1,冗余类型「Normal Redundancy」。
    快速恢复区:选择 ASM 磁盘组 DATA,大小设为 10GB。
    数据库选项:默认(或根据需求勾选组件)。
    初始化参数:默认(或调整内存、字符集等)。
    密码设置:设置 SYS/SYSTEM 密码(如 oracle123456)。
    创建数据库:开始创建,完成后验证数据库状态:
    bash
    运行
    su - oracle
    sqlplus / as sysdba
    SQL> select instance_name, status from v$instance; # 节点1 显示 orcl1 OPEN
    SQL> connect sys/oracle123456@rac2:1521/orcl.example.com as sysdba
    SQL> select instance_name, status from v$instance; # 节点2 显示 orcl2 OPEN
    crs_stat -t # 验证数据库资源(ora.orcl.db 状态为 ONLINE)
    七、常见问题排查
    集群资源无法启动:检查 /var/log/messages 和 /u01/app/grid/diag/crs/rac1/crs/trace/alert.log,确认共享存储是否挂载、网络是否正常。
    ASM 磁盘无法识别:检查 udev 规则是否正确,磁盘权限是否为 grid:asmadmin。
    安装过程中图形界面闪退:安装 libXtst 依赖包,或通过 VNC 连接虚拟机。
    SCAN IP 无法解析:确保 /etc/hosts 中 SCAN IP 正确,或配置 DNS 服务。
    总结
    Oracle 11g RAC 安装的核心是 环境一致性、共享存储配置、集群软件部署。虚拟机环境中需重点注意:
    网络配置(双网卡、VIP/SCAN IP 解析)。
    共享存储模拟(iSCSI 需确保两个节点都能访问)。
    权限和目录规划(严格按照 Oracle 官方要求)。
    安装完成后,可通过 srvctl 命令管理 RAC 资源(如启动 / 停止数据库、添加节点等),后续可配置监听、备份策略等。
http://www.gsyq.cn/news/55405.html

相关文章:

  • 2025年深圳会议室麦克风公司权威推荐榜单:无线会议话筒/桌面会议话筒/无线手拉手会议话筒源头公司精选
  • 2025 最新推荐!塑料板材设备厂家排行榜单:覆盖 PP/ABS/PE/PC 全系列生产线ABS 塑料板材设备/PE 塑料板材设备/PC 塑料板材设备公司推荐
  • oeasy玩py106 列表_删除_del_索引元素_切片
  • 2025年 11月 上海网站建设与小程序一体化搭建方案 甄选推荐
  • 2025云南冻品批发供应商最新TOP5权威推荐 餐饮店优质冻品源头厂家、烧烤食材品牌选购指南
  • 低功耗抗干扰液晶驱动工控仪表段码驱动显示IC VK2C21BA LCD驱动原厂
  • 【完整版】Grok 4.1全面官方解析:功能详解+API调用+在线使用入口
  • 12种k线图
  • 开源AI工具MindGridAI
  • “入站规则”(Inbound Rules)和“出站规则”(Outbound Rules)
  • 四川靠谱的小红书代运营公司推荐,小红书推广/网络推广/网络公关/抖音代运营/抖音推广/网络营销/网站建设小红书代运营公司找哪家
  • 洛谷题单指南-组合数学与计数-CF1332E Height All the Same
  • ESP32-LVGL 开发笔记(二):设备注册
  • 同样都是36岁,同样都是面临人生的抉择,《岁月》中的梁志远放下清高觉醒了,我呢,如何在社会这个大染缸里面混呢?
  • 2025 年 11 月冲压机械手厂家推荐排行榜,冲床机械手/摆臂机械手/二次元拉伸/三次元冲压/模内平移/多工位冲压/四轴上下料/自动拆垛/新能源电池壳拉伸/双臂机械手/全自动码垛机厂家精选
  • PG优化系列:Oracle迁移到PG中性能下降1000倍续集
  • 2025 最新瓷砖品牌权威推荐:经国际协会测评认证,精选品质与创新兼具的优质品牌
  • ESD整改核心思路:堵、防、疏的实践平衡-ASIM阿赛姆
  • 保温杯LED屏幕驱动和语音播报二合一芯片方案
  • 2025 靠谱初中一对一辅导机构排行榜:权威评价 + 真实口碑排名推荐
  • 什么是I2C通信协议
  • 视频汇聚平台EasyCVR服务器使用WiFi网卡时,为何无法向级联平台发送注册?
  • idea下创建多个springboot项目
  • 大厂都在用的测试基础设施:深度解析Dify工作流引擎的设计哲学与最佳实践
  • 【LVGL】文本区域部件
  • 2025 年 11 月手工冰淇淋厂家推荐排行榜,0添加冰淇淋,低脂冰淇淋,低糖冰淇淋,巧克力冰淇淋,国潮冰淇淋,磨巧冰淇淋厂家推荐
  • 11.20模拟赛div-3
  • why did I speak English
  • Java 类加载机制与反射
  • 2025年电子散件手工源头厂家权威推荐榜单:灯具加工外发/手工编织加工/电子产品手工加工源头厂家精选