银河麒麟高级服务器操作便捷的系统(ADM64 版)V10(SP1)搭建 Oracle 19c RAC


麒麟软件有限公司
Oracle19c-19.3.0.0 RAC 安装
文档编号 | Ky-jx-2022-03-14 | 日期 | 2022-03-14 |
Advanced Server V10 (SP1)
文档等级 | 内部文件 | 操作系统 | Build20/20210518 |
x86_64
■版权声明 | ©2022 麒麟软件 |

■版权声明
本文档所涉及到的文字、图表等,仅限于麒麟软件有限公司及被呈送方内部使用,未经麒麟软件有限公司
书面许可,请勿扩散到第三方。
CenterOS 7-8就是注:麒麟的内核
■版本变更记录
时间 | 版本 | 说明 | 参与人 |
2022/03/14 | 1.0 | 创建 | 熊佳 |
■适用性声明
本文档用于银河麒麟高级服务器操作系统(ADM64 版)V10(SP1)搭建Oracle 19c RAC。


麒麟软件有限公司
目录
Oracle19c-19.3.0.0 RAC 安装.......................................................................................................... 1
1. 说明..................................................................................................................................................... 1
2. 软件下载............................................................................................................................................. 2
3. 准备工作............................................................................................................................................. 2
3.1. 机器规划................................................................................................................................. 2
3.2. 配置 IP 等相关服务(两节点都需要安装)........................................................................3
3.2.1. 配置主机名.............................................................................................................. 3
3.2.2. 配置 IP......................................................................................................................4
3.2.3. 开启 SSH 服务........................................................................................................ 4
3.2.4. 添加 IP 信息.............................................................................................................4
3.2.5.关闭时间服务.......................................................................................................... 5
3.2.6. 关闭防火墙.............................................................................................................. 5
3.2.7. 关闭SELINUX........................................................................................................ 6
3.3. 检查所需安装包(两节点都需要)..................................................................................... 6
3.4. 修改参数(两节点都需要修改)...............................................................................................6
3.4.1. 修改/etc/sysctl.conf 配置文件........................................................................... 6
3.4.2. 修改/etc/security/limits.conf 配置文件.......................................................... 7
3.4.3. 修改/etc/pam.d/login 配置文件.........................................................................8
3.4.4. 修改/etc/profile 配置文件:................................................................................8
3.4.5. 配置NOZEROCONF.............................................................................................8
3.4.6.添加用户及组.......................................................................................................... 8


麒麟软件有限公司
3.4.7.创建要求的目录...................................................................................................... 9
3.4.8. 配置oracle用户的环境变量................................................................................ 9
3.4.9. 配置 grid用户的环境变量..................................................................................10
3.5. 设置 ssh 信任关系................................................................................................................11
3.5.1. 设置 rsa 和 dsa 加密...........................................................................................11
3.5.2. 编辑authorized_keys 文件............................................................................. 12
3.5.3. 在 rac2 中也进行【3.6.1 设置 rsa 和 dsa 加密】操作.................................12
3.5.4. 传输authorized_keys 文件............................................................................. 12
3.5.5. 在 rac2 中也进行【3.6.2.编辑authorized_keys 文件】操作...................12
3.5.6. 传输authorized_keys 文件............................................................................. 12
3.5.7. 查看authorized_keys 文件............................................................................. 13
3.5.8.测试信赖关系........................................................................................................13
3.6. 创建、配置共享存储(udev)........................................................................................... 14
4.软件安装(只在 rac1 上安装)....................................................................................................17
4.1. 安装介质解压.......................................................................................................................17
4.1.1. 解压 grid...............................................................................................................17
4.1.2. 解压Oracle..........................................................................................................18
4.1.3. 修改cvu_config..................................................................................................18
4.2. 安装 GI..................................................................................................................................18
4.2.1. 安装cvuqdisk..................................................................................................... 18
4.2.2.安装过程需要的包................................................................................................19
4.2.3.运行安装脚本gridSetup.sh..............................................................................20


麒麟软件有限公司
4.2.4. 验证集群................................................................................................................34
4.3. ASM 配置............................................................................................................................... 35
1、 高度冗余(high redundancy):.......................................................................36
2、 默认冗余(normal redundancy):..................................................................36
3、 外部冗余(external redundancy):............................................................... 36
4.4. 安装 ORACLE.......................................................................................................................36
4.5. 创建数据库...........................................................................................................................43
5. 验证及使用.......................................................................................................................................51
5.1. 验证集群、数据库...............................................................................................................51
5.1.1.验证集群是否正常................................................................................................51
5.1.2.检查集群运行状态................................................................................................51
5.1.3. 查看 PDB...............................................................................................................52
5.1.4.查看监听状态........................................................................................................52
5.1.5.查看节点的应用程序............................................................................................53
5.1.6. 查看 ASM 状态..................................................................................................... 54
5.2. 数据库的关闭与启动...........................................................................................................54
5.2.1. 关闭数据库............................................................................................................54
5.2.2. 开启数据库............................................................................................................54
5.3. 数据库使用...........................................................................................................................54
6.相关报错及处理方法.......................................................................................................................56
6.1. 运行./gridSetup.sh 或者安装 Oracle 报错 requires X display 弹不出窗口.........................56
6.2. 报错 PRVG-0282..................................................................................................................57

