背景

在开始讲 Oracle 一键安装脚本之前,我们先简单了解下Oracle单机的通常部署流程:

  • 安装Linux操作系统
  • 配置存储,网络
  • 配置操作系统服务和参数等
  • 配置Oracle相关用户目录等
  • 上传解压安装介质
  • 安装Oracle软件
  • 创建数据库实例
  • 数据库实例优化和配置等

通过上述流程介绍可以发现整个过程的操作步骤涉及很多,如果一行一行命令进行执行安装,即使有标准安装文档,复制粘贴也需要 至少半天 的时间完成整个安装。然而,通过 自动化部署脚本 可以轻松在 1小时以内 完成整个安装过程,并且整个安装过程 无需人工干预

因此自动化部署脚本的由来其实很简单,如上所述:就是为了追求效率,稳定。换种说法就是:偷懒,解放双手。

有句话说得好:“懒人”推动世界的发展

脚本实现

说到脚本的实现,由于日常工作中接触 Linux 系统较多,因此在实现脚本时选择了 Shell命令 进行编写,并且仅支持 Linux 操作系统的安装。

脚本实现过程

  • 大量的 Oracle 安装部署经验
  • 标准的 Oracle 安装实施文档
  • 参考 Oracle 官方文档
  • 熟悉 Shell 命令的使用
  • 严谨的程序逻辑思维
  • 理清 Oracle 安装完整步骤顺序
  • 按功能模块列出 Oracle 安装步骤
  • 通过脚本实现各个功能模块
  • 将所有功能模块组装为一个整体
  • 无数次的安装测试以及调试修改

经过一段漫长的测试和部署之后,成熟版本的 Oracle 一键安装脚本就诞生了!

脚本介绍

下面我们主要介绍下脚本的功能和参数。

功能介绍

  • 支持 Oracle 版本:11GR2、12C、18C、19C
  • 支持 Linux 版本(x86_64):6、7、8
  • 支持安装模式:单机,单机集群,RAC
  • 帮助命令查看参数
  • 安装日志记录
  • 配置操作系统
  • 安装 Grid 软件
  • 安装 Oracle 软件
  • 安装 PSU&&RU 补丁
  • 创建数据库
  • 建库后配置优化

以上列举的功能为主要功能,更多功能将通过参数介绍一一列出。

参数介绍

本脚本通过参数来预配置脚本命令,可通过帮助命令来查看有哪些参数:

通过执行 ./OracleShellInstall --help 可以查看参数介绍!

主要参数如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-i,		--PUBLICIP					PUBLICIP NETWORK ADDRESS
-n, --HOSTNAME HOSTNAME(orcl)
-o, --ORACLE_SID ORACLE_SID(orcl)
-c, --ISCDB IS CDB OR NOT(TRUE|FALSE)
-pb, --PDBNAME PDBNAME
-op, --ORAPASSWD ORACLE USER PASSWORD(oracle)
-b, --ENV_BASE_DIR ORACLE BASE DIR(/u01/app)
-s, --CHARACTERSET ORACLE CHARACTERSET(ZHS16GBK|AL32UTF8)
-rs, --ROOTPASSWD ROOT USER PASSWORD
-gp, --GRIDPASSWD GRID USER PASSWORD(oracle)
-pb1, --RAC1PUBLICIP RAC NODE ONE PUBLIC IP
-pb2, --RAC2PUBLICIP RAC NODE SECONED PUBLIC IP
-vi1, --RAC1VIP RAC NODE ONE VIRTUAL IP
-vi2, --RAC2VIP RAC NODE SECOND VIRTUAL IP
-pi1, --RAC1PRIVIP RAC NODE ONE PRIVATE IP
-pi2, --RAC2PRIVIP RAC NODE SECOND PRIVATE IP
-pi3, --RAC1PRIVIP1 RAC NODE ONE PRIVATE IP
-pi4, --RAC2PRIVIP1 RAC NODE SECOND PRIVATE IP
-puf, --RACPUBLICFCNAME RAC PUBLIC FC NAME
-prf, --RACPRIVFCNAME RAC PRIVATE FC NAME
-prf1, --RACPRIVFCNAME1 RAC PRIVATE FC NAME
-si, --RACSCANIP RAC SCAN IP
-dn, --ASMDATANAME RAC ASM DATADISKGROUP NAME(DATA)
-on, --ASMOCRNAME RAC ASM OCRDISKGROUP NAME(OCR)
-dd, --DATA_BASEDISK RAC DATADISK DISKNAME
-od, --OCRP_BASEDISK RAC OCRDISK DISKNAME
-or, --OCRREDUN RAC OCR REDUNDANCY(EXTERNAL|NORMAL|HIGH)
-dr, --DATAREDUN RAC DATA REDUNDANCY(EXTERNAL|NORMAL|HIGH)
-tsi, --TIMESERVERIP RAC TIME SERVER IP
-txh --TuXingHua Tu Xing Hua Install
-udev --UDEV Whether Auto Set UDEV
-dns --DNS RAC CONFIGURE DNS(Y|N)
-dnss --DNSSERVER RAC CONFIGURE DNSSERVER LOCAL(Y|N)
-dnsn --DNSNAME RAC DNSNAME(orcl.com)
-dnsi --DNSIP RAC DNS IP
-m, --ONLYCONFIGOS ONLY CONFIG SYSTEM PARAMETER(Y|N)
-g, --ONLYINSTALLGRID ONLY INSTALL GRID SOFTWARE(Y|N)
-w, --ONLYINSTALLORACLE ONLY INSTALL ORACLE SOFTWARE(Y|N)
-ocd, --ONLYCREATEDB ONLY CREATE DATABASE(Y|N)
-gpa, --GRID RELEASE UPDATE GRID RELEASE UPDATE(32072711)
-opa, --ORACLE RELEASE UPDATE ORACLE RELEASE UPDATE(32072711)

