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

Oracle--安装部署四(安装Oracle Grid Infrastructure for a New Cluster)

原创 周波 云和恩墨 2022-10-14
2466

0.主机节点信息概述

  openfiler的安装指南可以参考:图形界面安装openfiler指南

openfiler.zb.com  
硬盘:/dev/sda(50G) /dev/sdb (30G) /dev/sdc(30G) /dev/sdd(30G) eth0:192.168.209.150/24 

主机一:
oracle1.zb.com 
硬盘:/dev/sda(50G) 
ens33:10.0.0.80/24 
ens37:192.168.209.128/24 
OS:CentOS 7.6 
内存:4G(如果有条件设置内存>=8G,相应的swap大小也为8G) 

主机二:oracle3.zb.com 
硬盘:/dev/sda(50G) 
ens33:10.0.0.81/24 
ens37:192.168.209.129/24 
OS:CentOS7.6 
内存:4G 

## 配置完成openfiler之后,在oracle1和oracle2上都执行如下命令 
### 1.扫描openfiler iscsi控制器 
[root@oracle1 ~]# iscsiadm -m discovery -t st -p 192.168.209.150 
192.168.209.150:3260,1 iqn.2006-01.com.openfiler:tsn.50b2e856ab3d 
### 2.配置iSCSI的配置文件 
[root@oracle1 ~]# vim /etc/iscsi/iscsid.conf 
node.session.auth.username = iqn.2006-01.com.openfiler:tsn.50b2e856ab3d
node.session.auth.password = 50b2e856ab3d 
### 3.启动服务 
[root@oracle1 ~]# systemctl enable iscsi.service 
[root@oracle1 ~]# systemctl start iscsi.service 
### 4.验证 
[root@oracle1 ~]# ll /dev/sd* 
brw-rw---- 1 root disk 8, 0 Oct 14 10:05 /dev/sda 
brw-rw---- 1 root disk 8, 1 Oct 14 10:05 /dev/sda1 
brw-rw---- 1 root disk 8, 2 Oct 14 10:05 /dev/sda2 
brw-rw---- 1 root disk 8, 16 Oct 14 13:50 /dev/sdb 
brw-rw---- 1 root disk 8, 32 Oct 14 13:50 /dev/sdc 
brw-rw---- 1 root disk 8, 48 Oct 14 13:50 /dev/sdd 
## 安装相关依赖包 
yum install -y bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat cvuqdisk

  如果没有注册的DNS服务,可以搭建一个本地的DNS服务。【可以参考在Linux本地搭建DNS服务器(CentOS 7.6)

1.创建组、用户、Oracle Grid Infrastructure路径

#创建相关组 
groupadd -g 54321 oinstall # 必须 
groupadd -g 54322 dba # 必须 
groupadd -g 54323 oper 
groupadd -g 54324 backupdba 
groupadd -g 54325 dgdba 
groupadd -g 54326 kmdba 
groupadd -g 54330 racdba 
groupadd -g 54331 asmdba # 必须 
# 创建用户 
useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle 
echo oracle123 | passwd --stdin oracle 
useradd -u 54331 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper grid 
echo grid123| passwd --stdin grid 
# 创建相关路径 
mkdir -p /u01/app/oraInventory 
chown -R oracle.oinstall /u01/app/oraInventory 
# grid home path 
mkdir -p /u01/app/19.3.0/grid 
# grid base path 
mkdir -p /u01/app/grid 
# oracle base path 
mkdir -p /u01/app/oracle 
# oracle home path 
mkdir -p /u01/app/oracle/product/19.3.0.0/dbhome_1 
chown -R grid:oinstall /u01 
chown -R oracle:oinstall /u01/app/oracle 
chmod -R 775 /u01/

2.设置用户资源限制

vim /etc/security/limits.conf 
oracle soft nofile 1024 
oracle hard nofile 65536 
oracle soft nproc 2047 
oracle hard nproc 16384 
oracle soft stack 10240 
oracle hard stack 32768 
grid soft nofile 1024 
grid hard nofile 65536 
grid soft nproc 2047 
grid hard nproc 16384 
grid soft stack 10240 
grid hard stack 32768

3.设置系统内核参数

vim /etc/sysctl.conf
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2684354560
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 = 1048576

sysctl -p

4.关闭透明大页

echo never > /sys/kernel/mm/transparent_hugepage/enabled
# 在引导命令行中添加参数transparent_hugepage=never
[root@oracle1 ~]# vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos_oracle1/root rd.lvm.lv=centos_oracle1/swap rhgb quiet numa=off transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"

# 重新生成配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg

5.关闭selinux服务

setenforce 0 
vim /etc/selinux/config 
SELINUX=disabled

6.配置用户环境变量

# 查看shell类型
[root@oracle3 ~]# echo $SHELL
/bin/bash

su - oracle
vim .bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
umask 022
source .bash_profile

su - grid
vim .bash_profile
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
umask 022
source .bash_profile