麒麟软件有限公司
6.3. 报错 INS-06003 INS-06006.................................................................................................58
6.4. 报错 CRS-1705.....................................................................................................................59



麒麟软件有限公司
Oracle19c-19.3.0.0 RAC 安装
1. 说明
RAC集群是由若干物理机组成,每个物理机为一个节点,节点之间依据公 共网络和私有网络连接,其中私有网络的效果是实现节点之间的通信,而公共网 络的效果是提供用户的访问。
在每个节点上分别运行一个Oracle数据库实例和一个监听器。
这些实例经过 CRS(CRS一个典型的“多实例,单数据库”就是通过一系列的进程和服务来保证集群的运行,提 供高可用性)的协助,共同处理一个数据库,架构,数据库被所有节点共享、并行访问。共享存储是 RAC通过架构的核心。数据 库的数据文件、控制文档、参数文件、重做日志材料等等都要放到共享存储上,各节点能够对这些资料进行并行访问。要是其中某个节点发生故障,RAC能够 将连接自动切换到另外一个节点上,无单点故障问题,从而实现应用的无缝切换。
监听器分别监听一个 IP地址上的用户请求,这个地址称为 VIP(Virtual IP)。用户可以向任何一个 VIP所在的数据库服务器发出请求,通过任何一个数据库实 例访问数据库。Clusterware负责监视每个节点的状态,要是发现某个节点出 现故障,便把这个节点上的数据库实例和它所对应的 VIP以及其他资源切换到另 外一个节点上,这样可能保证用户仍然可依据这个 VIP访问数据库。


麒麟软件有限公司
2. 软件下载
https://www.oracle.com/database/technologies/oracle19c-linux-d
ownloads.html
LINUX.X64_193000_db_home.zip数据库文件
LINUX.X64_193000_grid_home.zipgrid 文件
软件包只需传至节点 1 机器。
注:
OCR:oracle集群注册表:存储集群设置,含有所有RAC集群节点的信息。
Voting文件:表决档案:集群出现脑裂时,决定哪个节点获得控制盘。
3. 准备工作
3.1. 机器规划


麒麟软件有限公司
以两节点 RAC为例,两台虚机参考安装内存 8G、CPU 4核、用于存储数 据的磁盘 100G,至少 2个网卡,且网卡名称一致,两张网卡部署 IP 分别为Public IP 地址、Private IP 地址,VIP 地址、SCAN IP地址不要求配置在网卡上。
两台虚机分别作为 RAC 节点 1、节点 2,参考 IP 规划如下:
主机名 | rac1 | rac2 |
Public IP 地址 | 10.66.62.177 | 10.66.62.180 |
VIP 地址 | 10.66.62.181 | 10.66.62.183 |
Private IP 地址 | 200.200.200.201 | 200.200.200.202 |
SCAN IP 地址 | 10.66.62.176 | |
Public IP地址为集群成员节点的主地址,真实 IP;
VIP地址供客户端访问使用,在其节点机器发生故障的时候会自动漂移到另 外正常的节点机器上;
PrivateIP地址供集群节点内互连访问,用于心跳同步;
SCAN IP地址相当于集群主机虚拟 IP,是客户端访问数据库时的公共域名;SCAN IP、VIP 和Public IP必须属于同一子网,Private IP属于另一子网。
注:安装前快照虚机,避免安装出现难题无法还原干净环境。
注:
在麒麟虚拟机上增加心跳地址:
- 在物理机上给以太网口插网线,配IP地址:200.200.200.200,子网掩码:255.255.255.0
- 在VMware->编辑->虚拟网络编辑器->添加网络->VMnet2->桥接模式、已桥接至:Intel(R) I350千兆网络连接
- 在麒麟虚拟机中->开始->控制面板->网络连接->(左下)添加一个新的连接->以太网->新建->连接名称:ens36、设备:ens36->IPv4设置->技巧:手动->添加->地址:200.200.200.201、子网掩码:255.255.255.0->保存
- ping 200.200.200.200
- 在第二台虚拟机上同样管理,配置IP地址200.200.200.202
3.2. 配置 IP 等相关服务(两节点都需配置)3.2.1.配置主机名
在/etc/hostname中修改,重启生效。
rac1rac1
rac2rac2
注:修改主机名:
vim /etc/hostname
A机:rac1
B机:rac2
生效:
systemctl restart NetworkManager


麒麟软件有限公司
3.2.2.配置 IP
添加网络适配器,为桥接模式,即节点为双网卡。
注:两边网卡名称必须一致,例如ens3 ens9
rac1:
ens3 为public ip :10.10.16.172
ens9 为private ip :10.0.17.172
rac2:
ens3 为public ip :10.10.16.173
ens9 为private ip :10.0.17.173
3.2.3.开启 SSH 服务
vim /etc/ssh/sshd_config |
修改
PermitRootLogin yes//默认
PasswordAuthentication yes
systemctl restart sshd重启 ssh 服务 |
3.2.4.添加 IP 信息
在/etc/hosts中添加(节点 1、节点 2 配置同):
10.66.62.177 | rac1 | rac1 | |
200.200.200.201 | rac1-priv | rac1-priv | |