看到上面的参数,是否感觉参数太多,但是这些参数基本都有用,容我一个个慢慢道来:

-i 全称 PUBLICIP:当前主机用于访问的IP,必填参数

使用方式:-i 10.211.55.100

-n 全称 HOSTNAME:当前主机的主机名,默认值为 orcl。

使用方式:-n orcl

如果选择rac模式,节点1、2主机名自动取为:orcl01、orcl02。

-o 全称 ORACLE_SID:Oracle实例名称,默认值为 orcl。

使用方式:-o orcl

-c 全称 ISCDB:判断是否为CDB模式,11GR2不支持该参数,默认值为FALSE。

使用方式:-c TRUE

-pb 全称 PDBNAME:创建PDB的名称,11GR2不支持该参数。

使用方式:-pb pdb01

-op 全称 ORAPASSWD:oracle用户的密码,默认值为oracle。

使用方式:-op oracle

-b 全称 ENV_BASE_DIR:Oracle基础安装目录,默认值为/u01/app。

使用方式:-b /u01/app

-s 全称 CHARACTERSET:Oracle数据库字符集,默认值为AL32UTF8。

使用方式:-s AL32UTF8

以下为RAC模式安装的参数:

-rs 全称 ROOTPASSWD:root用户的密码,默认值为oracle。

使用方式:-rs oracle

-gp 全称 GRIDPASSWD:grid用户的密码,默认值为oracle。

使用方式:-gp oracle

-pb1 全称 RAC1PUBLICIP:节点一的主机访问IP,必填参数

用方式:-pb1 10.211.55.100

-pb2 全称 RAC2PUBLICIP:节点二的主机访问IP,必填参数

使用方式:-pb2 10.211.55.101

-vi1 全称 RAC1VIP:节点一的主机虚拟IP,必填参数 ,与主机访问IP网段必须相同。

使用方式:-vi1 10.211.55.102

-vi2 全称 RAC2VIP:节点二的主机虚拟IP,必填参数 ,与主机访问IP网段必须相同。

使用方式:-vi2 10.211.55.103

-pi1 全称 :RAC1PRIVIP,节点一的主机私有IP,必填参数 ,可凭借喜好进行自定义。

使用方式:-pi1 10.10.1.1

-pi2 全称 :RAC2PRIVIP,节点二的主机私有IP,必填参数 ,可凭借喜好进行自定义。

使用方式:-pi2 10.10.1.2

-pi3 全称 :RAC1PRIVIP1,节点一的第二个主机私有IP,可选参数 ,可凭借喜好进行自定义。

使用方式:-pi3 1.1.1.1

