在 Oracle Linux 7.9 上安装和部署 Oracle 11g RAC 及 Oracle 数据库的完整指南
在 Oracle Linux 7.9 上部署 Oracle 11g RAC 能够充分利用 Oracle RAC 的优势,为企业提供稳定和高性能的数据库解决方案。安装完成 Oracle Grid Infrastructure 和 Oracle 11g 数据库软件后,使用 Database Configuration Assistant (DBCA) 创建 Oracle RAC 数据库。Oracle
在 Oracle Linux 7.9 上安装和部署 Oracle 11g RAC 及 Oracle 数据库的完整指南
目录
- 引言
- 系统和软件要求
- 环境准备
- 网络配置
- 共享存储配置
- 安装必要的软件包
- 内核参数和系统设置配置
- 用户和组创建
- 配置 SSH 无密码登录
- 安装 Oracle Grid Infrastructure
- 安装 Oracle 11g 数据库软件
- 创建和配置 Oracle RAC 数据库
- 后续步骤和验证
- 常见问题与故障排除
- 总结
1. 引言
Oracle Real Application Clusters (RAC) 允许多个计算节点并行运行一个单一的数据库实例,实现高可用性和可扩展性。在 Oracle Linux 7.9 上部署 Oracle 11g RAC 能够充分利用 Oracle RAC 的优势,为企业提供稳定和高性能的数据库解决方案。
重要提示:在进行安装前,确保您具备足够的权限(如 root 用户权限),并且对 Linux 系统和 Oracle 数据库有一定的了解。
2. 系统和软件要求
2.1 硬件要求
Oracle 11g RAC 对硬件有特定要求,以下是推荐的最小配置:
- CPU:
- 至少 2 个 CPU 核心(建议每个节点至少 4 核心)
- 内存:
- 至少 8 GB RAM(根据数据库规模和负载需求调整)
- 存储:
- 足够的磁盘空间,用于操作系统、数据库软件、数据文件、归档日志等
- 网络:
- 至少两块网络接口卡(NIC),分别用于公共网络和私有集群网络
- 共享存储:
- 使用共享存储设备(如 SAN、NAS、iSCSI 等),以确保所有 RAC 节点能够访问相同的存储资源
2.2 软件要求
- 操作系统:Oracle Linux 7.9(更新到最新的补丁级别)
- Oracle 11g 软件:
- Oracle Grid Infrastructure 11g
- Oracle Database 11g 安装包
- 浏览器:
- 需要图形界面以运行 Oracle 安装程序
- 其他工具:
- SSH 工具,防火墙工具等
注意:确保所有 RAC 节点运行相同的 Oracle Linux 版本和相同的补丁级别,以避免兼容性问题。
3. 环境准备
3.1 网络和主机名规划
- 公共网络:用于客户端连接和日常数据库操作
- 集群(私有)网络:用于节点间通信和集群服务
- 提供唯一的主机名:每个节点必须有唯一的主机名和 IP 地址
示例配置:
| 名称 | 描述 | IP 地址 |
|---|---|---|
| node1 | 公共网络 | 192.168.1.101 |
| node1 | 私有集群网络 | 10.1.1.101 |
| node2 | 公共网络 | 192.168.1.102 |
| node2 | 私有集群网络 | 10.1.1.102 |
3.2 主机名解析
编辑 /etc/hosts 文件,确保每个节点的公共和私有 IP 都能解析。
sudo vi /etc/hosts
示例内容:
192.168.1.101 node1.example.com node1
10.1.1.101 node1-priv.example.com node1-priv
192.168.1.102 node2.example.com node2
10.1.1.102 node2-priv.example.com node2-priv
3.3 时间同步
确保所有节点的系统时间保持一致,推荐使用 NTP 服务。
安装并启动 NTP:
sudo yum install -y chrony
sudo systemctl enable chronyd
sudo systemctl start chronyd
配置 /etc/chrony.conf 文件,添加可信的 NTP 服务器。
4. 网络配置
4.1 配置网络接口
每个节点需要配置两张网络接口卡,一张用于公共网络,另一张用于私有集群网络。
示例:配置私有网络接口(eth1)
编辑网络配置文件:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1
内容示例:
TYPE=Ethernet
BOOTPROTO=static
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=10.1.1.101
NETMASK=255.255.255.0
保存后,重启网络服务:
sudo systemctl restart network
4.2 禁用防火墙和 SELinux(可选)
注意:根据企业安全策略,可能需要调整防火墙和 SELinux 设置。
禁用防火墙(测试环境下):
sudo systemctl stop firewalld
sudo systemctl disable firewalld
禁用 SELinux:
编辑 /etc/selinux/config 文件,将 SELINUX 设置为 disabled:
SELINUX=disabled
重启系统以应用更改:
sudo reboot
推荐:在生产环境中,根据需求配置适当的防火墙规则和 SELinux 策略,而不是完全禁用。
5. 共享存储配置
Oracle RAC 需要共享存储以存放 Oracle Grid Infrastructure、数据库文件等关键组件。以下介绍使用共享 LUN(如通过 SAN)、NFS 或 iSCSI 的方法。
示例:使用 iSCSI 共享存储
5.1 设置 iSCSI 目标
在存储服务器上配置 iSCSI 目标,并创建相应的 LUNs。具体步骤根据存储设备不同而有所差异。
5.2 在每个节点上配置 iSCSI
-
安装 iSCSI 工具
sudo yum install -y iscsi-initiator-utils -
配置 iSCSI Initiator 名称
编辑
/etc/iscsi/initiatorname.iscsi文件,确保 Initiator 名称唯一。示例内容:
InitiatorName=iqn.2023-04.com.example:node1 -
发现并登录到 iSCSI 目标
sudo iscsiadm -m discovery -t sendtargets -p <ISCSI_TARGET_IP> sudo iscsiadm -m node -T <TARGET_NAME> -p <ISCSI_TARGET_IP> --login -
自动登录 iSCSI 会话
启用自动登录:
sudo vi /etc/iscsi/iscsid.conf设置
node.startup = automatic。启动并启用 iSCSI 服务:
sudo systemctl enable iscsi sudo systemctl start iscsi -
验证存储设备
确认所有节点上都能识别到相同的存储设备。
sudo fdisk -l
5.3 配置磁盘分区和文件系统
根据 Oracle 推荐,使用 ASM(Automatic Storage Management)来管理共享存储,而不是直接使用文件系统。
6. 安装必要的软件包
Oracle 11g 在 Oracle Linux 7.9 上运行需要一些特定的软件包。以下命令安装所有必需的依赖包。
sudo yum install -y binutils \
gcc \
gcc-c++ \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libXi \
libXtst \
make \
sysstat \
unixODBC \
compat-libcap1 \
compat-libstdc++-33 \
libgcc \
libstdc++ \
libaio \
libaio-devel \
openmotif \
libXrender \
libXaw \
libX11 \
libXt \
smartmontools \
texinfo \
elfutils-libelf-devel \
flex \
bison \
libtool \
lrzsz \
zip \
unzip \
expect
说明:
- 部分软件包可能因为版本问题需要从 EPEL 或其他仓库安装。如果遇到安装问题,请启用 EPEL 仓库:
sudo yum install -y epel-release
然后再次尝试安装所需的软件包。
7. 内核参数和系统设置配置
7.1 配置内核参数
编辑 /etc/sysctl.conf 文件,添加 Oracle 推荐的内核参数。
sudo vi /etc/sysctl.conf
添加以下内容:
# Oracle 11g RAC 推荐内核参数
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = $(expr 8 \* 1024 \* 1024 \* 1024) # 8 GB
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.tcp_tw_reuse = 1
注意:shmmax 设为可用内存的 50% 或更高,根据具体情况调整。
应用内核参数:
sudo sysctl -p
7.2 配置系统限制
编辑 /etc/security/limits.d/oracle.conf 文件:
sudo vi /etc/security/limits.d/oracle.conf
添加以下内容:
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
确保系统配置了 PAM 模块以加载这些限制,编辑 /etc/pam.d/login 和 /etc/pam.d/sshd,添加以下行(若尚未存在):
session required pam_limits.so
7.3 其他内核参数
根据需要,配置其他内核参数,如 HugePages、启用透明大页(Transparent Huge Pages, THP)等。对于 Oracle RAC,建议禁用 THP。
禁用 THP:
编辑 /etc/rc.local 文件,添加以下内容:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
设置 rc.local 可执行权限:
sudo chmod +x /etc/rc.d/rc.local
8. 用户和组创建
Oracle 需要特定的用户和组来管理数据库和集群资源。以下步骤创建所需的用户和组。
# 创建组
sudo groupadd -g 54321 oinstall
sudo groupadd -g 54322 dba
sudo groupadd -g 54323 oper
# 创建 Oracle 用户
sudo useradd -u 54321 -g oinstall -G dba,oper oracle
# 设置 Oracle 用户密码
sudo passwd oracle
确保 Oracle 用户拥有足够的权限访问所需的目录和资源。
9. 配置 SSH 无密码登录
Oracle RAC 节点之间需要通过 SSH 无密码登录进行通信。以下是在所有 RAC 节点上配置 SSH 无密码登录的步骤。
9.1 生成 SSH 密钥对
在 Oracle 用户下生成 SSH 密钥对。
sudo su - oracle
ssh-keygen -t rsa -b 2048
- 当提示输入文件位置时,按
Enter接受默认位置 (~/.ssh/id_rsa) - 当提示输入密码时,直接按
Enter跳过(无需设置密码)
9.2 分发公共密钥到所有节点
将生成的公共密钥 (~/.ssh/id_rsa.pub) 添加到所有节点的 ~/.ssh/authorized_keys 文件中。
示例:在 node1 上操作
ssh-copy-id node1
ssh-copy-id node2
如果 ssh-copy-id 不可用,可以手动复制:
cat ~/.ssh/id_rsa.pub | ssh node1 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
cat ~/.ssh/id_rsa.pub | ssh node2 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
9.3 验证 SSH 无密码登录
测试从 node1 到 node2 的 SSH 无密码登录。
ssh node2
松核确认无需输入密码即能登录。
注意:确保 /etc/ssh/sshd_config 文件中启用了公钥认证:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启 SSH 服务以应用更改:
sudo systemctl restart sshd
10. 安装 Oracle Grid Infrastructure
Oracle Grid Infrastructure 提供集群管理和存储管理功能,是部署 Oracle RAC 的基础。
10.1 下载 Oracle Grid Infrastructure 软件
前往 Oracle 官方网站,根据您的授权和需求下载 Oracle Grid Infrastructure 11g 的安装包。确保下载与 Oracle Linux 7.9 兼容的版本。
10.2 解压安装包
将下载的安装包上传到其中一个节点,并解压到指定目录。
unzip linux.x64_11gR2_grid_home.zip -d /home/oracle/grid_install
10.3 配置环境变量
编辑 Oracle 用户的 ~/.bash_profile 文件,添加 Grid Infrastructure 的环境变量。
vi ~/.bash_profile
添加以下内容:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/grid
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
应用环境变量:
source ~/.bash_profile
10.4 创建 Grid Infrastructure 目录
sudo mkdir -p /u01/app/grid
sudo chown -R oracle:oinstall /u01/app/grid
sudo chmod -R 775 /u01/app/grid
10.5 启动安装程序
切换到 Oracle 用户,并启动 Grid Infrastructure 安装程序。
su - oracle
cd /home/oracle/grid_install
./gridSetup.sh
10.6 安装向导操作
按照 Oracle 安装向导的提示进行操作:
- 欢迎页面:点击
Next。 - 选择安装类型:选择
Install and Configure Grid Infrastructure for a Cluster,然后选择Real Application Clusters (RAC)。 - 输入集群配置:
- 集群名称:例如
raccluster - 网络接口:选择公共和私有网络接口
- 集群名称:例如
- 指定存储选择:
- 选择
ASM作为存储管理选项 - 配置 ASM 磁盘组(如
DATA、OCR等)
- 选择
- 选择软件位置:
ORACLE_HOME目录
- 配置 SSH:
- 确认 SSH 无密码登录已配置
- 执行 pre-install 验证:
- 安装向导会进行预安装检查,确保系统满足所有要求
- 开始安装:
- 确认所有设置后,开始安装过程
- 完成安装:
- 安装完成后,向导会提示验证和配置步骤
注意:在多节点 RAC 环境中,安装步骤需要在所有节点上重复执行,以确保 Grid Infrastructure 在所有节点上一致安装和配置。
10.7 验证 Grid Infrastructure 安装
安装完成后,验证集群状态。
crsctl check cluster -all
输出应显示所有节点和资源均处于 ONLINE 状态。
查看集群资源状态:
crsctl stat res -t
11. 安装 Oracle 11g 数据库软件
11.1 下载 Oracle 11g 数据库软件
从 Oracle 官方网站下载 Oracle Database 11g Release 2 的安装包。确保下载的版本与 Grid Infrastructure 兼容。
11.2 解压安装包
将下载的安装包上传到其中一个节点,并解压到指定目录。
unzip linux_11gR2_database.zip -d /home/oracle/db_install
11.3 配置环境变量
编辑 Oracle 用户的 ~/.bash_profile 文件,添加数据库软件的环境变量。
vi ~/.bash_profile
添加以下内容:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
应用环境变量:
source ~/.bash_profile
11.4 创建数据库安装目录
sudo mkdir -p /u01/app/oracle
sudo chown -R oracle:oinstall /u01/app/oracle
sudo chmod -R 775 /u01/app/oracle
11.5 启动安装程序
切换到 Oracle 用户,并启动数据库安装程序。
su - oracle
cd /home/oracle/db_install
./runInstaller
11.6 安装向导操作
按照 Oracle 安装向导的提示进行操作:
-
欢迎页面:点击
Next。 -
系统类与安装群集:选择
Advanced System Class并勾选Install database software only。 -
软件位置:指定
ORACLE_HOME目录,如/u01/app/oracle/product/11.2.0/dbhome_1。 -
选择安装类型:选择
Real Application Clusters installation。 -
配置 Grid Infrastructure Home:
- 选择已安装的 Grid Infrastructure 目录 (
GRID_HOME)
- 选择已安装的 Grid Infrastructure 目录 (
-
预安装检查:
- 安装向导会进行预安装检查,确保系统满足所有要求
-
开始安装:
- 确认所有设置后,开始安装过程
-
执行脚本:
- 系统会提示您以 root 用户身份运行一些脚本。切换到 root 用户,并执行指定的脚本。
sudo /u01/app/oraInventory/orainstRoot.sh sudo /u01/app/oracle/product/11.2.0/dbhome_1/root.sh -
完成安装:
- 安装完成后,向导会提示验证和配置步骤
12. 创建和配置 Oracle RAC 数据库
安装完成 Oracle Grid Infrastructure 和 Oracle 11g 数据库软件后,使用 Database Configuration Assistant (DBCA) 创建 Oracle RAC 数据库。
12.1 启动 DBCA
在 Oracle 用户下,启动 DBCA:
dbca
12.2 使用 DBCA 创建 RAC 数据库
按照安装向导的提示进行操作:
- 欢迎页面:点击
Next。 - 操作选择:选择
Create Database。 - 数据库类型:选择
Real Application Clusters database。 - 数据库识别:
- 全局数据库名称:如
orcl.mydomain.com - 数据库 SID:如
ORCL
- 全局数据库名称:如
- 数据库模板:
- 选择
General Purpose或根据需求选择模板
- 选择
- 创建选项:
- 勾选
Create as a Real Application Clusters database
- 勾选
- 管理集群数据库:
- 选择
Use ASM for database storage(推荐) - 或选择
Use filesystem for database storage,并指定共享存储路径
- 选择
- 数据库文件位置:
- 如果选择 ASM,指定 ASM 磁盘组
- 如果选择文件系统,指定 NFS 或共享存储路径
- 内存和处理器配置:
- 根据系统资源分配内存和 CPU
- 管理选项:
- 配置 Enterprise Manager(可选)
- 数据库标识:
- 设置 SYS、SYSTEM 等账户的密码
- 审核选项:
- 根据需求启用或禁用审计功能
- 汇总配置:
- 查看配置摘要,确认无误后点击
Finish开始创建
- 查看配置摘要,确认无误后点击
- 创建过程:
- 安装程序会自动在所有 RAC 节点上创建数据库实例和相关配置
- 完成创建:
- 安装完成后,确认数据库已成功创建,并记录相关信息
12.3 验证 RAC 数据库
-
查看集群状态
crsctl check cluster -all所有节点应处于
ONLINE状态。 -
连接数据库
使用 SQL*Plus 连接到 RAC 数据库:
sqlplus / as sysdba在 SQL*Plus 提示符下,执行以下命令查看实例信息:
SELECT INSTANCE_NAME, HOST_NAME FROM GV$INSTANCE;应显示多个实例对应不同的节点。
-
测试实例间通信
在一个节点上创建表,在另一个节点上查询,确保数据一致性。
13. 后续步骤和验证
13.1 配置自动启动
确保 Oracle Grid Infrastructure 和数据库实例在系统启动时自动启动。
# 设置 Grid Infrastructure 自动启动
sudo systemctl enable oracleasm
sudo systemctl enable oracle-crs.service
# 设置数据库自动启动(使用 SRVCTL)
srvctl enable database -d ORCL
13.2 配置备份策略
使用 RMAN 或其他备份工具配置数据库备份策略,确保定期备份数据库和恢复相关文件。
13.3 配置监听器
使用 Oracle Net Manager 配置监听器,确保客户端能够连接到 RAC 数据库。
netca
按照向导配置监听器并启动相关服务。
13.4 性能调优
根据实际需求,进行数据库和系统的性能调优,如调整内存分配、优化查询等。
14. 常见问题与故障排除
14.1 内核参数不足或不兼容
症状:安装过程中提示内核参数不足,导致安装失败。
解决方案:
- 确认
/etc/sysctl.conf和/etc/security/limits.d/oracle.conf文件包含所有 Oracle 推荐的参数 - 应用内核参数更改后,重启系统以确保生效
sudo reboot
14.2 SSH 无密码登录失败
症状:在运行集群命令或安装程序时,提示无法通过 SSH 连接到其他节点。
解决方案:
- 确认所有节点的
~/.ssh/authorized_keys文件包含正确的公共密钥 - 检查 SSH 服务是否运行,并且网络连接正常
sudo systemctl status sshd
ping node2
- 确保防火墙未阻止 SSH 端口(默认 22 端口)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
14.3 共享存储不可访问
症状:安装 Grid Infrastructure 或数据库软件时,提示无法访问共享存储。
解决方案:
- 确认共享存储设备(如 iSCSI、SAN)已正确配置和挂载
- 在所有节点上,确认共享存储已正确识别和挂载
sudo fdisk -l
df -h | grep <shared_storage>
- 检查存储设备的权限和 Oracle 用户对存储的访问权限
14.4 ASM 磁盘组配置错误
症状:Oracle Grid Infrastructure 安装或 RAC 数据库创建过程中,ASM 磁盘组配置失败。
解决方案:
- 确认 ASM 磁盘组所使用的存储设备已正确配置和挂载
- 使用 ASM 工具检查磁盘组状态
asmcmd lsdg
- 检查 Oracle 用户对 ASM 存储的读写权限
14.5 软件版本不兼容
症状:Oracle 11g 安装过程中,提示某些库或软件包版本不兼容,导致安装失败。
解决方案:
- 确认所有必需的软件包和版本已正确安装
- 根据错误提示,安装缺失或版本不匹配的软件包
- 查看 Oracle 11g 适用于 Oracle Linux 7.9 的兼容性列表
14.6 环境变量配置错误
症状:Oracle 命令无法识别,或无法连接到数据库实例。
解决方案:
- 确认
ORACLE_HOME、GRID_HOME等环境变量已正确设置,并添加到PATH中 - 使用
echo $ORACLE_HOME等命令验证环境变量是否正确 - 确保在执行 Oracle 命令前,使用
source ~/.bash_profile加载环境变量
15. 总结
在 Oracle Linux 7.9 上部署 Oracle 11g RAC 是一个复杂的过程,需要细致的规划和准确的步骤执行。以下是关键步骤的回顾:
-
环境准备:
- 确保硬件和软件要求满足 Oracle RAC 的需求
- 进行网络和主机名规划,配置主机名解析和时间同步
-
安装必要的软件包:
- 安装所有 Oracle 11g 所需的依赖软件包
-
内核参数和系统设置:
- 配置系统的内核参数和安全限制,以支持 Oracle RAC 的运行
-
用户和组管理:
- 创建 Oracle 用户和相关组,并设置适当的权限
-
配置 SSH 无密码登录:
- 实现 RAC 节点之间的无密码 SSH 登录,确保集群通信
-
共享存储配置:
- 配置共享存储设备(如 iSCSI、SAN)并在所有节点上挂载
-
安装 Oracle Grid Infrastructure:
- 部署集群管理和存储管理平台,为 Oracle RAC 提供基础设施
-
安装 Oracle 11g 数据库软件:
- 在 Grid Infrastructure 之上安装数据库软件,为 RAC 数据库的创建打下基础
-
创建和配置 Oracle RAC 数据库:
- 使用 DBCA 工具创建集群数据库,确保多节点实例的协同运行
-
后续步骤和验证:
- 配置自动启动、备份策略、监听器和性能调优,确保数据库的稳定和高效运行
-
故障排除:
- 识别和解决常见的安装和运行问题,确保系统的可靠性
推荐的最佳实践:
- 备份:在进行重大配置更改或安装之前,备份所有重要数据和配置文件
- 文档:详细记录安装过程中的所有步骤和配置,以便未来参考和故障排除
- 测试:在生产环境中部署之前,先在测试环境中验证安装和配置的正确性
- 安全:根据企业安全策略,合理配置防火墙、SELinux 和其他安全措施,而不是完全禁用
通过遵循以上步骤和最佳实践,您可以在 Oracle Linux 7.9 上成功部署和运行 Oracle 11g RAC,为企业提供稳定、高可用的数据库解决方案。
更多推荐




所有评论(0)