1.问题背景

要基于RHEL9,ORACLE LINUX 9 或RHEL分支,安装ORACLE 19C 数据库,在一年前,没有人会告诉你能够成功,都会告诉你说19C只支持 RHEL7/8,在RHEL9上不支持,

如果你非要安装,在安装到11%时,就会报以下错误:

Error in invoking target ‘libasmclntsh19.ohso libasmperl19.ohso client_sharedlib‘ of makefile ‘/u01/app/oracle/product/19.21.0/dbhome_1/rdbms/lib/ins_rdbms.mk’. See ‘/u01/app/oraInventory/logs/InstallActions2023-11-08_10-46-25PM/installActions2023-11-08_10-46-25PM.log’ for details.

这个问题就无解了吗,想到23C都出来了,19C还要用一段时间,难道ORACLE19C 要放弃RHEL9这个平台吗” />

难道真的不能安装了吗?

2.ORACLE官方已经认证支持RHEL9上安装 Oracle 19c

最近有用户需要安装ORACLE 19C,于是上MOS 认证上搜一下,发现,ORACLE 19C 已经支持RHEL9了。

看看集群,也已经支持:

但ORALCE数据库和RAC必须是 19.19及以上版本才支持。

进一步搜MOS,发现已经有相关的文档了

赶紧看一下:

需要下载补丁,并替换:

  1. DownloadingPatch 35775632and copying stubs.tar to $ORACLE_HOME/lib/stubs
  2. Extracting files inside $ORACLE_HOME/lib/stubs/stubs.tar to the same location
  3. 具体操作步骤,见下图:

3.实际验证

1.安装操作系统 ORACLE LINUX 9.2
安装过程略

2.需要安装的操作系统包:

bc
binutils
compat-openssl11
elfutils-libelf
fontconfig
glibc
glibc-devel
ksh
libaio
libasan
liblsan
libX11
libXau
libXi
libXrender
libXtst
libxcrypt-compat
libgcc
libibverbs
libnsl
librdmacm
libstdc++
libxcb
libvirt-libs
make
policycoreutils
policycoreutils-python-utils
smartmontools
sysstat

Note – For 64-Bit Oracle Database Client Installs,below Packages are required
libnsl2
libnsl2-devel

3.下载Oracle 19.3 的安装介质

4.下载 stubs.tar from Patch 35775632 and extract
– Copy stubs.tar into $ORACLE_HOME/lib/stubs and extract (cmd: $ tar -xf stubs.tar)

5.应用ru 19.21
6.开始安装数据库软件,中间不再报错,顺序完成。

7.最后安装完成如下:

[root@dbserver ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.2 (Plow)

[root@dbserver ~]# su – oracle
[oracle@dbserver ~]$ sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 – Production on Wed Nov 8 08:17:15 2023
Version 19.21.0.0.0

Copyright (c) 1982, 2022, Oracle.All rights reserved.

@ >conn / as sysdba
Connected to an idle instance.
SYS@orclcdb >startup
ORACLE instance started.

Total System Global Area 2365586792 bytes
Fixed Size9166184 bytes
Variable Size520093696 bytes
Database Buffers1828716544 bytes
Redo Buffers7610368 bytes
Database mounted.
Database opened.
SYS@orclcdb >select name,open_mode from v$database;

NAMEOPEN_MODE
——— ——————–
ORCLCDBREAD WRITE

SYS@orclcdb >select BANNER_FULL from v$version;

BANNER_FULL
——————————————————————————–
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.21.0.0.0

SYS@orclcdb >! lsnrctl start

LSNRCTL for Linux: Version 19.0.0.0.0 – Production on 08-NOV-2023 08:40:08

Copyright (c) 1991, 2023, Oracle.All rights reserved.

Starting /u01/app/oracle/product/19.21.0/dbhome_1/bin/tnslsnr: please wait…

TNSLSNR for Linux: Version 19.0.0.0.0 – Production
Log messages written to /u01/app/oracle/diag/tnslsnr/dbserver/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbserver)(PORT=1521)))

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
————————
AliasLISTENER
VersionTNSLSNR for Linux: Version 19.0.0.0.0 – Production
Start Date08-NOV-2023 08:40:08
Uptime0 days 0 hr. 0 min. 4 sec
Trace Leveloff
SecurityON: Local OS Authentication
SNMPOFF
Listener Log File/u01/app/oracle/diag/tnslsnr/dbserver/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbserver)(PORT=1521)))
The listener supports no services
The command completed successfully

SYS@orclcdb >! lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 – Production on 08-NOV-2023 08:40:32

Copyright (c) 1991, 2023, Oracle.All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
————————
AliasLISTENER
VersionTNSLSNR for Linux: Version 19.0.0.0.0 – Production
Start Date08-NOV-2023 08:40:08
Uptime0 days 0 hr. 0 min. 24 sec
Trace Leveloff
SecurityON: Local OS Authentication
SNMPOFF
Listener Log File/u01/app/oracle/diag/tnslsnr/dbserver/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbserver)(PORT=1521)))
The listener supports no services
The command completed successfully

SYS@orclcdb >

至此,RHEL,ORACLE LINUX 9终于可以安装 ORACLE 19C了。

我已经把这个补丁包集成到ORACLE 19.21的安装包里面去了,后面只需要使用我的ORACLE 19.21安装包,就可以直接在RHEL/ORACLE LINUX 9以上版本安装了。

我集成的19.21包补丁情况:

[oracle@dbserver ~]$ $ORACLE_HOME/OPatch/opatch lspatches
35648110;OJVM RELEASE UPDATE: 19.21.0.0.231017 (35648110)
35655527;OCW RELEASE UPDATE 19.21.0.0.0 (35655527)
35643107;Database Release Update : 19.21.0.0.231017 (35643107)

OPatch succeeded.