暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux平台Oracle RAC安装部署教程

DB SQL 学习号 2021-05-14
3061

RAC是real application clusters的缩写,译为“实时应用集群”。

现实应用中Oracle RAC简易架构图为:

第1章 环境概述

本处使用虚拟机在 linux 环境下安装Oracle。版本说明见下表:

 

序号

名称

版本

说明

 

1.

 

虚拟机

VMware® Workstation 12 Pro 12.5.2 build-

4638234


 

2.

 

linux 操作系统

Red Hat Enterprise Linux Server release 7.0

(Maipo)1


3.

内核

3.10.0-514.el7.x86_64

升级后版本

 

4.

 

Oracle

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 -

64bit  Production


第2章 配置规划

配置规划主要分成虚拟机、共享磁盘、网络、CTSS、节点等效配置。现针对各部分进行说明:

2.1虚拟机配置

需针对每个虚拟机(以下统称为节点)分配 4G 内存、50G 硬盘容量、2 个桥接网卡。

2.2共享磁盘配置

1、 创建目录 F:\VMDisk\Sharedisk,此步骤一定要做,否则后面创建共享磁盘时会报错,如下图所示:

新建共享磁盘,在 VM 安装目录(本处为 D:\VMware\VMware Workstation) 下执行:

3、点击 rac01 的设备配置界面,点击添加按钮

4、硬件类型选择硬盘

5、虚拟磁盘类型选择默认的即可

6、磁盘选择使用现有虚拟磁盘

7、选择待添加的共享磁盘

8、转换现有虚拟磁盘格式


9、点击高级按钮

10、虚拟磁盘选择不和系统磁盘在一个通道上面,模式选择独立à永久

11、同样操作针对rac02的设备配置界面。   

12、 配置节点rac01、rac02的vmx虚拟机配置文件,在行末位增加如下行:scsi1:0.deviceType = "disk" scsi1:1.deviceType = "disk" scsi1:2.deviceType = "disk" scsi1:3.deviceType = "disk" scsi1:4.deviceType = "disk" disk.locking = "false"

diskLib.dataCacheMaxSize = "0"

diskLib.dataCacheMaxReadAheadSize = "0"

diskLib.DataCacheMinReadAheadSize = "0"

diskLib.dataCachePageSize = "4096" diskLib.maxUnsyncedWrites = "0"

13、启动两个节点,以root账号执行fdisk -l命令查看磁盘情况,如下图所示:

2.3 网络配置

RAC 系统中需要双网络,一个为公共的网络环境,一个为私有的网络环境。而每个节点上有四种IP 的概念,其中:public ip、virtual ip、SCAN ip 需在同一个网络网段内。

现针对各种IP 进行说明:

序号

IP 类型

说明

 

1.

 

public ip

公有  IP,一般用于管理员,用来确保可以操作到正确的机器,更多时候,名为真实 IP 可能相对来说比较好

理解。该 IP 类似于单示例数据库  IP。

2.

virtual ip

也称为vip,用于实现故障转移,当一个节点发生故

障时,其 vip 会浮动到另外一个正常的节点。

 

3.

 

private ip

该 IP 为 RAC 中节点之间数据同步用的私网 IP,用于

心跳同步,属于 RAC  内部之间通信。这个对于用户层面,可以直接忽略

 

4.

 

SCAN2 ip

该 IP 的作用,当客户端(如 jdbc,pl/sql 等)访问数据库时,只需要提供该  IP,Oracle rac 会自动为客户端

分配一个节点,这对客户端来说是透明的。

虚拟机各节点网络规划如下:

节点名称

public ip

virtual ip

private ip

SCAN  ip

rac01

10.10.10.10

10.10.10.11

192.168.1.10

10.10.10.100

rac02

10.10.10.20

10.10.10.21

192.168.1.20

配置rac01和rac02节点上的各个网卡配置如下图:

rac01:

rac02:

配置完毕后,在两个节点上分别 ping 对方的私有和公有 ip,看是否能通。

