1. 概述
Oracle RAC(Real Application Clusters)是 Oracle 公司针对高可用性和可伸缩性设计的一款技术,在多个物理服务器上运行 Oracle 数据库的集群,并在各节点之间共享数据,提高了系统的扩展性,让用户在实现高可用性和大规模部署方面更加高效。
本文将介绍在 Linux 环境下搭建 Oracle RAC 环境的详细步骤。
2. 安装前准备
2.1 环境准备
在安装 Oracle RAC 之前,需要先准备好以下环境:
至少 2 台服务器,操作系统为 Linux。
一台服务器作为 Oracle Grid Infrastructure(GI)安装的主机,另一台服务器作为 Oracle GI 安装的从机。
Oracle RAC 软件,需要从 Oracle 官网下载,安装前请确保已经正确下载。
Oracle 数据库软件,同样需要从 Oracle 官网下载。
注:Oracle RAC 和 Oracle 数据库软件版本需要相匹配,建议使用最新版本。
2.2 网络规划
在安装 Oracle RAC 前,需要进行网络规划,确保所有节点都能够互联互通。
以下是 Oracle RAC 网络规划的建议:
每台服务器至少有两块网卡,其中一张网卡用于 VIP(Virtual IP address),一张用于公共网络。
在公共网络上设置一个公共 IP 地址,在该 IP 地址上设置 Virtual IP(VIP),该地址将被用作访问 Oracle RAC 集群的主入口。
对于每个节点的私有网络,请使用相同的 IP 地址,并确保可以彼此互通。
3. 安装 Oracle Grid Infrastructure
3.1 创建 Oracle 账户
在安装 Oracle Grid Infrastructure 之前,您需要创建一个运行 Oracle 产品的本地账户。
# 创建名为 oracle 的组
$ sudo groupadd -g 502 oracle
# 创建名为 oracle 的用户
$ sudo useradd -u 502 -g 502 -d /home/oracle -m -s /bin/bash oracle
# 设置 oracle 密码
$ sudo passwd oracle
3.2 软件包安装
在安装 Oracle Grid Infrastructure 之前,需要准备好一些必备的软件包,并进行相关配置。
# 安装必备的软件包
$ sudo 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
# 修改系统内核参数
$ sudo vim /etc/sysctl.conf
# 添加以下内容
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
# 让内核参数生效
$ sudo sysctl -p
3.3 创建共享磁盘分区
在 Oracle RAC 集群中,共享存储数据通常由多个节点访问。在多个节点之间共享的共享存储数据必须存储在共享磁盘分区上。
以下是创建共享磁盘分区的步骤:
使用 fdisk 命令创建分区。
使用 mkfs 命令格式化分区,如: mkfs -t ext4 /dev/sdb1。
挂载分区:
sudo mkdir /u01
sudo chown oracle:oinstall /u01
3.4 Oracle 用户环境配置
在安装 Oracle Grid Infrastructure 之前,需要配置 Oracle 用户的环境变量。
# 修改 oracle 用户的 .bash_profile 文件
$ vim .bash_profile
# 添加以下内容
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/grid
export ORACLE_SID=+ASM
export PATH=$PATH:/usr/sbin:$ORACLE_HOME/bin
# 让环境变量生效
$ source .bash_profile
3.5 开始 Oracle Grid Infrastructure 安装
在完成上述步骤后,您可以通过以下步骤开始 Oracle Grid Infrastructure 安装:
解压下载的 Oracle Grid Infrastructure 软件包。
使用 grid 用户登录到所有节点并启动安装程序,如:./runInstaller。
根据向导提示,完成 Oracle Grid Infrastructure 的安装。
4. 安装 Oracle 数据库
4.1 Oracle 账户和环境准备
在安装 Oracle 数据库之前,您需要创建一个运行 Oracle 产品的本地账户。
# 创建名为 oracle 的用户
$ sudo useradd -u 502 -g 502 -d /home/oracle -m -s /bin/bash oracle
# 设置 oracle 密码
$ sudo passwd oracle
# 修改 oracle 用户的 .bash_profile 文件
$ vim .bash_profile
# 添加以下内容
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0.2/db_1
export ORACLE_SID=orcl
export PATH=$PATH:/usr/sbin:$ORACLE_HOME/bin
$ source .bash_profile
4.2 开始 Oracle 数据库安装
在完成上述步骤后,您可以通过以下步骤开始 Oracle 数据库的安装:
解压下载的 Oracle 数据库软件包。
使用 oracle 用户登录到所有节点,并启动安装程序,如:./runInstaller。
根据向导提示,完成数据库的安装。
5. 创建 Oracle RAC
在完成 Oracle Grid Infrastructure 和 Oracle 数据库的安装之后,您可以创建一个 Oracle RAC 集群。
5.1 创建 Clusterware
Clusterware 是 Oracle RAC 的关键组成部分,它管理整个集群环境。
# 使用 grid 用户登录到主节点并启动 Oracle Clusterware 服务
$ crsctl start crs
# 在主节点上创建 Clusterware,并在所有节点上启动 Clusterware
$ srvctl add nodeapps -n <nodename>
$ srvctl start nodeapps
5.2 创建数据库实例
使用 dbca 工具创建 Oracle 数据库实例。
# 使用 oracle 用户登录到主节点并启动 dbca
$ dbca
# 根据向导提示创建数据库实例
5.3 创建 RAC 数据库
在完成上述步骤后,您可以通过以下步骤创建一个 RAC 数据库:
# 使用 grid 用户登录到主节点并启动 Oracle Clusterware 服务
$ crsctl start crs
# 创建 RAC 数据库
$ srvctl add database -d <dbunique> -o /u01/app/oracle/product/12.1.0.2/db_1 -p /u01/app/oracle/product/12.1.0.2/db_1/dbs/orapw <dbunique> -c <list_of_clusters> -r <number_of_instances> -s OPEN
6. 总结
本文介绍了在 Linux 上安装 Oracle RAC 的详细步骤,从环境准备到软件安装,再到创建 RAC 数据库,针对每个步骤进行了详细的讲解。希望这篇文章对您有所帮助。