7.为独立服务器的Oracle Grid Infrastructure配置存储

  用于独立服务器的Oracle Grid Infrastructure,也称为Oracle Restart,为单实例Oracle数据库提供系统支持。ASM是Oracle数据库文件的卷管理器和文件系统,支持单实例Oracle数据库和Oracle Real Application Clusters (Oracle RAC)配置。Oracle自动存储管理还支持一个通用的文件系统,以满足您的应用程序需要,包括Oracle数据库二进制文件。Oracle自动存储管理是Oracle推荐的存储管理解决方案。它提供了传统卷管理器和文件系统的替代方案。

说明
  如果您想使用Oracle ASM或Oracle Restart,则必须在安装和创建数据库之前为独立服务器安装Oracle Grid Infrastructure。否则,您必须手动注册Oracle Restart数据库。

  不能在Oracle Grid Infrastructure集群成员节点上安装Oracle Restart,也不能向Oracle Grid Infrastructure集群成员节点添加Oracle Restart服务器。Oracle Restart支持一台服务器上的单实例数据库,而Oracle Grid Infrastructure for a Cluster支持集群上的单实例或Oracle RAC数据库。

(1)为Oracle自动存储管理配置存储

1)确认Oracle自动存储管理的存储需求

  要确定使用Oracle ASM的存储需求,必须确定需要的设备数量和可用磁盘空间量。

为了完成上述任务,我们可以执行下述步骤:

  • a、确定是否要对Oracle数据库文件、恢复文件或两者都使用Oracle ASM。Oracle数据库文件包括数据文件、控制文件、重做日志文件、服务器参数文件和密码文件。
      在数据库安装过程中,您可以选择一个文件系统或Oracle ASM作为Oracle数据库文件的存储机制。同样,您还可以选择一个文件系统或Oracle ASM作为恢复文件的存储机制。

说明:
  您不必为Oracle数据库文件和恢复文件使用相同的存储机制。可以对一种文件类型使用文件系统,而对另一种文件类型使用Oracle ASM。
  如果您选择Oracle ASM作为Oracle数据库文件的存储选项,那么根据您的选择在指定恢复选项屏幕中,您有以下恢复选项:
  选项一:如果您为恢复文件选择了Oracle ASM选项,那么对于Oracle数据库文件和恢复文件Oracle通用安装程序仅为您提供了使用相同磁盘组的选项。
  选项二:如果您决定在数据库安装期间不启用恢复,那么在数据库安装之后,您可以修改DB_RECOVERY_FILE_DEST参数来启用快速恢复区域