4、在各个节点上编辑/etc/hosts 文件,增加如下内容:

5、NTP配置

如果需要配置请自行百度,本文不详细讲解。

6、配置 DNS

如果需要配置请自行百度,本文不详细讲解。

7、两个节点上关闭防火墙

执行 systemctl stop firewalld.service 。

执行 chkconfigfirewalld off 。

2.3关闭 SELINUX

分别在两个节点上执行如下操作:

将 SELINUX配置项的值设置为 disabled,修改后保存并重启两个节点服务器。

第3章 安装预备

3.1配置交换空间

1、用 dd 命令创建文件

dd if=/dev/zeroof=/var/swapfile bs=1024 count=2097152

2、 将 1、步骤创建的文件创建为 Linux Swap 虚拟交换文件

mkswap/var/swapfile

3、 激活并使用/war/swapfile 交换文件

swapon/var/swapfile

4、 设置系统启动后自动激活虚拟交换文件,编辑/etc/fstab 文件,增加如下行:

/var/swapfile   swap    swap     defaults   00

3.2 创建账号

在两节点上均进行如下图操作:

并设置oracle和grid用户密码:passwd oracle;passwd grid。

3.3 设置环境变量

要在两个节点上都要执行

3.3.1 oracle用户环境变量

切换到oracle用户下 su - oracle

 修改.bash_profile,增加如下内容: 

export TMP=/tmp   

export TMPDIR=$TMP 

--rac01 节点 

export ORACLE_SID=RACDB1 

--rac02 节点 

export ORACLE_SID=RACDB2  

export ORACLE_BASE=/u01/app/oracle 

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 

export TNS_ADMIN=$ORACLE_HOME/network/admin 

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib  

export 

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/j lib  

PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/sbin:$ORACLE_HOME/bin export PATH

umask 022 

配置后如下图:

3.3.2 grid用户环境变量

切换到grid用户下 su - grid

 修改.bash_profile,增加如下内容: 

export TMP=/tmp  

export TMPDIR=$TMP  

--rac01 节点 

export ORACLE_SID=+ASM1

--rac02 节点 

export ORACLE_SID=+ASM2 

export ORACLE_BASE=/u01/app/grid 

export ORACLE_HOME=/u01/app/11.2.0/grid 

export PATH=/usr/sbin:$PATH  

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib 

export 

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/j lib 

export 

PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/sbin:$ORACLE_HOME/bin umask 022 

配置后如下图:

3.4创建目录

1、使用root用户创建目录

mkdir -p  u01/app/11.2.0/grid 

mkdir -p u01/app/grid 

mkdir -p u01/app/oracle 

2、文件权限设置

chown grid:oinstall u01/app/11.2.0/grid 

chown grid:oinstall u01/app/grid 

chown oracle:oinstall u01/app/oracle 

chmod -R 775 /u01/ 

chown -R grid:oinstall /u01

3.5配置操作系统相关限制

1、配置limits.conf

执行 vi /etc/security/limits.conf 命令编辑 limits.conf

2、配置login配置文件 

limits.conf 是 pam_limits.so 的 配置文件,然后/etc/pam.d/下的应用程序调用pam_***.so 模块。譬如说,当用户 访问服务器,服务程序将请求发送到PAM 模块,PAM 模块根据服务名称在/etc/pam.d 目 录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的 PAM 模块进行处理 。

1、 为了确保上述 limits.conf 文件能被使用; 

2、 需执行 vi /etc/pam.d/login 命令编辑配置文件,增加如下行: 

session    required     pam_limits.so 

如下图:

3、内核配置文件 sysctl.conf 

执行 vi /etc/sysctl.conf 命令编辑内核配置文件,增加如下配置项:

fs.aio-max-nr = 1048576 

fs.file-max = 6815744 

kernel.shmall = 2097152 

kernel.shmmax = 1054472192 

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 = 1048586 