| rac2 | 麒麟软件有限公司 | |||
10.66.62.180 | rac2 | ||||
200.200.200.202
| rac2-priv | rac2-priv | |||
10.66.62.181 | rac1-vip | rac1-vip | |||
10.66.62.182
| rac2-vip | rac2-vip | |||
10.66.62.176
| rac-scan | rac-scan | |||
注:public、vip 和scanip要在同一网端,vip 和scanip为未被占用的 ip 即可,public和private必须在不同子网段。
3.2.5.关闭时间服务
systemctl stop ntpd//默认 |
关闭chronyd,移除chrony配置文件,否则校验 NTP 失败。
systemctl stopchronyd systemctl disablechronyd mv /etc/chrony.conf /etc/chrony.conf.bak |
注:chronyd:优化的时间同步服务。
3.2.6.关闭防火墙
systemctl stop firewalld |

| 麒麟软件有限公司 |
systemctl status firewalld |

3.2.7.关闭SELINUX
注:安全增强型LINUX:对系统进行安全检查。
vim /etc/selinux/config |
修改成SELINUX=disabled
3.3. 检查所需安装包(两节点都应该)
创建YUM源:
1. 加载麒麟安装光盘到/media
mount /dev/sr0 /media
2. 配置YUM源:
cd /etc/yum.repos.d
mv kylin_x86_64.repo kylin_x86_64.repo20231226
vim /etc/yum.repos.d/media.repo
[media]
name=media
baseurl=file:///media
gpgcheck=0
enable=1
3. 创建YUM源:
cd /var/ftp
mkdir yum
cd yum
cp -rf /media/Packages .
cd Packages
createrepo --database .
4. 查看YUM源:
yum list
yum grouplist
要求确认下列包(在安装Oracle时会详细提示缺少哪个包的)已安装。
yum install binutilsgcc gcc-c++glibc glibc-develglibc32 ksh libstdc++-devellibaiolibaio-devellibXextlibXtst libX11libXaulibxcblibXi make sysstatunixODBC unixODBC-develzlib-devel elfutils-libelf elfutils-libelf-devel glibc-headers glibc-common kernel-headers libgcc libgomp libstdc++ numactl-devel sysstat libXau libdmx xorg-x11-utils xorg-x11-xauth libXv libXt libXmu libXxf86misc libXxf86dga libXxf86vm nfs-utils smartmontools libnsl2-devel libnsl –y |
注:分开装,例如:yum install–y gcc
glibc32见E:\Softwares\oracle\LINUX.X64_193000_db_home\rpm\glibc32-2.28-42.1.ky10.x86_64.rpm
rpm –ivh glibc32-2.28-42.1.ky10.x86_64.rpm--nodeps --force
nodeps:不检查依赖关系
force:强制安装
需要手动下载 com
pat-libstdc++-33 的 rpm 进行安装
wget rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm |


麒麟软件有限公司

3.4. 修改参数(两节点都需要修改)
3.4.1.修改/etc/sysctl.conf 配置文件
vim /etc/sysctl.conf |
添加如下:
##============Oracle19c===============
fs.file-max = 6815744//框架能打开的最大档案数
kernel.sem = 250 32000 100 128//最大信号量
kernel.shmmni = 4096//最大共享内存
kernel.shmall = 1073741824//最大共享内存的段数
kernel.shmmax = 4398046511104//共享内存的最大值
kernel.panic_on_oops = 1//在oops执行结束前,是否执行panic
net.core.rmem_default = 262144//内核套接字读缓存区的默认大小
net.core.rmem_max = 4194304//内核套接字读缓存区的最大值
net.core.wmem_default = 262144//内核套接字写缓存区的默认大小
net.core.wmem_max = 1048576//内核套接字写缓存区的最大值
net.ipv4.conf.all.rp_filter = 2//要求反向路由必须可达,否则丢弃数据包
net.ipv4.conf.default.rp_filter = 2//同上一条
fs.aio-max-nr = 1048576//同时拥有异步I/O请求的数目
net.ipv4.ip_local_port_range = 9000 65500//一个IP可用的端口范围
然后执行:
sysctl –p |
3.4.2.修改/etc/security/limits.conf 配置文件
vim /etc/security/limits.conf |
添加如下:
##============Oracle19c===============
oracle soft nproc 2047//单用户可用的最大连接数(超出则警告)