2)为你创建的每个Oracle ASM磁盘组选择使用的Oracle ASM冗余级别

  为Oracle ASM磁盘组选择的冗余级别决定了Oracle ASM如何镜像磁盘组中的文件,并决定了您所需要的磁盘数量和磁盘空间大小,如下所示:

  • a,外部冗余(External redundancy
      此选项不允许Oracle ASM镜像磁盘组的内容。Oracle建议当磁盘组包含提供自身数据保护的设备(如RAID设备)或当数据库不需要不间断的数据访问时,选择此冗余级别。

  • b,正常冗余(Normal redundancy
      为了在正常的冗余磁盘组中优化性能和可靠性,Oracle ASM默认对数据文件使用双向镜像,对控制文件使用三向镜像。此外,还可以为磁盘组中的各个文件选择镜像特征。
      如果使用双向镜像,一个正常的冗余磁盘组至少需要两个故障组(或两个磁盘设备)。正常的冗余磁盘组中的有效磁盘空间为其所有设备的磁盘空间之和的一半。
      对于大多数安装,Oracle建议您使用正常的冗余磁盘组。在Oracle Exadata上,Oracle建议您使用高冗余磁盘组来增加保护以避免故障。

  • c,高冗余(High redundancy

  磁盘组的内容默认为三向镜像。如果需要创建高冗余度的磁盘组,则必须指定至少3个故障组(至少3个设备)。
  尽管高冗余磁盘组提供了高级别的数据保护,但在决定使用这种冗余级别之前,必须先考虑存储设备较高的额外成本。

  • d,弹性冗余(Flex redundancy

  弹性冗余磁盘组是一种新的磁盘组类型,具有灵活的文件冗余、镜像分割和冗余更改等特性。弹性磁盘组可以将具有不同冗余要求的文件合并到一个磁盘组中。它还为数据库提供了更改其文件冗余的功能。
  对于数据库数据,可以选择不镜像(未保护)、双向镜像(已镜像)或三向镜像(高)。一个弹性冗余磁盘组至少需要3个磁盘设备(或3个故障组)。

  • e,扩展冗余(Extended redundancy

  扩展冗余磁盘组具有与弹性冗余磁盘组类似的特性,配置Oracle扩展集群时可以使用扩展冗余。扩展冗余扩展Oracle ASM数据保护,通过在每个站点的不同故障组中放置足够的数据副本来覆盖故障站点。

3)确定数据库文件和恢复文件所需的磁盘空间总量

  如果系统上正在运行Oracle ASM实例,那么您可以使用现有的磁盘组来满足这些存储需求。如果需要,可以在数据库安装过程中将磁盘添加到已有的磁盘组中。

4)确定分配单元大小

  每个Oracle ASM磁盘被划分为AU (allocation unit)。AU是磁盘组内的基本分配单元。根据磁盘组的兼容性级别,“AU Size”的取值范围为1、2、4、8、16、32或64MB。对于弹性磁盘组,默认的AU大小为4MB。对于外部冗余、普通冗余和高冗余,默认的AU大小为1MB。

5)对于Oracle Clusterware安装,还必须为Oracle ASM元数据添加额外的磁盘空间。您可以使用以下公式计算OCR和投票文件以及Oracle ASM元数据的磁盘空间需求(以MB为单位):
total = [2 * ausize * disks] + [redundancy * (ausize * (all_client_instances + nodes + disks + 32) + (64 * nodes) + clients + 543)]

redundancy = 镜像数: external = 1, normal = 2, high = 3, flex = 3.
ausize = 元数据AU大小(以兆为单位)
all_client_instance = 所有数据库客户端和ACFS代理实例的总和
nodes = 集群中的节点数
clients - 每个节点的数据库实例数
disks - 磁盘组中的磁盘数。
6)为Oracle ASM磁盘组设备标识故障组(可选项)

  如果您打算使用普通或高冗余磁盘组,那么您可以通过在自定义故障组中关联一组磁盘设备来进一步保护数据库不受硬件故障的影响。缺省情况下,每个设备都包含在故障组中。但是,如果一个正常冗余磁盘组中的两个磁盘设备连接到同一个HBA (Host Bus Adapter)卡上,如果适配器故障,则该磁盘组将不可用。本例中的HBA为单点故障。
  例如,为了避免这种类型的故障,可以使用两个HBA fabric路径,每个路径有两个磁盘,并为连接到每个适配器的磁盘定义一个故障组。这种配置将使磁盘组能够容忍一个HBA卡fabric路径的故障。

  说明您可以在安装Oracle Grid Infrastructure期间定义自定义故障组。您还可以在安装后使用GUI工具ASMCA、命令行工具asmcmd或SQL命令定义故障组。如果定义了自定义故障组,则必须为普通冗余磁盘组指定至少两个故障组,为高冗余磁盘组指定至少三个故障组。

7)如果您确定系统上不存在合适的磁盘组,则安装或标识适当的磁盘设备并添加到新磁盘组中。可以使用下面的指南选择适当的磁盘设备:
  • a、磁盘设备必须为执行Oracle Grid Infrastructure安装的用户所有
  • b、Oracle ASM磁盘组中的所有设备必须具有相同的大小和相同的性能特性。
  • c、不要将单个物理磁盘上的多个分区指定为磁盘组设备。Oracle ASM要求每个磁盘组设备位于单独的物理磁盘上。
  • d、尽管可以将逻辑卷指定为Oracle ASM磁盘组中的设备,但Oracle不建议使用逻辑卷,因为这会增加一层复杂性,而这在Oracle ASM中是不必要的。Oracle建议,如果选择使用逻辑卷管理器,则使用逻辑卷管理器来表示单个逻辑单元号(LUN),而不进行分条或镜像,这样可以将对附加存储层的存储性能的影响降至最低。
  • e、Oracle RAC不支持非共享逻辑分区。要为Oracle RAC数据库使用逻辑分区,必须使用由逻辑卷管理器(如fdisk)创建的共享逻辑卷。

(2)Oracle 群件存储空间需求

  在安装Oracle独立集群期间,如果您为网格基础设施管理存储库(GIMR)创建MGMT磁盘组,那么安装程序要求您使用至少有35 GB可用空间的磁盘组。

  说明:从Oracle Grid Infrastructure 19c开始,配置GIMR对于Oracle Standalone Cluster部署是可选的。当升级到Oracle Grid Infrastructure 19c时,只有源Grid home配置了GIMR,才会创建新的GIMR。

  根据您想要安装的集群配置,Oracle Clusterware空间需求因不同的冗余级别而不同。下表列出了每种集群配置和冗余级别的空间需求:

使用GIMR配置的Oracle独立集群的最小可用空间要求

冗余级别 数据磁盘组 MGMT磁盘组 Oracle Fleet Patching and Provisioning Total Storage
External 1 GB 28 GB Each node beyond four:5 GB 1 GB
Normal 2 GB 56 GB Each node beyond four:5 GB 2 GB
High/Flex/Extended 3 GB 84 GB Each node beyond four:5 GB 3 GB

说明

  • a、DATA磁盘组存储OCR和投票文件,MGMT磁盘组存储GIMR和Oracle Clusterware备份文件
  • b、Oracle建议对GIMR和Oracle Clusterware备份文件使用单独的磁盘组,而不是DATA。
  • c、Oracle独立集群的初始GIMR规模最多为4个节点。对于添加到集群中的新节点,您必须为包含GIMR和Oracle Clusterware备份文件的磁盘组添加额外的存储空间。
  • d、默认情况下,所有新的Oracle独立集群部署都配置了Oracle Fleet patch和Provisioning,仅用于对该集群进行补丁。这种部署需要一个最小的ACFS文件系统,它自动配置在与GIMR相同的磁盘组中。

未配置GIMR的Oracle独立集群最小可用空间要求

