Oracle 11G R2 RAC在Red Hat 7.4上还需要pdksh包吗

概述

近期在巡检一套安装在Red Hat 7.4上的Oracle 11G R2 RAC(4节点)时,发现GI下的alert日志中每隔6个小时出现一次报错<PRVF-7532 : 节点 “racdb04” 上缺少程序包 “pdksh”>和< PRVG-1101 : SCAN 名称 “racdb-scan” 无法解析>,从报错信息上看是:缺失pdksh包和SCAN解析错误,经过后续一系列的分析,最终确认此报错信息可以忽略。

问题描述

平台环境

操作系统:Red Hat 7.4

数据库版本:Oracle 11.2.0.4.190416 RAC 4节点

报错信息

–gi的alert日志报错信息:

问题说明

从上面的报错可以看出2个问题:

  • 节点 racdb04 上缺少程序包 pdksh
  • racdb-scan解析错误

看到上面的报错,疑惑点出现了:

  • 明明Oracle官网安装步骤里面要求的RPM包就是ksh,为什么还需要pdksh呢?以前RedHat6上安装的11G RAC也都是安装ksh,没有安装pdksh呀,alert日志为什么没有出现这个问题?
  • SCAN 解析错误?明明/etc/hosts里面配置的没有问题,如果scan IP解析确实有问题,那么为什么客户端使用 scan ip也能连接到数据库进行操作呢?
  • 一般在安装11G RAC GI的时候,如果服务器没有配置DNS,而是使用/etc/hosts里面的scan IP 来解析的话,就会出现一个[INS-20802]的报错提示,正常情况下都是忽略这个报错,继续完成GI安装的,因为Oracle也是支持使用/etc/hosts来解析scan IP的,但是为什么还会出现上面的报错:PRVG-1101 PRVF-4657 PRVF-4664呢?难道这个pdksh会导致scan IP 失败?

问题分析

问题1:缺少程序包 pdksh

查看Oracle联机文档中的安装说明:

可以看出Oracle要求的也是ksh,而不是pdksh,其实从Linux 6开始,就已经变更成ksh包了。

在GI安装的过程中也是有提示缺少pdksh包的,但此问题可以忽略

根据MOS文档《Missing pdksh-5.2.14 package during Oracle database 11.2.0.4 install on Oracle Linux 7 (文档 ID 1962046.1)》的处理建议是忽略此报错

如果你是在RHEL6上出现这个报错,参考MOS文档《Installing 11.2.0.3 Or 11.2.0.4 (32-bit (x86) or 64-bit (x86-64) ) On RHEL6 Reports That Packages “elfutils-libelf-devel-0.97” And “pdksh-5.2.14” Are Missing (PRVF-7532) (文档 ID 1454982.1)》中的解决方法:

如果你嫌此步骤操作比较麻烦,其实在安装过程中直接忽略这个报错即可。

总结

从Oracle联机文档和MOS上可以看出,对于RedHat6以后的平台安装Oracle11G,建议使用ksh而非pdksh,网上有很多文章提到的方法是:删除ksh,然后手动下载pdksh再安装上去,建议不要这样操作,直接忽略这个提示就行。

问题2:racdb-scan解析错误

使用命令$GRID_HOME/bin/cluvfy comp scan检查报错信息和GI中的alert日志报错信息一致。

根据MOS文档《PRVF-4664 PRVF-4657: Found inconsistent name resolution entries for SCAN name (文档 ID 887471.1)》中的处理建议是:

Cause 1. SCAN name is expected to be resolved by local hosts file

SCAN name is resolved by local hosts file (/etc/hosts or %SystemRoot%\system32\drivers\etc\hosts) instead of DNS or GNS

Solution: Oracle strongly recommend to use DNS or GNS for SCAN name resolution as hosts file support only one IP for SCAN

If the intention is to use hosts file for SCAN name resolution, and ping command returns correct SCAN VIP, you can ignore the error and move forward.

If the intention is to use DNS or GNS for SCAN name resolution, comment out entries in local hosts file for SCAN name on all nodes, and re-run “$GRID_HOME/bin/cluvfy comp scan” to confirm.

意思是说:当使用本地主机文件解析SCAN时,Oracle强烈建议使用DNS或GNS进行扫描名称解析,因为主机文件只支持一个用于扫描的IP,如果继续打算使用/etc/hosts文件进行扫描名解析,而ping命令返回正确的VIP信息和scan信息,则可以忽略该错误。

难道这个问题只出现在Oracle11G RAC安装在RedHat7以上吗?我尝试在多个平台是Red Hat 6不同小版本上安装Oracle11G RAC的环境下执行:$cluvfy comp scan命令,报错信息和本次出现的报错信息一致,说明只要是使用/etc/hosts本地文件解析scan IP 的话,都会出现这个问题,但是Red Hat 6中GI下的alert中并没有反复出现”PRVG-1101 PRVF-4657 PRVF-4664″信息。

这个问题会不会在12C中解决呢?我测试在Red Hat7.6上安装12.2.0.1.190115,虽然没有了PRVF-4657 PRVF-4664,但还是有PRVG-1101,说明这个问题依旧存在的,但是其alert日志中也没有反复出现PRVG-1101报错。

通过查询MOS文档,最终可以确认是: Bug 8901977 : CLUVFY PRVF-4664 : FOUND INCONSISTENT NAME RESOLUTION ENTRIES FOR SCAN NAME

出现这个问题的数据库版本是:11.2.0.1,平台是:Linux x86-64,且未在后续的版本和补丁中解决此问题。

总结

通过查询Oracle官网和MOS文档,以及个人的检查测试,得出的结果是:关于这个scan解析错误的报错是由于Bug 8901977导致的,暂时并没有有效的解决方法,也没有在后续的版本和补丁中解决这个问题。在RedHat6及以后的平台中安装11G RAC或者12C RAC时,当使用本地主机文件/etc/hosts解析SCAN IP时,都会出现PRVF-4657 PRVF-4664或PRVG-1101报错,如果ping命令返回正确的VIP信息和scan信息,则可以忽略该错误。

结束语

为什么上述的2个问题点会同时出现呢?是因为从Oracle 11.2.0.2开始新增加一个资源ORA.CVU (Cluster Verification Utility),它其实是一个集群验证程序,该程序是通过GRID安装软件中的scriptagent运行的,每6个小时检查一次环境中的各种设置,如果RAC环境中有设置不正确时,首先会报CRS-10051错误,之后才会报设置不当的信息。

经过一系列的分析和测试,可以判定上述的2个问题点<缺少程序包pdksh>和<scan解析错误>都可以忽略来处理。

未经允许不得转载:Oracle一体机用户组 » Oracle 11G R2 RAC在Red Hat 7.4上还需要pdksh包吗

相关推荐