net.ipv4.tcp_wmem = 262144 262144 262144 net.ipv4.tcp_rmem = 4194304 4194304 4194304

 保存退出,执行 sysctl -p 命令使其生效

3.6配置ASM

Oracle 为 Linux 操作系统提供了 ASM 库驱动程序,不需进行原始设备绑定之类的步骤,在安装任何 Oracle 数据库软件之前,必须安装 ASM 库驱动程序。每个 Linux 平台有 3 个包可供使用。每个包都为不同内核提供驱动程序,必须为正在运行的内核安装合适的包。其中:

  • oracleasmlib 包

提供实际 ASM 库

  • oracleasm-support 包

提供用于配置和启动 ASM 驱动程序的使用工具

  • 核心驱动包

为 ASM 库提供核心驱动程序

两个节点上均执行如下操作

1、 ASM 安装需要三个包,按安装顺序为:

oracleasm-support

kmod-oracleasm

oracleasmlib

2、根据操作系统版本下载 oracleasm-support、oracleasmlib

https://www.oracle.com/linux/technologies/asmlib/

下载文件

oracleasm-support-2.1.8-3.el7.x86_64.rpm 

oracleasmlib-2.0.12-1.el7.x86_64.rpm

3、根据操作系统内核版本下载 kmod-oracleasm

http://rpm.pbone.net/index.php3

下载文件

kmod-oracleasm-2.0.8-17.el7.x86_64.rpm

4、上传asm包到两个节点上并安装

rpm -ivh oracleasm-support-2.1.8-3.el7.x86_64.rpm

rpm -ivh kmod-oracleasm-2.0.8-17.el7.x86_64.rpm

rpm -ivh oracleasmlib-2.0.12-1.el7.x86_64.rpm

3.7共享磁盘分区 

因为是共享磁盘,在一个节点上执行即可:

1、 根据业务要求将共享磁盘进行分区 

fdisk /dev/sdb 

fdisk /dev/sdc 

fdisk /dev/sdd 

fdisk /dev/sde 

fdisk /dev/sdf

2、 共享磁盘操作完毕,结果如下所示

3、配置 ASM 磁盘

 在两个节点上执行/etc/init.d/oracleasm configure 命令配置

执行如下命令创建 ASM 磁盘(在任意节点执行即可)

/etc/init.d/oracleasm createdisk VOL1 /dev/sdb1

/etc/init.d/oracleasm createdisk VOL2 /dev/sdc1 

/etc/init.d/oracleasm createdisk VOL3 /dev/sdd1 

/etc/init.d/oracleasm createdisk VOL4 /dev/sde1 

/etc/init.d/oracleasm createdisk VOL5 /dev/sdf1 

执行/etc/init.d/oracleasm scandisks 扫描 ASM 磁盘

执行/etc/init.d/oracleasm listdisks 列出 ASM 磁盘看是否被识别

此时,可以在/dev/oracleasm/disks 目录下查看到创建的 ASM 磁盘

第4章 安装 Grid Infrastructure

4.1 安装 grid 依赖包 

安装 grid 依赖包如下表所示:

序号

Oracle 必需

实际安装

1.

make-3.80

make-3.82-21.el7

2.

binutils-2.15.92.0.2

binutils-2.23.52.0.1-16.el7

3.

gcc(x86_64)-3.4.6

gcc(x86_64)-4.8.2-16.el7

4.

libaio(x86_64)-0.3.105

libaio(x86_64)-0.3.109-12.el7

5.

glibc(x86_64)-2.3.4-2.41

glibc(x86_64)-2.17-55.el7

6.

compat-libstdc++-33(x86_64)-3.2.3

compat-libstdc++-33(x86_64)-3.2.3-  72.el7

7.

elfutils-libelf(x86_64)-0.97

elfutils-libelf(x86_64)-0.158-3.el7

8.

elfutils-libelf-devel-0.97

elfutils-libelf-devel-0.158-3.el7

9.

glibc-common-2.3.4

glibc-common-2.17-55.el7

10.

glibc-devel(x86_64)-2.3.4