冗余级别 数据磁盘组 Oracle Fleet Patching and Provisioning Total Storage
External 1 GB 1 GB 2 GB
Normal 2 GB 2 GB 4 GB
High/Flex/Extended 3 GB 3 GB 6 GB

(3)关于网格基础设施管理存储库

  每个Oracle域服务集群都包含一个网格基础设施管理存储库(GIMR),但GIMR配置对于Oracle独立集群是可选的。
  网格基础设施管理存储库(GIMR)或管理数据库(MGMTDB)是一个多租户数据库,为每个集群的GIMR提供一个可插入数据库(PDB)。GIMR存储了集群的以下信息:

  • a、集群健康监控器收集的实时性能数据
  • b、集群健康顾问(一个工具)收集的故障、诊断和度量数据
  • c、Oracle Clusterware收集的所有资源的集群范围的事件
  • d、服务质量管理器(QoS)收集的工作负载性能和CPU架构数据
  • e、Oracle Fleet Patching and Provisioning所需要的元数据

  从Oracle Grid Infrastructure 19c开始,配置GIMR对于Oracle Standalone Cluster部署是可选的。Oracle独立集群在Oracle ASM磁盘组或共享文件系统上本地托管GIMR;这个GIMR是一个多租户数据库,只有一个可插入数据库(PDB)。
  全局GIMR运行在Oracle域服务集群中。Oracle域服务集群本地托管在一个单独的Oracle ASM磁盘组中的GIMR。Oracle数据库成员集群使用位于Oracle域服务集群上的远程GIMR。在远程集群上托管GIMR可以减少在集群上运行额外的基础设施存储库的开销。Oracle域服务集群的GIMR是一个具有一个PDB的多租户数据库,并且每个添加的成员集群都有额外的PDB。

  当您配置Oracle域服务集群时,安装程序会提示为GIMR配置一个单独的Oracle ASM磁盘组,默认名称为MGMT。

(4)指定Oracle ASM磁盘发现字符串

  使用Oracle Enterprise Manager Cloud Control或Oracle ASM命令行工具(asmcmd)识别现有磁盘组,并确定磁盘组中是否有足够的可用空间。
  当一个Oracle ASM实例被初始化时,Oracle ASM会发现并检查所有磁盘的内容,这些磁盘都位于你在ASM_DISKSTRING初始化参数中指定的路径中。

  ASM_DISKSTRING初始化参数的值是一个依赖于操作系统的值,Oracle ASM使用它来限制发现进程用于搜索磁盘的路径集。发现字符串的确切语法取决于平台、ASM Lib库以及是否使用Oracle Exadata磁盘。操作系统接受的路径名总是可用作发现字符串。

(5)使用Oracle ASMFD配置存储设备路径持久化

  Oracle ASM Filter Driver (Oracle ASMFD)维护存储文件路径持久性,并帮助保护文件不被意外覆盖。
  在安装Oracle Grid Infrastructure过程中,您可以选择安装和配置Oracle自动存储管理筛选驱动程序(Oracle ASMFD)。Oracle ASMFD有助于防止磁盘组中Oracle ASM磁盘和文件损坏
  Oracle ASM Filter Driver (Oracle ASMFD)拒绝非Oracle软件发出的写I/O请求。这个写过滤器有助于防止具有管理权限的用户无意中覆盖Oracle ASM磁盘,从而防止磁盘组中的Oracle ASM磁盘和文件损坏。对于磁盘分区,假设分区表不受用户的影响,磁盘上受保护的区域是Oracle ASMFD管理的区域。
  Oracle ASMFD简化了磁盘设备的配置和管理,无需在每次系统重启时重新绑定使用Oracle ASM磁盘设备。
  如果Oracle ASMLIB存在于您的Linux系统中,那么在安装Oracle Grid基础设施之前,请删掉Oracle ASMLIB,这样您就可以选择在Oracle网格基础设施安装过程中安装和配置Oracle ASMFD。

警告当您配置Oracle ASM(包括Oracle ASMFD)时,不要修改或删除Oracle ASM磁盘的内容,或者修改任何文件,包括配置文件。

说明Oracle ASMFD支持Linux x86-64和Oracle Solaris操作系统。

(6)在Oracle ASM中对数据库文件使用磁盘组

  查看此信息,为Oracle Clusterware和Oracle数据库文件配置Oracle自动存储管理(Oracle ASM)存储。

1)创建Oracle数据库文件目录

  执行以下步骤,将Oracle数据库或恢复文件放在Oracle基目录之外的单独文件系统上:

  • a、使用以下命令确定每个挂载文件系统上的可用磁盘空间:
df -h
  • b、从显示中标识要使用的文件系统
Option Description
Database Files 选择以下之一:
一个文件系统,至少有1.5 GB的空闲磁盘空间
两个或两个以上的文件系统,总空闲磁盘空间至少为3.5 GB
Recovery Files 选择一个至少有2GB空闲磁盘空间的文件系统
  • c、记住所标识的文件系统的挂载点目录的名称。
  • d、创建数据库文件和恢复文件目录