麒麟软件有限公司
oracle hard nproc 16384//单用户可用的最大连接数(超出则报错)
oracle soft nofile 1024//可打开文件的最大数(超出则警告)
oracle hard nofile 65536//可打开文件的最大数(超出则报错)
oracle soft stack 10240//用户进程的堆栈大小(超出则警告、以K为单位)
oracle hard stack 32768//用户进程的堆栈大小(超出则报错、以K为单位)
oracle soft memlock 3145728//用户能够锁定其地址空间的内存量(超出则警告、以K为单位)
oracle hard memlock 3145728//用户可以锁定其地址空间的内存量(超出则报错、以K为单位)
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
Grid | soft | stack | 10240 | |
| hard | stack | 32768 |
3.4.3.修改/etc/pam.d/login 配置文件
vim /etc/pam.d/login |
添加如下:
##============Oracle19c===============
session required pam_limits.so
3.4.4.修改/etc/profile 配置文件:
vim /etc/profile |
添加如下:
##============Oracle19c=============== if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then |
ulimit -p 16384 |
ulimit -n 65536 |
else |
ulimit -u 16384 -n 65536 |
fi |
fi |
注:
p:管道缓冲区
n:每个进程可打开的文件数
u:最大用户进程数
3.4.5.配置NOZEROCONF
vim /etc/sysconfig/network |


麒麟软件有限公司
添加NOZEROCONF=yes
3.4.6.添加用户及组
groupadd -g 11001 oinstall passwd grid |
3.4.7.创建需的目录
mkdir -p /u01/app/19.3.0/grid |

| 麒麟软件有限公司 |
chown -R oracle:oinstall /u01/app/oracle chmod -R 775 /u01/ |
3.4.8.配置oracle用户的环境变量
在~oracle/.bash_profile配置文件中添加:
##============Oracle19c===============
ORACLE_SID=orcl1;export ORACLE_SID |
ORACLE_UNQNAME=cndba;export ORACLE_UNQNAME JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db_1; | export |
ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="YYYY:MM:DDHH24:MI:SS"; | export |
NLS_DATE_FORMAT
NLS_LANG=american_america.ZHS16GBK; export NLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin; | export |
TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOM E/bin:$ORA_CRS_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/orac m/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/li
b |
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022


麒麟软件有限公司
注:节点 2ORACLE_SID=orcl2,该实例名应与后续数据库安装中的实例名一致
source ~oracle/.bash_profile |
3.4.9.配置 grid用户的环境变量
在~grid/.bash_profile配置文件中添加:
##============Oracle19c=============== PATH=$PATH:$HOME/bin
export ORACLE_SID=+ASM1 |
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin/:.
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
umask 022
export PATH
注:节点 2ORACLE_SID=+ASM2
source ~grid/.bash_profile |
3.5. | 设置 ssh 信任关系 |
注:用户 grid 和oracle都需要进行此操作,以下以 grid 用户为例。
3.5.1.设置 rsa 和 dsa 加密
注:“Enter passphrase:” 不要输入密码 ,直接 enter。 否则安装 GI 时无法通
过SSH Cconnectivity 测试。
注:做完密码验证后ssh、scp不需要密码。 [root@rac1 ~]# su - grid |
| 麒麟软件有限公司 |
3.5.2.编辑authorized_keys 文件
把 rsa 和 dsa加密都放置到authorized_keys 文件中:
[grid@rac1 ~]$ cd ~ [grid@rac1 ~]$ cat .ssh/id_dsa.pub >> .ssh/authorized_keys//非对称加密的密钥 |
3.5.3.在 rac2 中也进行【3.6.1 设置 rsa 和 dsa 加密】操作
[root@rac2 ~]# su - grid |
3.5.4.传输authorized_keys 文件
把 rac1 的authorized_keys 拷贝到 rac2 中:
[grid@rac1 ~]$ cd ~/.ssh/ |

麒麟软件有限公司
3.5.5.在 rac2 中也进行【3.6.2.编辑authorized_keys 文件】操作
[grid@rac2 ~]$ cd ~ [grid@rac2 ~]$ cat .ssh/id_dsa.pub >> .ssh/authorized_keys |
3.5.6.传输authorized_keys 文件
把 rac2 的authorized_keys 拷贝到 rac1 中:
[grid@rac2 ~]$ cd ~/.ssh/ |
3.5.7.查看authorized_keys 文件
查看一下 rac1 和 rac2 的authorized_keys 文件,确认 rac1 与 rac2 内
容一致。
3.5.8.测试信赖关系
rac1 和 rac2通过分别测试,能够正常返回日期即可:
[grid@rac1~]$ssh rac1 date |
| 麒麟软件有限公司 |
[grid@rac1 ~]$ ssh rac2-priv date 注:不能正常执行,则ifconfig查看地址。 |

3.6. | 创建、配置共享存储(udev) |
搭建共享存储有多种方式,VM 虚修改 vmk 文件使用 udev 或者使用 ISCSI
等方式实现,kvm虚机行创建 raw格式的磁盘利用 udev 进行共享。
需要 OCR表决磁盘组以及 ASM数据文件存储磁盘组,可以根据需要选择
不同的冗余模式,创建不同数量的磁盘。
注:redundancy—冗余三种模式,high、normal、external分别代表高、正常、外部。
一般各模式需要的磁盘数量为: high:最少 5 块;normal:最少 3 块;external:最少 1 块。
1、 高度冗余(high redundancy):
表示Oracle 提供 3份镜像来保护信息(镜像数据两次),以提高性能和数据的安全,所创建的磁盘组 空间大小是所有磁盘设备大小之和的 1/3,尽管冗余级别高了,可是硬件的代价也最高。
2、 默认冗余(normal redundancy):

