前言

本文将演示如何使用脚本一键安装 Oracle 11GR2 RAC 2 节点数据库的全过程。

安装前准备

在生产环境中,Linux 操作系统和网络一般不是由 DBA 来配置,为了更贴合生产使用,本脚本仅用于安装 Oracle 数据库,请提前安装好 Linux 操作系统。

环境信息

主机版本

主机内存

磁盘空间

数据库版本

PSU补丁版本

OJVM补丁版本

OPatch补丁版本

Centos7.6

32G

115G

11GR2(11.2.0.4)

31718723

31668908

11.2.0.3.34

IP 规划(所有节点)

节点

PubIP

PrivIP

VirIPI

SCANIP

1

193.1.3.1

1.1.1.1

193.1.3.4

193.1.3.10

2

193.1.3.2

1.1.1.2

193.1.3.5

193.1.3.10

## 节点一
[root@luciferdb03:/soft]# nmcli connection show
NAME UUID TYPE DEVICE
eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0
eth1 658ca23d-769c-4a6f-a541-c236a412224d ethernet eth1

[root@luciferdb03:/soft]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 193.1.3.1 netmask 255.255.255.0 broadcast 193.1.3.255
inet6 fe80::eda:41ff:fe1d:ed3f prefixlen 64 scopeid 0x20<link>
ether 0c:da:41:1d:ed:3f txqueuelen 1000 (Ethernet)
RX packets 48758 bytes 9657994 (9.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 43755 bytes 9826085 (9.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 1.1.1.1 netmask 255.255.255.0 broadcast 1.1.1.255
inet6 fe80::eda:41ff:fe1d:f204 prefixlen 64 scopeid 0x20<link>
ether 0c:da:41:1d:f2:04 txqueuelen 1000 (Ethernet)
RX packets 10229514 bytes 15316863202 (14.2 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4215800 bytes 7159447755 (6.6 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

## 节点二
[root@luciferdb04:~]# nmcli connection show
NAME UUID TYPE DEVICE
eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0
eth1 a8df8168-4427-4d8f-a472-da212e2d5a09 ethernet eth1

[root@luciferdb04:~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 193.1.3.2 netmask 255.255.255.0 broadcast 193.1.3.255
inet6 fe80::eda:41ff:fe1d:ae3c prefixlen 64 scopeid 0x20<link>
ether 0c:da:41:1d:ae:3c txqueuelen 1000 (Ethernet)
RX packets 43103 bytes 8675612 (8.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 38950 bytes 8375054 (7.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 1.1.1.2 netmask 255.255.255.0 broadcast 1.1.1.255
inet6 fe80::eda:41ff:fe1d:9aed prefixlen 64 scopeid 0x20<link>
ether 0c:da:41:1d:9a:ed txqueuelen 1000 (Ethernet)
RX packets 10615410 bytes 11308390297 (10.5 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4025025 bytes 16239792705 (15.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

在执行脚本之前,必须提前配置好 ​​Public​​​ 和 ​​Private​​ 地址。

ASM 磁盘规划(所有节点)

磁盘组

设备名称

数量

大小

冗余度

配置方式

OCR

/dev/sdd,/dev/sde,/dev/sdf

3

10G

NORMAL

multipath+udev

DATA

/dev/sdb,/dev/sdc

2

60G

EXTERNAL

multipath+udev

ARCH

/dev/sda

1

50G

EXTERNAL

multipath+udev

## 节点一
[root@luciferdb03:/soft]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 50G 0 disk
sdb 8:16 0 60G 0 disk
sdc 8:32 0 70G 0 disk
sdd 8:48 0 10G 0 disk
sde 8:64 0 10G 0 disk
sdf 8:80 0 10G 0 disk
sr0 11:0 1 10G 0 rom
vda 252:0 0 128G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 127G 0 part
├─centos-root 253:0 0 114.1G 0 lvm /
└─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
loop0 7:0 0 10G 0 loop /mnt

## 节点二
[root@luciferdb04:~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 50G 0 disk
sdb 8:16 0 60G 0 disk
sdc 8:32 0 70G 0 disk
sdd 8:48 0 10G 0 disk
sde 8:64 0 10G 0 disk
sdf 8:80 0 10G 0 disk
sr0 11:0 1 10G 0 rom
vda 252:0 0 128G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 127G 0 part
├─centos-root 253:0 0 114.1G 0 lvm /
└─centos-swap 253:1 0 7.9G 0 lvm [SWAP]

在执行脚本之前,必须提前挂载好共享存储,脚本会自动配置多路径和udev

上传介质(节点一)

首先,使用 ​​ssh​​​ 工具连接到节点一 Linux 主机,创建一个存放安装介质的目录,比如:​​mkdir /soft​​,然后上传安装所需的介质!

📢 注意:

  • 1、安装介质只需要在节点一上传,节点二无需上传任何介质;
  • 2、在 RHEL/OEL/Centos 7 版本安装 Oracle 11GR2 RAC 时,必须要上传​​18370031​​ 补丁,否则安装失败;
11G     CentOS-7-x86_64-Athena-1904.iso ## 操作系统镜像
160K OracleShellInstall ## 一键安装脚本
1.3G p13390677_112040_Linux-x86-64_1of7.zip ## 11GR2 Database 安装包1
1.1G p13390677_112040_Linux-x86-64_2of7.zip ## 11GR2 Database 安装包2
1.2G p13390677_112040_Linux-x86-64_3of7.zip ## 11GR2 Grid 安装包
167M p18370031_112040_Linux-x86-64.zip ## 11GR2 Grid BUG 修复补丁(必须)
47M p31668908_112040_Linux-x86-64.zip ## 11GR2 DB OJVM 补丁
1.3G p31718723_112040_Linux-x86-64.zip ## 11GR2 Grid PSU 补丁
120M p6880880_112000_Linux-x86-64.zip ## 11GR2 OPatch 补丁
276K rlwrap-0.42.tar.gz ## 优化 sqlplus、rman 的翻页小插件

上传好以上安装介质就完成了第一步☝。

挂载 ISO 镜像(所有节点)

安装 Oracle 数据库需要安装一些 rpm 的依赖包,需要使用 ​​yum​​ 命令来安装,这就需要挂载 ISO 镜像来配置本地 YUM 源:

mount

这里只需要执行 mount 命令挂载到 ​​/mnt​​​ 目录下即可,配置好本地 YUM 源后,脚本里会自动配置 repo,执行 ​​df -h | grep mnt​​ 看到如下输出即代表成功挂载:

[root@orcl soft]# df -h | grep mnt
/dev/loop0 11G 11G 0 100% /mnt

📢 注意:如果不挂载 ISO 执行脚本,会提示:​​The iso file is not mounted on system​​!

执行一键安装(节点一)

安装 2 节点 RAC

做好上述准备工作之后,进入安装介质所在目录 ​​/soft​​​,在 ​​root​​ 用户下执行一键安装命令:

./OracleShellInstall -n luciferdb `# hostname prefix`\
-hn luciferdb03,luciferdb04 `# rac node hostname`\
-cn luciferdb-cls `# cluster_name`\
-rp password `# root password`\
-gp oracle `# grid password`\
-op oracle `# oracle password`\
-lf eth0 `# local ip ifname`\
-pf eth1 `# rac private ip ifname`\
-ri 193.1.3.1,193.1.3.2 `# rac node public ip`\
-vi 193.1.3.4,193.1.3.5 `# rac virtual ip`\
-si 193.1.3.10 `# rac scan ip`\
-od /dev/sdd,/dev/sde,/dev/sdf `# rac ocr asm disk`\
-or NORMAL \
-dd /dev/sdb,/dev/sdc `# rac data asm disk`\
-ad /dev/sda `# rac arch asm disk`\
-o oradb `# dbname`\
-ds AL32UTF8 `# database character`\
-ns AL16UTF16 `# national character`\
-dp Oracle123Pwd `# sys/system password`\
-gpa 31718723 `# grid PSU/RU`\
-jpa 31668908 `# OJVM PSU/RU`\
-opd Y `# optimize db`

本文演示 2 节点安装,整个安装过程大概需要 ​​90​​ 分钟左右,全程自动安装建库,不需要人工干预,下面我们直接看视频演示:

​RAC:Oracle 11GR2 2 节点数据库一键安装​

RAC:Oracle 11GR2 2节点数据库一键安装