## 数据库文件
mkdir -p /u01/oradata/
chown oracle:oinstall /u01/oradata/
chmod 775 /u01/oradata
# 数据库文件的默认目录为“$ORACLE_BASE/oradata”。

## 恢复文件目录(快速恢复区域)
mkdir -p /u01/oradata/rcv_area
chown oracle:oinstall /u01/oradata/rcv_area
chmod 775 /u01/oradata/rcv_area
# 默认的快速恢复区域为$ORACLE_BASE/fast_recovery_area。

  Oracle建议您将快速恢复区域与数据库文件目录放在单独的物理磁盘上。如果包含数据的磁盘因任何原因不可用,此方法使您能够使用快速恢复区域来检索数据。

8.安装Oracle Grid Infrastructure

  Oracle Grid Infrastructure软件以映像的形式提供,可从Oracle Technology Network网站或Oracle Software Delivery Cloud门户网站下载。在大多数情况下,您使用Oracle Universal Installer提供的图形用户界面(GUI)来安装该软件。您还可以使用Oracle Universal Installer来完成静默模式安装,而不需要使用GUI。您还可以为后续的Oracle网格基础设施和Oracle数据库部署使用Oracle Fleet Patching and Provisioning 。

(1)基于映像的Oracle网格基础设施安装

  通过基于映像的安装,简化了Oracle Grid Infrastructure软件的安装和配置。
  要安装Oracle Grid Infrastructure,请使用必要的用户组权限创建新的Grid home,然后将映像文件解压缩到新创建的Grid Home中,并运行安装向导来注册Oracle Grid Infrastructure产品。
  此安装特性简化了安装过程,并支持大规模自定义部署的自动化。在使用必要的版本更新(RUs)或版本更新修订(RURs)为基础版本软件打补丁后,还可以使用此安装方法部署定制映像。

说明您必须将映像软件解压到您想要放置您的Grid home的目录中,然后运行gridSetup.sh脚本来启动Oracle Grid Infrastructure Setup Wizard。确保您创建的Grid主目录路径符合Oracle Optimal Flexible Architecture的建议。

实践操作如下:

# 0.如果你没有额外的硬盘,关闭虚拟机,为其添加两块大小都为30G的硬盘,然后启动虚拟机
[root@oracle3 ~]# ll /dev/sd*
brw-rw---- 1 root disk 8,  0 Sep 28 13:34 /dev/sda
brw-rw---- 1 root disk 8,  1 Sep 28 13:34 /dev/sda1
brw-rw---- 1 root disk 8,  2 Sep 28 13:34 /dev/sda2
brw-rw---- 1 root disk 8, 16 Sep 28 13:34 /dev/sdb
brw-rw---- 1 root disk 8, 32 Sep 28 13:34 /dev/sdc
brw-rw---- 1 root disk 8, 32 Sep 28 13:34 /dev/sdd
## 修改/dev/sdb和/dev/sdc的属主为grid
chown grid.dba /dev/sd[b-d]

## 将命令写到/etc/rc.local中
vim /etc/rc.local
chown grid.dba /dev/sd[b-d]
chmod +x /etc/rc.d/rc.local

# 1.从Oracle Software Delivery Cloud Portal下载软件
## 这里下载的是Oracle Database Grid Infrastructure 19.3.0.0.0

# 2.将软件压缩包上传Linux中并解压
mkdir /install
chown oracle.oinstall /install
su - grid
cd /install
unzip V982068-01.zip -d $ORACLE_HOME

# 3.使用Oracle ASM命令行工具(ASMCMD)为Oracle ASM Filter Driver提供磁盘设备使用。
cd $ORACLE_HOME/bin
# 查看asmcmd中子命令的帮助信息的方法asm(ASM Filter Driver)
asmcmd help
asmcmd help afd_label

asmcmd afd_label DATA1 /dev/sdb --init
asmcmd afd_label DATA2 /dev/sdc --init
asmcmd afd_label DATA3 /dev/sdd --init
## afd_label:为指定的磁盘设置给定的标签名
## --init:在初始化阶段设置AFD标签

# 4.验证设备已被标记给Oracle ASMFD使用
asmcmd afd_lslbl /dev/sdb
asmcmd afd_lslbl /dev/sdc
asmcmd afd_lslbl /dev/sdd
[grid@oracle3 /u01/app/19.3.0/grid/bin]$ ./asmcmd afd_lslbl /dev/sdb
--------------------------------------------------------------------------------
Label                     Duplicate  Path
================================================================================
DATA1                                 /dev/sdb
[grid@oracle3 /u01/app/19.3.0/grid/bin]$ ./asmcmd afd_lslbl /dev/sdc
--------------------------------------------------------------------------------
Label                     Duplicate  Path
================================================================================
DATA2                                 /dev/sdc


## 特别注意:除了下载软件在Oracle3主机上操作,其他操作两台主机上都要执行。
# 5.设置DISPLAY变量,然后执行gridSetup.sh脚本
cd $ORACLE_HOME
# 关闭客户机访问当前服务器的X服务的访问控制(root用户执行)
xhost +
# 如果你是远程连接,IP可以设置为访问远程主机的主机IP
su - grid
export DISPLAY=10.0.0.1:0.0
./gridSetup.sh