glibc-devel(x86_64)-2.17-55.el7

11.

glibc-headers-2.3.4

glibc-headers-2.17-55.el7

12.

gcc-c++(x86_64)-3.4.6

gcc-c++(x86_64)-4.8.2-16.el7

13.

libaio-devel(x86_64)-0.3.105

libaio-devel(x86_64)-0.3.109-12.el7

14.

libgcc(x86_64)-3.4.6

libgcc(x86_64)-4.8.2-16.el7

15.

libstdc++(x86_64)-3.4.6

libstdc++(x86_64)-4.8.2-16.el7

16.

libstdc++devel(x86_64)-3.4.6

libstdc++-devel(x86_64)-4.8.2-16.el7

17.

sysstat-5.0.5

sysstat-10.1.5-4.el7

18.

pdksh-5.2.14

pdksh-5.2.14-37.el5_8.1

19.

expat(x86_64)-1.95.7

expat(x86_64)-2.1.0-8.el7

4.2 预检查 

本章节操作以 grid 账号进行: 

1、 执行 unzip p13390677_112040_Linux-x86-64_3of7.zip 将 grid 安装包解压缩。

2、 进入到 grid 安装包目录,本处为/home/grid/grid。 

3、 安装之前可使用 Oracle 提供的检查环境工具 :

./runcluvfy.sh stage -pre crsinst -n rac01,rac02 -fixup -verbose

4.3 安装 Grid Infrastructure 

1、 进入到 grid 安装目录下,本处为:/home/grid/grid

2、 执行./runInstaller 命令启动安装界面 

注意:需做如下操作:

SCAN Name 配置项需与/etc/hosts 文件中 scan ip 的配置项一致 去掉 Configure GNS 的勾选 

如下为本处/etc/hosts 文件的配置供参考

点击 Add 按钮,将 rac02 的相关配置添加其中,需保持跟/etc/hosts 文件中内容一致,并输入OS Password并点击Test和Setup

根据实际业务需要匹配网段和对应的接口类型。

根据业务需要命名 Disk Group Name Redundancy 选择 External 

选择 ORCL:VOL1、ORCL:VOL2、ORCL:VOL3

本处保持默认配置

如果 OSDBA、OSOPER、OSASM 组相同,会弹出如下的提示,直接点击 Yes 即可

Oracle Base 设置为:/u01/app/oracle Software Location 

设置为:/u01/app/11.2.0/grid 

保持跟.bash_profile 文件中配置一致即可。

如果缺少包可以使用yum安装

安装过程中需要执行两个脚本,在两个节点上使用root用户执行。

查看状态

安装完成

第5章 安装 database

5.1 创建磁盘组 

1、 以 grid 账号登录到任意节点; 

2、 执行 asmca 命令,弹出如下界面 

3、 点击 Create 按钮,弹出创建磁盘组界面

根据实际业务需要填写磁盘组名称(本处填写 FRA)、选择对应的 Redundancy (冗余模式)

点击 OK 按钮

照着上述方式再创建 DATA 磁盘组

4、 操作完毕,最终结果如下图:

5.2 安装数据库软件 

1、oracle账号进入到 database 安装目录下,本处为:/home/oracle/database

2、 执行./runInstaller 命令启动安装界面 

本处因为 DNS 设置的问题。出现如下的提示,直接勾选 Ignore All 即可。

以 root 账号执行在 rac01 和 rac02 服务器上执行如下脚本 /u01/app/oracle/product/11.2.0/db_1/ root.sh 

5.3 配置 RAC 数据库

以 oracle 账号执行 dbca 命令,打开数据库创建界面

选择 Use Oracle-Managed Files,Databse Area 选择+DATABASEDATA 

如果弹出如下界面,输入实际密码即可。

Fast Recovery Area 设置为+FRA,其他保持默认即可

到这里就已经全部安装完成。


使用SQL*Plus连接rac数据库

登录成功。

文章转载自DB SQL 学习号,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论