麒麟软件有限公司表示Oracle 提供 2份镜像来保护数据(镜像数据一次),所创建的磁盘组空间大小是所有磁盘设备大 小之和的 1/2这要看实际生产设备存储情况来判断)。就是(虽然网上说运用最多,但
3、 外部冗余(external redundancy):
表示Oracle没有做磁盘冗余,所创建的磁盘组空间大小是所有选择的所有磁盘的大小之和。哪怕磁 盘利用充分,但是磁盘出错后无法恢复数据,只能依赖外部存储系统实现,比如通过 RAID 技术。
本处 OCR 盘采用 normal 冗余,数据文件盘采用 external 冗余,故需要3 块 20G 且没有挂载的 SATA 可共享磁盘作为 OCR,1 块 50G 且没有挂载的SATA可共享磁盘作为数据文件存储。
在VMvare虚拟机上添加共享存储20240110:
1.第一台虚拟机->编辑虚拟机设置->添加->硬盘->下一步->SCSI(S)->下一步->创建新虚拟磁盘->下一步->最大磁盘大小:20G、勾选立即分配所有硬盘空间、将虚拟磁盘存储为单个文件->确定磁盘文件名->确定
2.选中新添加的硬盘->高级->虚拟设备结点:SCISI 1:1开始往下用、勾选独立-永久->确定
3.第二台虚拟机->编辑虚拟机设置->添加->硬盘->下一步->SCSI(S)->下一步->利用现有虚拟磁盘->下一步->打开步骤1创建的虚拟磁盘->确定
4.选中新添加的硬盘->高级->虚拟设备结点:SCISI 1:1开始往下用、勾选独立-永久->确定
5.打开两个虚拟机的安装目录,在vmx文件最后添加(scsi1指定总线为1的所有盘):
disk.locking="FALSE"
scsi1.SharedBus="Virtual"
scsi1.shared="TRUE"
在麒麟虚拟机上为oracle19c RAC建立裸设备:
查看硬盘
[root@ora19cRAC1 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 199G 0 part
├─klas-root 253:0 0 147.4G 0 lvm /
├─klas-swap 253:1 0 1.6G 0 lvm [SWAP]
└─klas-backup 253:2 0 50G 0 lvm
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 200G 0 disk
sr0 11:0 1 4G 0 rom
看硬盘的UUID:
[root@ora19cRAC1 ~]# udevadm info -q all -n /dev/sdb|grep 'S: disk/by-id/scsi'
S: disk/by-id/scsi-36000c2907a14b426ac2307aa536889dd
[root@ora19cRAC1 ~]# udevadm info -q all -n /dev/sdc|grep 'S: disk/by-id/scsi'
S: disk/by-id/scsi-36000c29f880b9b5a8899a81cce6d79ad
[root@ora19cRAC1 ~]# udevadm info -q all -n /dev/sdd|grep 'S: disk/by-id/scsi'
S: disk/by-id/scsi-36000c298debf5520a0d21556fa1457aa
[root@ora19cRAC1 ~]# udevadm info -q all -n /dev/sde|grep 'S: disk/by-id/scsi'
S: disk/by-id/scsi-36000c29c459d3efdc77f5616058037c8
新建规则文件:
vim /etc/udev/rules.d/99-oracle-asmdevices.rules
添加:
KERNEL=="sd*", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c2907a14b426ac2307aa536889dd", RUN+="/bin/sh -c 'mknod /dev/asm-ocr1 b $major $minor; chown grid:asmadmin /dev/asm-ocr1; chmod 0660 /dev/asm-ocr1'"
KERNEL=="sd*", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c29f880b9b5a8899a81cce6d79ad", RUN+="/bin/sh -c 'mknod /dev/asm-ocr2 b $major $minor; chown grid:asmadmin /dev/asm-ocr2; chmod 0660 /dev/asm-ocr2'"
KERNEL=="sd*", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c298debf5520a0d21556fa1457aa", RUN+="/bin/sh -c 'mknod /dev/asm-ocr3 b $major $minor; chown grid:asmadmin /dev/asm-ocr3; chmod 0660 /dev/asm-ocr3'"
KERNEL=="sd*", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="36000c29c459d3efdc77f5616058037c8", RUN+="/bin/sh -c 'mknod /dev/asm-ocr4 b $major $minor; chown grid:asmadmin /dev/asm-ocr4; chmod 0660 /dev/asm-ocr4'"
udevadm control --reload-rules
udevadm trigger --type=devices --action=change
注:udev命令建立裸设备并改磁盘属组(磁盘属组必须是asmadmin,否则oracle19c RAC无法安装)。
查看asm设备:
[root@ora19cRAC1 ~]# ll /dev/asm*
brw-rw---- 1 grid asmadmin 8, 16 1月9 19:14 /dev/asm-ocr1
brw-rw---- 1 grid asmadmin 8, 32 1月9 19:14 /dev/asm-ocr2
brw-rw---- 1 grid asmadmin 8, 48 1月9 19:14 /dev/asm-ocr3
brw-rw---- 1 grid asmadmin 8, 64 1月9 19:14 /dev/asm-ocr4
4.软件安装(只在 rac1 上安装)
4.1. 安装介质解压
从Oracle 12cR2开 始 , 软 件 直 接 解 压 缩 到GRID_HOME 或 者 ORACLE_HOME,而不是在安装时脚本复制过去。该操作只需要在 rac1上完 成解压缩即可。
4.1.1.解压 grid

麒麟软件有限公司
用 grid用户来解压缩 GI
注:B机不需要解压缩,且此目录必须为空。
[grid@rac1 u01]$ unzip -d /u01/app/19.3.0/grid |
LINUX.X64_193000_grid_home.zip |
4.1.2.解压Oracle
与 grid执行相同,用oracle用户解压缩到ORACLE_HOME
unzip -d /u01/app/oracle/product/19.3.0/db_1 LINUX.X64_193000_db_home.zip |

4.1.3.修改cvu_config
grid 安装目录/u01/app/19.3.0/grid 下,编辑cv/admin/cvu_config,添加一行CV_ASSUME_DISTID=KYV10,否则安装会报错PRVG-0282。Oracle 用户同。

4.2. 安装 GI
4.2.1.安装 cvuqdisk/cvu:集群检测安装工具
cvuqdisk 存于 GI 解压目录下的cv/rpm 目录下:
| 麒麟软件有限公司 |
cd /u01/app/19.3.0/grid/cv/rpm |

cvuqdisk 传至 rac2,两个节点都需安装。
4.2.2.安装过程需要的包
4.2.2.1./usr/bin/ld: 找不到-lclntshcore
缺少libclntshcore,在Oracle软件解压目录下拷至 grid 目录即可。
cp /u01/app/oracle/product/19.3.0/db_1/lib/libclntshcore.so.19.1 /u01/app/19.3.0/grid/lib/ chown -R grid:oinstall cp /u01/app/19.3.0/grid/lib/libclntshcore.so.19.1 /usr/lib64/ |
scp 至节点 2 的/usr/lib64/。
4.2.2.2./usr/bin/ld: 找不到/usr/lib64/libpthread_nonshared.a安装了glibc32 后,拷至/usr/lib64/。
find / -name libpthread_nonshared.a |


麒麟软件有限公司
节点 2 操作同。
4.2.3.运行安装脚本gridSetup.sh
在 rac1 窗口,root用户下执行。
xhost + |
返回信息为access control disabled,clients can connect from any host。
在10.66.62.178上运行Xmanager-Passive。
切换到 gird 用户。
su - grid |
在双机上先打6个rpm包:E:\Softwares\oracle\LINUX.X64_193000_db_home\rpm
再:yum install libnsl
安装前检查环境。/同先决条件检查。
[grid@rac1 grid]$ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2-fixup -verbose [grid@rac1 grid]$ ./runcluvfy.sh stage -post hwos -n rac1,rac2-verbose |
遇到问题或者报错进行相应的排查,无问题则执行 GI 安装脚本。
处理scp文件(需要两台机器都做):
rpm –q openssh//查看openssh的版本号
su
cd /usr/bin
mv scp scp .orig
vi scp
写入:
/usr/bin/scp.orig–T $*
chmod 555 scp
安装达成后再改回来。
出现swap交换空间不足的处理:
使用dd命令创建一个swap分区(双机都做):
1. dd if=/dev/zero of=/home/swap bs=1024 count=17400000
dd:指定大小的块拷贝文件,并在拷贝的同时进行指定的转换。
/dev/zero:空输入设备,用于初始化文件。
bs:一块的字节数
count:输入的块数(17.4G)
2.格式化创建的分区:
mkswap /home/swap
mkswap:设置交换区
3.把分区设置为swap分区:
swapon /home/swap
swapon:启用交换分区
4.查看swap分区:
free –m
5.修改/etc/fstab文件,自动挂载swap分区:
vim /etc/fstab
增加:
/home/swap swap swap default 0 0
6.修改运行时配置文件:
echo “swapon /home/wap” >> /etc/inittab
cd vi .bash_profile 增加: export LC_ALL=C //否则安装界面有乱码 ./gridSetup.sh |

弹出窗口,进行安装,点击下一步。

麒麟软件有限公司

SCAN 名称与/etc/hosts档案中配置一致。


麒麟软件有限公司
点击添加,添加缺少的节点。//同/etc/hosts文件


麒麟软件有限公司
添加完节点后,点击 ssh连接,远程链接各节点,输入 grid的密码,点击 测试。
倘若测试不通过,根据报错进行排查,检查 ssh互信;测试通过则下一步。
注意,若手动 ssh窗口安装测试不通过,例如就是互信能通过,但INS-06003 INS-06006,考虑是OpenSSH 8.0增加了客户端检查导致两个节点没能正确传输文档。

麒麟软件有限公司


麒麟软件有限公司



麒麟软件有限公司
修改磁盘组名称为 OCR,点击更改搜索路径,修改成/dev/asm*,点击确
定,勾选 3-5块大小相同的 ASM 磁盘用作 OCR,本例中勾选 c d e 三块盘。

麒麟软件有限公司


麒麟软件有限公司


麒麟软件有限公司

注:上面两个目录必须为空,也不能有隐藏文档。


麒麟软件有限公司
等待先决条件检查,根据检查问题进行相应的处理和修复,swap 空间、DNS
难题允许忽略,如果是正产环境,建议认真对待,勾选全部忽略点击下一步确定。

麒麟软件有限公司

交换空间的处理参考oracle 19c单实例的安装。下一步,等待安装,如果过程遇到报错,查看具体日志,进行相应的消除,直到弹出执行配置脚本。
按照提示先 root 用户在节点 1上执行提示的两个脚本,再在节点 2 上执行。

| 麒麟软件有限公司 |
/u01/app/oraInventory/orainstRoot.sh |

/u01/app/19.3.0/grid/root.sh 回车 |
节点 2 运行。
如果节点 2 运行root.sh 有报错Relinking rac_on failed就退出了,检查
节 | 点 | 2 | 是 | 否 | /usr/lib64/ | 下 | 缺 | 少 | 了 | libclntshcore.so.19.1 |
libpthread_nonshared.a,拷完再执行root.sh 脚本。


麒麟软件有限公司
如果节点 2 运行root.sh有报错文件权限问题,根据提示修改完权限再执 行root.sh 脚本。

参考配置:
chown -R grid:oinstall /u01/app/grid/ chown -R root:root /u01/app/grid/tfa |
如果节点 2 有CRS-1705共享磁盘问题,检查共享磁盘配置。就是报错,多半
直 到 节 点 2 上 出 现“ Configure Oracle Grid Infrastructure for a Cluster ... succeeded ”,即为在两个节点上都执行完脚本,安装窗口点击确 定,继续等待。
出现错误INS-20802,若ping rac-scan 能 ping通,此报错可忽略,点 击确认后,点击跳过,下一步。所有的INS-20802错误都可以忽略。


麒麟软件有限公司
GI 安装成功。
4.2.4.验证集群
grid用户下验证集群是否正常:
crsctl stat res –t |
停grid:
su
cd /u01/app/19.3.0/grid/bin
crsctl stop crs //两台机器分别做
查看监听:
srvctl status listener


麒麟软件有限公司
4.3. ASM 部署
节点1有一块用于存储的可共享的 raw格式磁盘,进行用于安装 ASM共 享存储用于安装数据库实例,asmca 创建磁盘组(grid 用户下进行操作),创建 DATA磁盘组用于存储数据文件。
asmca |
选择 ASM否是就是实例,查看 2启动。就是个实例,且状态
点击磁盘组,右键选择新建,创建用于存放数据库实例相关的文件(如控制文件,参数文件,表空间数据文件)的磁盘组,在弹出框中修改磁盘簇名称,以及选择磁盘冗余度,本次选择是Extenal,选择磁盘 f,点击确认。


麒麟软件有限公司
PS:一般存储规划时将归档文件另外再创建磁盘组额外存放,热备文件也是如此。
等待创建成功。
4.4. 安装 ORACLE
与 grid操作相同,切换到Oracle用户执行安装脚本。
oracle用户做ssh互信。oracle用户的.bash_profile中加入:
export LC_ALL=C
su - oracle |


麒麟软件有限公司
建议选择仅设置软件,方便后续如果有错误进行排查。


麒麟软件有限公司
点击 ssh 连接,输入Oracle用户密码,点击测试,测试通过下一步。

麒麟软件有限公司


麒麟软件有限公司

等待先决条件检查,根据检查问题进行相应的处理和修复,swap 空间以及

麒麟软件有限公司
DNS问题可忽略,勾选全部忽略,点击下一步确定。



麒麟软件有限公司
等待安装,遇到疑问查看日志进行相应的解决,直到弹出执行配置脚本。
按照提示先 root 用户在节点 1上执行提示的脚本,再在节点 2 上执行。
/u01/app/oracle/product/19.3.0/db_1/root.sh回车 |
再在节点 2 执行。


麒麟软件有限公司
回到窗口点击确定。
安装完成。
ASMCMD命令20240125
(取自10.66.62.177虚拟机)
[root@rac1 ~]# su - grid
[grid@rac1 ~]$ asmcmd
列出所有命令:
ASMCMD>help
列出所有磁盘组机器属性:
ASMCMD> lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 512 4096 4194304 204800 192372 0 192372 0 N DATA/
MOUNTED NORMAL N 512 512 4096 4194304 61440 60524 20480 20022 0 Y OCR/
显示ASM文件占用的所有磁盘空间:
ASMCMD> du
Used_MB Mirror_used_MB
12510 12692
4.5. 创建数据库
窗口用oracle 用户执行 dbca命令,创建实例。
| 麒麟软件有限公司 |
dbca |


麒麟软件有限公司


麒麟软件有限公司


麒麟软件有限公司


麒麟软件有限公司
2560。就是连接模式里,数据库默认的最大连接数
oracle的内存为物理内存的40%-60%。


麒麟软件有限公司

先决条件检查 swap 空间与 DNS问题可以忽略,下一步。


麒麟软件有限公司
等待安装完成。

麒麟软件有限公司5. 验证及使用
5.1. 验证集群、数据库
5.1.1.验证集群是否正常
crsctl stat res -t |

5.1.2.检查集群运行状态
crsctl check cluster |

查看集群监听:srvctl status listener


麒麟软件有限公司
5.1.3.查看 PDB
Oracle用户下登录数据库,查看 pdb。
sqlplus / as sysdba |
5.1.4.查看监听状态
Oracle用户下查看监听状态。
lsnrctl status |


麒麟软件有限公司
5.1.5.查看节点的应用程序
srvctl status nodeapps |
srvctl config nodeapps |
ONS(Oracle Notification Service):用于集群通信。


麒麟软件有限公司
5.1.6.查看 ASM 状态
srvctl status asm |
5.2. | 数据库的关闭与启动 |
5.2.1.关闭数据库
[oracle@rac1 ~]$ sqlplus / as sysdba |
5.2.2.开启数据库
[oracle@rac1 ~]$ sqlplus / as sysdba |
5.3. | 数据库使用 |
查看数据库当前连接:
show con_name; |
查看 PDB 列表:

| 麒麟软件有限公司 |
show pdbs; |

容器切换至 pdb:
alter session set container=pdb; |
节点 1 PDB 下创建表:
create table ky_1 (no int,name varchar2(10)); insert into ky_1 values(1,'aaa'); |


麒麟软件有限公司
节点 2 进行验证:
改回去scp
6.相关报错及处理方式
6.1. 运行./gridSetup.sh 或者安装 Oracle 报错 requires X display 弹不
出窗口
[grid@rac1 grid]$ ./gridSetup.sh
ERROR: | Unable | to | verify | the | graphical | display | setup. | This |
application requires X display. Make sure that xdpyinfo exist under PATH variable.
/u01/app/19.3.0/grid/perl/bin/perl: | error | while | loading | shared |
libraries: libnsl.so.1: cannot open shared object file: No such file or directory

解决办法:
root 用户下启动vncserver:

| 麒麟软件有限公司 |
vncserver |
根据 vnc 的端口 5901:
export DISPLAY=localhost:1 |
如果xhost +报错unable to open display 再:
export DISPLAY=:0 |
返回信息为access control disabled,clients can connect from any host 才算可以。
然后回到 gird 用户或者Oracle 用户下,export DISPLAY=:0,再运行安 装脚本,即可弹出窗口。
6.2. 报错 PRVG-0282
安装前检查报错PRVG-0282 : failed to retrieve the operating system distribution ID
例 如 grid安 装 目 录 下 , 编 辑cv/admin/cvu_config, 添 加 一 行CV_ASSUME_DISTID=KYV10。
Oracle同。

麒麟软件有限公司

6.3. 报错 INS-06003 INS-06006
若 ssh互信手动验证没挑战,考虑是 ssh 版本与 19c不兼容的可能性,ssh-V查看当前版本,OpenSSH 8.0增加了客户端检查导致拒绝文件传输, 将OpenSSH 回退至 7,或者禁用这些客户端检查,以下为禁用客户端检查的方法。
参考https://blog.csdn.net/oradbm/article/details/106024895两个节点凭借 root用户,将原来的 scp 命令改名:
mv /usr/bin/scp /usr/bin/scp.orig |
创建一个新的材料/usr/bin/scp :
vim /usr/bin/scp |
在/usr/bin/scp 中添加:
/usr/bin/scp.orig -T $* |
修改文件的权限:
chmod 555 /usr/bin/scp |
安装窗口点击测试,测试通过,继续安装。在安装结束后改回原来的 scp。
mv /usr/bin/scp.orig /usr/bin/scp |


麒麟软件有限公司
6.4. 报错 CRS-1705
若出现报错CRS-1705: 找到 0个已配置的表决材料, 但需要 1个表决 文件,正在终止以确保数据完整性; 详细信息见(:CSSNM00065:) (位于 /u01/app/grid/diag/crs/rac2/crs/trace/ocssd.trc)
CRS-2883:在集群件堆栈启动期间, 资源'ora.cssd' 失败。
CRS-4406: Oracle高可用性服务同步启动失败。
CRS-41053: 正在检查Oracle Grid Infrastructure是否存在文件权限 挑战
CRS-4000: 命令 Start 失败,或已完成但出现错误。
2022/03/11 | 17:30:49 | CLSRSC-117: | Failed | to | start | Oracle |
Clusterware stack
Died at /u01/app/19.3.0/grid/crs/install/crsinstall.pm line 1970.否正确。就是检查共享磁盘配置













浙公网安备 33010602011771号