命令执行完之后会在当前客户端出现一系列的屏幕向导:

1)选择配置选项
  • a、Configure Oracle Grid Infrastructure for a New Cluster
      选择此选项可在一组节点上为群集软件配置Oracle Grid Infrastructure,以便您可以在这些节点上激活Oracle Clusterware软件。
    选中该选项,下一步:
2)集群配置

提供了四个选项:
a、Oracle Standalone Cluster
  Oracle独立集群本地托管所有Oracle Grid Infrastructure服务和Oracle ASM,需要直接访问共享存储。Oracle真实应用程序(Oracle RAC)集群,由两个或多个集群成员节点组成。安装完成后,您可以根据实际负载情况修改节点数量。
  Oracle独立集群包含多个集群节点。Oracle独立集群中的节点数量最多可达64个。集群节点可以承载不同类型的应用程序。Oracle独立集群节点之间紧密连接,可以直接访问共享存储。共享存储本地挂载在每个Oracle Standalone Cluster节点上,所有节点都可以使用Oracle ASM实例或共享文件系统位置。
  如果在安装期间配置了GIMR, Oracle Standalone Clusters将在本地托管Grid Infrastructure Management Repository (GIMR)。
  部署Oracle独立集群时,还可以选择将其配置为Oracle扩展集群。

b、Oracle Cluster Domain和Oracle Domain Services Cluster
  Oracle Cluster Domain是新集群的一种部署架构选择,在Oracle Clusterware 12c Release 2中引入。
  Oracle Cluster Domain使您能够标准化、集中和优化私有数据库云的Oracle Real Application Clusters (Oracle RAC)部署。为了管理目的,多个集群配置被分组到一个Oracle集群域中,并在该Oracle集群域中使用可用的共享服务。Oracle集群域中的集群配置包括Oracle域服务集群和Oracle成员集群。
  Oracle域服务集群为Oracle集群域中的其他集群提供集中的服务。这些服务包括:

  • 一个集中的网格基础设施管理存储库(包含Oracle集群域中每个集群的MGMTDB)
  • 跟踪文件分析器(TFA)服务,用于为Oracle集群和Oracle数据库收集有针对性的诊断数据
  • 统一Oracle ASM存储管理服务,包括使用Oracle ACFS。

  Oracle域服务集群为Oracle成员集群提供这些集中的服务。Oracle成员集群使用这些服务进行集中管理,并减少本地资源的使用
  当配置Oracle域服务集群时,必须配置两个独立的Oracle ASM磁盘组,一个用于Oracle Clusterware数据,另一个用于网格基础设施管理存储库(GIMR)。

下图来源Oracle官网:

c、Oracle Member Cluster
  Oracle成员集群使用来自Oracle域服务集群的集中服务,可以托管数据库或应用程序。Oracle成员集群可以有两种类型——Oracle数据库的Oracle成员集群或应用程序的Oracle成员集群。
  Oracle成员集群不需要直接连接到共享磁盘。使用共享的Oracle ASM服务,他们可以利用网络连接到IO服务或ACFS远程服务来访问集中管理的存储池。为了从Oracle域服务集群中使用共享的Oracle ASM服务,成员集群需要连接到Oracle域服务集群的Oracle ASM网络。
  Oracle成员集群不能向其他集群提供服务。例如,不能将成员集群配置为GNS服务器或Oracle Fleet patch and Provisioning服务。

  • Oracle数据库的成员集群
      Oracle数据库的Oracle成员集群支持Oracle RAC或Oracle RAC One Node数据库实例。该集群向管理存储库服务注册并使用集中的TFA服务。它可以根据需要使用其他服务。Oracle数据库成员集群可以配置本地Oracle ASM存储管理,也可以使用Oracle域服务集群提供的统一的Oracle ASM存储管理服务。
      Oracle数据库的Oracle成员集群总是使用来自其Oracle域服务集群的远程网格基础设施管理存储库(GIMR)。对于双节点或四节点集群,在远程集群上托管GIMR可以减少在集群上运行额外基础设施存储库的开销。

  • Oracle应用程序成员集群
      Oracle应用程序成员集群作为Oracle集群域的一部分,托管Oracle数据库以外的应用程序。Oracle成员集群需要连接到Oracle集群域服务,以实现集中管理和资源再利用。Oracle成员集群使用远程Oracle ASM存储,并通过Oracle ACFS远程服务提供任何所需的共享存储。此集群配置支持任何软件应用程序的高可用性。

说明在运行Oracle通用安装程序之前,您必须通过创建成员集群清单文件为Oracle成员集群指定Oracle域服务集群配置细节。Oracle成员集群不支持Oracle数据库12.1或更早版本,其中Oracle成员集群配置了直接或间接的Oracle ASM存储。

  • d、Oracle Extended Cluster
      Oracle扩展集群由位于多个站点节点组成。
    这里选中【Configure an Oracle Standalone Cluster】,然后点击【Next】:

3)Grid Plug and Play Information

