ablog

不器用で落着きのない技術者のメモ

CentOS 5.5 x86 に Grid Infrastructure (11.2.0.2.0) for Linux x86 のインストール中に root.sh を実行すると「ACFS-9459」が発生する

現象

CentOS 5.5 x86Oracle Database 11g Release 2 Grid Infrastructure (11.2.0.2.0) for Linux x86 をインストール中に root.sh を実行すると「ACFS-9459」が発生する。

[root@node01 ~]# /u01/app/11.2.0/grid/root.sh 
(中略)
ACFS-9459: ADVM/ACFS is not supported on this OS version: 'error: file /etc/SuSE-release: No such file or directory

原因

仕様。たぶん。
root.sh から呼ばれている /u01/app/11.2.0/grid/lib/osds_acfslib.pm を見ると以下の通り CentOS には対応していない。
どの箇所か探して、

[root@node01 ~]# find /u01/app/11.2.0/grid -name '*.log' -o -print0|xargs -0 grep 'DVM/ACFS is not supported on this OS version'
/u01/app/11.2.0/grid/lib/osds_acfslib.pm: "ADVM/ACFS is not supported on this OS version: '%s'",

ソースコードをのぞいてみる。

[root@node01 ~]# less /u01/app/11.2.0/grid/lib/osds_acfslib.pm
(中略)
  # see - http://www.oracle.com/us/technologies/027626.pdf
  open (RPM_QF, "rpm -qf /etc/redhat-release 2>&1 |");
  $release = <RPM_QF>;
  close (RPM_QF);

  if (($release =~ /^redhat-release/) ||         # straight RH
      ($release =~ /^enterprise-release/))       # Oracle Enterprise Linux
  {
    if ($release =~ /release-4/)                 # RH/OEL 4

解決策

CentOS をサポートするよう/u01/app/11.2.0/grid/lib/osds_acfslib.pm を書き換えて再実行する。

  # see - http://www.oracle.com/us/technologies/027626.pdf
  open (RPM_QF, "rpm -qf /etc/redhat-release 2>&1 |");
  $release = <RPM_QF>;
  close (RPM_QF);

  if (($release =~ /^redhat-release/) ||         # straight RH
      ($release =~ /^enterprise-release/) ||     # Oracle Enterprise Linux
      ($release =~ /^centos-release/))           # CentOS
  {
    if ($release =~ /release-4/)                 # RH/OEL 4

これで良いのかどうかはわかりません。コードを書き換えて無理やり通しただけです。
良い子も悪い子もマネしないでくださいw