-pi4 全称 :RAC2PRIVIP1,节点二的第二个主机私有IP,可选参数 ,可凭借喜好进行自定义。

使用方式:-pi4 1.1.1.2

-puf 全称 :RACPUBLICFCNAME,主机的访问IP对应的网卡名称,必填参数 ,节点1,2必须名称一致。

使用方式:-puf eth0

-prf 全称 RACPRIVFCNAME:主机的私有IP对应的网卡名称,必填参数 ,节点1,2必须名称一致。

使用方式:-prf eth1

-prf1 全称 RACPRIVFCNAME1:主机的第二私有IP对应的网卡名称,可选参数 ,节点1,2必须名称一致。

使用方式:-prf1 eth2

-si 全称 RACSCANIP:主机的SCANIP,必填参数 ,与主机访问IP网段必须相同。当配置DNS解析时,最多可支持填写3个IP,通过逗号隔开。

使用方式:-si 10.211.55.104,10.211.55.105,10.211.55.106

-dn 全称 ASMDATANAME:ASM数据盘名称,默认值为DATA。

使用方式:-dn DATA

-on 全称 ASMOCRNAME:ASM裁决盘名称,默认值为OCR。

使用方式:-on OCR

-dd 全称 DATA_BASEDISK:数据盘对应的磁盘名称,必填参数 。支持多块磁盘填写,用逗号隔开。

使用方式:-dd /dev/sdb,/dev/sdc,/dev/sdd

-od 全称 OCR_BASEDISK:裁决盘对应的磁盘名称,必填参数 。支持多块磁盘填写,用逗号隔开。

使用方式:-od /dev/sde,/dev/sdf

-or 全称 OCRREDUN:裁决盘的冗余选项,默认值为EXTERNAL。冗余选项EXTERNAL、NORMAL、HIGH对应磁盘最小数量为1、3、5。

使用方式:-or EXTERNAL

-dr 全称 OCRREDUN:裁决盘的冗余选项,默认值为EXTERNAL。冗余选项EXTERNAL、NORMAL、HIGH对应磁盘最小数量为1、2、3。

使用方式:-dr EXTERNAL

-tsi 全称 TIMESERVERIP:时间同步服务器IP,可选参数 ,根据实际情况进行填写。

使用方式:-tsi 10.211.55.200

-txh 全称 TuXingHua:图形化界面安装,默认值为N。选择Y后将安装图形化界面所需依赖。

使用方式:-txh Y

-udev 全称 UDEV:自动配置multipath+UDEV绑盘,默认值为Y。

使用方式:-udev Y

以下参数为配置DNS解析:

-dns 全称 DNS:配置DNS解析,默认值为N。

使用方式:-dns N

-dnss 全称 DNSSERVER:当前主机配置为DNS服务器,默认值为N。前提是 -dns Y 才生效。

使用方式:-dnss N

-dnsn 全称 DNSNAME:DNS服务器的解析名称,前提是 -dns Y 才生效。

使用方式:-dnsn orcl.com

-dnsi 全称 DNSIP:DNS服务器的IP,前提是 -dns Y 才生效。

使用方式:-dnsi 10.211.55.200

-m 全称 ONLYCONFIGOS:仅配置操作系统参数,默认值为N。值为Y时,脚本只执行到操作系统配置完成就结束,不会进行安装,通常可用于图形化安装的初始化。

使用方式:-m Y

-g 全称 ONLYINSTALLGRID:仅安装Grid软件,默认值为N。

使用方式:-g Y

-w 全称 ONLYINSTALLORACLE:仅安装Oracle软件,默认值为N。

使用方式:-w Y

-ocd 全称 ONLYCREATEDB:仅创建Oracle数据库实例,默认值为N。

使用方式:-ocd Y

-gpa 全称 GRID RELEASE UPDATE:Grid软件的PSU或者RU补丁的补丁号。

使用方式:-gpa 32072711

-opa 全称 ORACLE RELEASE UPDATE:Oracle软件的PSU或者RU补丁的补丁号。

使用方式:-opa 32072711

通过以上的参数介绍,相信大家对脚本的功能已经一览无余了,可以说是非常强大。是不是已经心动不如行动,想要尝试下进行安装了呢?下一章节即将介绍如何使用脚本。