在“Cluster Name”和“Scan Name”字段中,为您的集群和集群scan输入在整个企业网络中唯一的名称。
创建本地SCAN(single client access name):
  单客户端访问名(SCAN)是一个主机名,用于为客户端提供对集群的访问服务。SCAN名称必须解析为至少一个地址。而且SCAN名称对应的IP不能被其他主机占用,为完成该步,我们新起一个会话,配置oracle3的主机解析文件:
这里为集群中添加两个节点,对于oracle1的配置,如oracle3主机一样:

[root@oracle3 ~]# vim /etc/hosts
10.0.0.80 oracle1.zb.com
10.0.0.81 oracle3.zb.com
10.0.0.82 scan.zb.com  # 是SCAN名称,其对应的IP可以随便起一个

配置如下,这里并没有配置GNS,点击【next】,会对SCAN名称进行验证:

4)集群节点信息配置

配置说明:
在集群节点表的Public Hostname列中,您应该看到本地节点主机名,例如node1.example.com。
配置的一些额外信息说明:
a、仅对于本地节点,OUI会自动填写公共和VIP字段。如果您的系统使用供应商集群软件,那么OUI可能会填充其他字段。
b、主机名和虚拟主机名不是域限定的。如果您在安装期间在地址字段中提供了一个域,那么OUI将从地址中删除该域。
c、为私有IP地址标识为私有接口不能作为公共接口访问。使用公共接口进行缓存融合可能会导致性能问题。
d、输入公共节点名称时,请使用每个节点的主主机名。换句话说,使用/bin/hostname命令显示的名称。
通过点击【Add】可以为集群添加其他节点。
什么叫虚拟的主机名呢?
  虚拟主机名是指与虚拟IP地址相关联的主机名。如果选择手动配置虚拟IP地址,而不是启用自动配置,则需要提供集群成员的虚拟主机名。
  为所有集群节点提供一个在DNS中注册的虚拟IP (VIP)主机名,或者不提供。如果没有可用的DNS,则应在系统主机文件中记录虚拟主机名和VIP地址。

VIP地址应该满足如下要求:
a、该IP地址和主机名目前未使用(它可以在DNS中注册,但通过ping命令不能被访问)。
b、VIP与您的公共网卡接口在同一个子网中,与单个客户机访问名(SCAN)地址在同一个子网中
为了完成此步,我们继续编辑oracle3主机的/etc/hosts文件,如下所示:

[root@oracle3 ~]# vim /etc/hosts
10.0.0.80 oracle1.zb.com
10.0.0.210 oracle1-vip.zb.com
10.0.0.81 oracle3.zb.com
10.0.0.211 oracle3-vip.zb.com
10.0.0.82 scan.zb.com

配置完之后,集群节点信息、以及SSH connectivity信息(grid grid123,配置之后点setup)如下图所示:

点击【Next】,会对你的相关配置做验证。

5)指定网卡的用途

说明:
  virbr0 是 KVM 默认创建的一个 Bridge,其作用是为连接其上的虚机网卡提供 NAT 访问外网的功能。
virbr0 默认分配了一个IP 192.168.122.1,并为连接其上的其他虚拟网卡提供 DHCP 服务。
最开始我的主机只有一个网卡,信息如下:

之后我重新添加了一个网卡,(注意一定要配置一个private接口)

然后点击【Next】:

注意:这一步需要关闭防火墙。对于网卡ens37,我们将其用于ASM和private

6)存储选项

这里选择【Use Oracle Flex ASM for storage】,然后点击【Next】:
  Oracle Cluster Registry (OCR)和投票磁盘文件用于管理集群。您必须将OCR和投票磁盘放在共享存储上。在Linux和UNIX上,您可以使用Oracle自动存储管理(Oracle ASM)或共享文件系统来存储OCR和投票磁盘文件,而在Windows上,必须将它们放在Oracle ASM上。

7)Grid Infrastructure Management Repository

  作为集群运行状况监视器(CHM)服务器监视器服务的一部分,网格基础设施管理存储库可以作为网格基础设施安装的一部分进行可选配置。网格基础设施管理存储库是一个Oracle数据库,它从所有集群成员节点收集数据,并对每个集群成员节点的操作系统数据进行分析,以确定整个集群的资源问题。GIMR收集和分析的数据存储在共享存储上。
这里我选择【Yes】,然后点击下一步:

8)为GIMR选择磁盘组

  对于Oracle独立集群,您可以将网格基础设施管理存储库(GIMR)和Oracle Clusterware文件放在同一个Oracle ASM磁盘组上,也可以选择在单独的Oracle ASM磁盘组上配置。

这里选择【No】,点击【Next】:

9)创建ASM磁盘组

