银河麒麟高级服务器操作便捷的系统(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 版)V10SP1)搭建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数据库实例和一个监听器。

这些实例经过 CRSCRS一个典型的“多实例,单数据库”就是通过一系列的进程和服务来保证集群的运行,提 供高可用性)的协助,共同处理一个数据库,架构,数据库被所有节点共享、并行访问。共享存储是 RAC通过架构的核心。数据 库的数据文件、控制文档、参数文件、重做日志材料等等都要放到共享存储上,各节点能够对这些资料进行并行访问。要是其中某个节点发生故障,RAC能够 将连接自动切换到另外一个节点上,无单点故障问题,从而实现应用的无缝切换。

监听器分别监听一个 IP地址上的用户请求,这个地址称为 VIPVirtual 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为例,两台虚机参考安装内存 8GCPU 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 IPVIPPublic IP必须属于同一子网,Private IP属于另一子网

注:安装前快照虚机,避免安装出现难题无法还原干净环境。

注:

在麒麟虚拟机上增加心跳地址:

  1. 在物理机上给以太网口插网线,配IP地址:200.200.200.200,子网掩码:255.255.255.0
  2. 在VMware->编辑->虚拟网络编辑器->添加网络->VMnet2->桥接模式、已桥接至:Intel(R) I350千兆网络连接
  3. 在麒麟虚拟机中->开始->控制面板->网络连接->(左下)添加一个新的连接->以太网->新建->连接名称:ens36、设备:ens36->IPv4设置->技巧:手动->添加->地址:200.200.200.201、子网掩码:255.255.255.0->保存
  4. ping 200.200.200.200
  5. 在第二台虚拟机上同样管理,配置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:
ens3public ip10.10.16.172

ens9private ip10.0.17.172
rac2:
ens3public ip10.10.16.173

ens9private ip10.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

200.200.200.20223

rac2-priv

rac2-priv

10.66.62.181

rac1-vip

rac1-vip

10.66.62.182

10.10.16.2

rac2-vip

rac2-vip

10.66.62.176

10.10.16.3

rac-scan

rac-scan

注:publicvipscanip要在同一网端,vipscanip为未被占用的 ip 即可,publicprivate必须在不同子网段。

3.2.5.关闭时间服务

systemctl stop ntpd//默认
systemctl disable ntpd//默认
mv /etc/ntp.conf /etc/ntp.conf_bak

关闭chronyd,移除chrony配置文件,否则校验 NTP 失败。

systemctl stopchronyd

systemctl disablechronyd

mv /etc/chrony.conf /etc/chrony.conf.bak

注:chronyd:优化的时间同步服务。

3.2.6.关闭防火墙

systemctl stop firewalld
systemctl disable 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 instally 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
http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

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

Grid

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
groupadd -g 11002 dba
groupadd -g 11003 oper
groupadd -g 11004 backupdba
groupadd -g 11005 dgdba
groupadd -g 11006 kmdba
groupadd -g 11007 asmdba
groupadd -g 11008 asmoper
groupadd -g 11009 asmadmin
groupadd -g 11010 racdba
useradd -u 11021 -g oinstall -G
dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle
useradd -u 11022 -g oinstall -G asmadmin,asmdba,asmoper,dba grid

passwd grid
passwd oracle

3.4.7.创建需的目录

mkdir -p /u01/app/19.3.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/19.3.0/db_1 chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/19.3.0/grid

麒麟软件有限公司

chown -R oracle:oinstall /u01/app/oracle chmod -R 775 /u01/
chmod 777 /u01/app

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 信任关系

注:用户 gridoracle都需要进行此操作,以下以 grid 用户为例。

3.5.1.设置 rsa dsa 加密

注:“Enter passphrase:” 不要输入密码 ,直接 enter。 否则安装 GI 时无法通

SSH Cconnectivity 测试。

注:做完密码验证后ssh、scp不需要密码。

[root@rac1 ~]# su - grid
[grid@rac1 ~]$ ssh-keygen -t rsa//生成对称加密的密钥
[grid@rac1 ~]$ ssh-keygen -t dsa//生成非对称加密的密钥

麒麟软件有限公司

3.5.2.编辑authorized_keys 文件
rsa dsa加密都放置到authorized_keys 文件中:

[grid@rac1 ~]$ cd ~
[grid@rac1 ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys//对称加密的密钥

[grid@rac1 ~]$ cat .ssh/id_dsa.pub >> .ssh/authorized_keys//非对称加密的密钥

3.5.3. rac2 中也进行【3.6.1 设置 rsa dsa 加密】操作

[root@rac2 ~]# su - grid
[grid@rac2 ~]$ ssh-keygen -t rsa
[grid@rac2 ~]$ ssh-keygen -t dsa

3.5.4.传输authorized_keys 文件
rac1authorized_keys 拷贝到 rac2 中:

[grid@rac1 ~]$ cd ~/.ssh/
[grid@rac1 .ssh]$ scp authorized_keys 10.10.16.173:/home/grid/.ssh/

麒麟软件有限公司

3.5.5. rac2 中也进行【3.6.2.编辑authorized_keys 文件】操作

[grid@rac2 ~]$ cd ~
[grid@rac2 ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

[grid@rac2 ~]$ cat .ssh/id_dsa.pub >> .ssh/authorized_keys

3.5.6.传输authorized_keys 文件

rac2authorized_keys 拷贝到 rac1 中:

[grid@rac2 ~]$ cd ~/.ssh/
[grid@rac2 .ssh]$ scp authorized_keys 10.10.16.172:/home/grid/.ssh/

3.5.7.查看authorized_keys 文件

查看一下 rac1 rac2authorized_keys 文件,确认 rac1 rac2

容一致。

3.5.8.测试信赖关系

rac1 rac2通过分别测试,能够正常返回日期即可:

[grid@rac1~]$ssh rac1 date
[grid@rac1~]$ssh rac2 date
[grid@rac1 ~]$ ssh rac1-priv date

麒麟软件有限公司

[grid@rac1 ~]$ ssh rac2-priv date

注:不能正常执行,则ifconfig查看地址。

3.6.

创建、配置共享存储(udev)

搭建共享存储有多种方式,VM 虚修改 vmk 文件使用 udev 或者使用 ISCSI

等方式实现,kvm虚机行创建 raw格式的磁盘利用 udev 进行共享。

需要 OCR表决磁盘组以及 ASM数据文件存储磁盘组,可以根据需要选择

不同的冗余模式,创建不同数量的磁盘。

注:redundancy—冗余三种模式,highnormalexternal分别代表高、正常、外部。

一般各模式需要的磁盘数量为: 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 11开始往下用、勾选独立-永久->确定

3.第二台虚拟机->编辑虚拟机设置->添加->硬盘->下一步->SCSI(S)->下一步->利用现有虚拟磁盘->下一步->打开步骤1创建的虚拟磁盘->确定

4.选中新添加的硬盘->高级->虚拟设备结点:SCISI 11开始往下用、勾选独立-永久->确定

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 19 19:14 /dev/asm-ocr1

brw-rw---- 1 grid asmadmin 8, 32 19 19:14 /dev/asm-ocr2

brw-rw---- 1 grid asmadmin 8, 48 19 19:14 /dev/asm-ocr3

brw-rw---- 1 grid asmadmin 8, 64 19 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-0282Oracle 用户同。

4.2. 安装 GI
4.2.1.安装 cvuqdisk/cvu:集群检测安装工具

cvuqdisk 存于 GI 解压目录下的cv/rpm 目录下:

麒麟软件有限公司

cd /u01/app/19.3.0/grid/cv/rpm
rpm -ivh cvuqdisk-1.0.10-1.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
/u01/app/19.3.0/grid/lib/libclntshcore.so.19.1

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
cp /usr/lib/libpthread_nonshared.a /usr/lib64/ chmod 777 /usr/lib64/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
export DISPLAY=:0
cd /u01/app/19.3.0/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.origT $*

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

如果节点 2CRS-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
export DISPLAY=:0
cd /u01/app/oracle/product/19.3.0/db_1 ./runInstaller

麒麟软件有限公司

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

麒麟软件有限公司

点击 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
SQL>show pdbs;

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
srvctl config asm -a

5.2.

数据库的关闭与启动

5.2.1.关闭数据库

[oracle@rac1 ~]$ sqlplus / as sysdba
SQL>shutdown immediate;

5.2.2.开启数据库

[oracle@rac1 ~]$ sqlplus / as sysdba
SQL>startup;

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');
commit;
select *from ky_1;

麒麟软件有限公司

节点 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 +

如果xhost +报错unable to open display 再:

export DISPLAY=:0
xhost +

返回信息为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.否正确。就是检查共享磁盘配置

posted @ 2025-11-08 16:23  yangykaifa  阅读(45)  评论(0)    收藏  举报