配置说明:
a、在“Disk Group Name”字段中,输入磁盘组的名称,例如“DATA”。
b、为该磁盘组选择“冗余级别”。推荐使用Normal。(注意:选择冗余级别为Normal至少提供三个磁盘。)
c、如果您想使用Oracle ASM Filter Driver (Oracle ASMFD)来管理您的Oracle ASM磁盘设备,请选择Configure Oracle ASM Filter Driver选项。
  如果您正在Linux系统上安装,并且希望使用Oracle ASM筛选驱动程序(Oracle ASMFD)来管理您的Oracle ASM磁盘设备,那么在开始安装Oracle Grid Infrastructure之前,必须卸载Oracle ASM库驱动程序(Oracle ASMLIB)。
  由于本平台(centos-release-7-6.1810.2.el7.centos.x86_64)并不支持ASMFD,所以就取消勾选【Configure Oracle ASM Filter Driver】
配置如下,然后点击【Next】:

10)指定ASM密码

  为Oracle ASM SYS和ASMSNMP帐户选择相同的密码(这里设置为oracle123),或为每个帐户指定不同的密码,然后单击【Next】:

11)故障隔离支持选项

  智能平台管理接口(IPMI, Intelligent Platform Management Interface)规范定义了一组计算机硬件和固件的通用接口,系统管理员可以使用这些接口监视系统运行状况和管理服务器。
这里选中【Do not use Intelligent Platform Management Interface (IPMI)】,然后点击【Next】:

12)指定管理选项

  如果您的企业安装了企业管理器云控制(Enterprise Manager Cloud Control),那么选择【Register with Enterprise Manager (EM) Cloud Control】并提供EM配置信息。如果您的企业中没有安装企业管理器云控制,那么单击【Next】:

13)特权操作系统组

接受默认的操作系统组名管理Oracle ASM,并单击【Next】:

14)指定安装路径

15)指定Inventory目录

  如果你的主机是第一次安装Oracle软件,那么你需要指定一个目录用于存放安装元数据文件(例如:安装日志文件),这个目录我们称之为”Inventory directory“,在该目录中,安装程序会自动为每一个产品创建一个子目录用于存放清单(Inventory)数据。

16)执行root脚本

不配置自动执行配置脚本,然后点击【Next】:

17)先决条件检查

  如果任何一个检查的状态为失败且不可修复,则必须手动纠正这些问题。在您修复了该问题之后,您可以单击【Check Again】按钮,让安装程序重新检查需求并更新状态。重复操作,直到所有检查的状态都为”Succeeded”。当然,也可以先点击【Fix & Check Again】,按要求使用root用户执行相关脚本。

  在这里并不是没有出现问题,例如对于系统内存的要求为至少8G,我这里只有4G,对于warning我们可以不管,

配置完之后继续检查:

  还是有一个Failed:该任务检查节点间/etc/resolv.conf文件的一致性,这项检查会使用/etc/resolv.conf文件中记录DNS服务来解析集群中各个主机,但是我的/etc/resolv.conf中有多个DNS:

[root@oracle3 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain zb.com
nameserver 10.0.0.81
nameserver 114.114.114.114
nameserver 192.168.209.1

  我把配置文件中的下面两个nameserver删掉,再次检查就好了,勾选上【Ignore All】,然后点击【Next】:

18)Summary

点击【Save Response File】保存响应文件,然后点击【Install】:

19)开始安装产品

手动执行相关脚本:

## 使用root用户在两个节点上分别执行下面两个脚本
/u01/app/oraInventory/orainstRoot.sh
/u01/app/19.3.0/grid/root.sh
## 最开始没有使用openfiler共享磁盘
#在节点Oracle1上执行root.sh脚本报如下错:
CRS-1705: Found 0 configured voting files but 1 voting files are required, terminating to ensure data integrity; 
# 使用openfiler共享磁盘后问题解决

集群验证失败,如下所示:

失败记录如下所示:

 Verifying Daemon 'ntpd' ...FAILED
    PRVG-1024 : The NTP daemon or Service was not running on any of the cluster
    nodes.Verifying Daemon 'chronyd' ...FAILED
    PRVG-1024 : The NTP daemon or Service was not running on any of the cluster
    nodes.
    
## 解决:在两个节点上都执行如下命令,启动相关服务
systemctl start ntpd
systemctl start chronyd 

点击【Retry】,继续执行最后一步【Oracle Cluster Verification utility】:

20)安装完成

点击【Close】。

安装Grid之后,会在两个节点上创建并启动ASM实例(实例名:oracle3:+ASM1,oracle1:+ASM1):

SQL> select instance_name,status from v$instance; 

INSTANCE_NAME	 STATUS
---------------- ------------
+ASM1		 STARTED
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-15000: command disallowed by current instance type

## 而且该实例不允许挂载使用

# 集群日志位于$ORACLE_HOME/diag/crs/oracle3/crs/trace目录下

  强烈建议将内存调大点(官网推荐至少8G),4G的内存虽然能完成安装,但是交换分区使用的非常多,由于内存不够,导致一些资源并没有启动。
  Oracle Grid Infrastructure安装完成后,您可以在集群节点上安装Oracle Database以获得高可用性,或者安装Oracle RAC,创建数据的方法可以参考Oracle—安装部署二(通过Oracle Database Preinstallation RPM安装Oracle 19.3.0.0)
  在安装完Oracle Grid Infrastructure之后,再安装Oracle数据库,安装时灵活的选择Oracle RAC相关选项。

最后修改时间:2024-01-15 21:18:23
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论