データベースについて調べてみた

データベースについて調べたことのメモ。Oracle要素多めになる予定。

オンプレ版Oracle AI Database 26aiをインストールしてみた ~ 事前準備編 ~

2026年1月にオンプレ版のOracle AI Database 26ai(23.26.1) for Linuxがリリースされたので、若干出遅れ感はありますが、ASMを使用したシングルインスタンスを構成できる様にOracle AI Database 26aiをインストールする手順を纏めてみました。今回はインストール前の準備作業について紹介します。

 

0.はじめに

下記の様にDBサーバ内にASMインスタンスとDBインスタンスを各1つ起動させるシングルインスタンス構成(非RAC構成)ができるように、Oracle製品をインストールしていきます。なおOSは、x86-64版のOracle Linux 8.10を使用します。

インストール作業の大まかな流れは以下の通りとなります。

  1. インストールに向けた準備作業 ← ★今回はここの紹介
  2. Oracle Grid Infrastructure 26aiのインストール
  3. Oracle AI Database 26aiのインストール
  4. データベースの作成

 

1.インストールに向けた準備作業

インストールに向けた準備作業として、以下を実施していきます。

  1. インストールに使用するファイルの入手
  2. Oracle AI Database Preinstallation RPMのインストール
  3. OSユーザ・グループの作成
  4. シェルのリソース制限の設定
  5. ディレクトリの作成
  6. ASM用ディスクのパーミッション設定

 

1.1 インストールに使用するファイルの入手

インストールに使用する以下3つを入手します

  • Oracle Grid Infrastructure 26aiインストールイメージ
  • Oracle AI Database 26aiインストールイメージ
  • Oracle AI Database Preinstallation RPMパッケージ

Oracle Grid Infrastructure 26aiとOracle AI Database 26aiのインストールイメージは、下記サイトからダウンロードすることができます。

今回はOracle Software Delivery Cloudから、下記ファイルをダウンロードしました。

V1054596-01.zip

Oracle AI Database Grid Infrastructure 23.26.1.0.0 for Linux x86-64
V1054592-01.zip Oracle AI Database 23.26.1.0.0 for Linux x86-64

 

Oracle AI Database Preinstallation RPMパッケージは、事前にダウンロードしなくてもyumコマンド等で入手・インストールできると思いますが、今回は下記から予めダウンロードしました。

https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-ai-database-preinstall-26ai-1.0-1.el8.x86_64.rpm

ちなみに、Oracle Linux 8.10のインストールメディア内にもPreinstallation RPMパッケージが含まれていたのですが、Oracle Database21c向けでしたので、使用しませんでした。

 

 

1.2 Oracle AI Database Preinstallation RPMのインストール

Oracle Grid InfrastructureやOracle AI Databaseをインストールする前に、ユーザの作成や依存パッケージのインストール、カーネルパラメータの設定など、OSに対して様々な変更作業を実施する必要があり、それなりに手間のかかる作業だったりします。

Oracle AI Database Preinstallation RPM(以降Preinstallation RPMと表記)は、これをインストールすることで、それらの変更作業の多くを実施した状態にしてくれる非常に便利なRPMパッケージなので、今回はこれを使用します。Preinstallation RPMによって実施される作業などの詳細は、下記のマニュアルをご参照ください。

Grid Infrastructureインストレーションおよびアップグレード・ガイド26ai for Linux
Oracle AI Database Preinstallation RPMについて
https://docs.oracle.com/cd/G47991_01/cwlin/about-the-oracle-preinstallation-rpm.html

 

ダウンロードしたPreinstallation RPMをrootユーザでインストールします。OSをインストールした際にどのようなパッケージがインストールされていたかによりますが、今回rpmコマンドを使用してインストールしようとしたところ、以下の様にcompat-openssl10とkshパッケージが不足している旨のエラーが出力されました。

root# rpm -ivh oracle-ai-database-preinstall-26ai-1.0-1.el8.x86_64.rpm 
警告: oracle-ai-database-preinstall-26ai-1.0-1.el8.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID ad986da3: NOKEY
エラー: 依存性の欠如:
	compat-openssl10 >= 1.0.2o-4 は oracle-ai-database-preinstall-26ai-1.0-1.el8.x86_64 に必要とされています
	ksh は oracle-ai-database-preinstall-26ai-1.0-1.el8.x86_64 に必要とされています

エラーに出力されたパッケージをOracle Linux 8.10のインストールイメージなどを用いてインストールした後に、再度Preinstallation RPMを試したところ、正常にインストールされました。

root# rpm -ivh oracle-ai-database-preinstall-26ai-1.0-1.el8.x86_64.rpm
警告: oracle-ai-database-preinstall-26ai-1.0-1.el8.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID ad986da3: NOKEY
Verifying...                          ################################# [100%]
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:oracle-ai-database-preinstall-26a################################# [100%]

 

 

1.3 OSユーザ・グループの作成

Preinstallation RPMによってOracle AI Databaseのインストールに必要なOSユーザとグループは作成されるのですが、Oracle Grid Infrastructureを独立したOSユーザとグループを用いる場合、これらのOSユーザとグループについては手動で作成する必要があります。

作成するOSユーザとOSグループは、以下のマニュアル

Grid Infrastructureインストレーションおよびアップグレード・ガイド26ai for Linux
Oracleソフトウェア所有者ユーザー・アカウントの識別
https://docs.oracle.com/cd/G47991_01/cwlin/identifying-an-oracle-software-owner-user-account.html

に記載されていたgridユーザの情報をもとに、以下のものを作成しました。

  • gridユーザ:Oracle Grid Infrastructure所有ユーザ
  • asmdbaグループ:Oracle ASM DBA用グループ(ASMのOSDBA)
  • asmadminグループ:Oracle ASM管理者用グループ(OSASM)

以下がOSユーザとグループの作成コマンドの実行例です。

--- OSグループの作成
root# groupadd -g 54327 asmdba
root# groupadd -g 54329 asmadmin

--- OSユーザの作成 
root# useradd -u 54331 -g oinstall -G asmdba,asmadmin,racdba grid

--- gridユーザの所属グループ確認
root# id grid
uid=54331(grid) gid=54321(oinstall) groups=54321(oinstall),54330(racdba),54327(asmdba),54329(asmadmin)

--- gridユーザのパスワード設定
root# passwd grid
ユーザー grid のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

 

Oracle ASM DBA用グループ(asmdba)を作成した場合、Oracle AI Databaseの所有ユーザであるoracleユーザも、このグループに所属させる必要がありますので、以下の様なコマンドを実行します。

--- oracleユーザをOracle ASM DBA用グループに追加
root# usermod -a -G asmdba oracle

--- oracleユーザの所属グループ確認
root# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba),54327(asmdba)

 

 

1.4 シェルのリソース制限の設定

シェルのリソース制限についても、Preinstallation RPMによってOracle AI Databaseの所有ユーザであるoracleユーザについては基本的に設定されるのですが、前段で作成したOracle Grid Infrastructureの所有ユーザであるgridユーザについては、手動で設定する必要があります。

設定するリソース制限は、以下のマニュアル

Grid Infrastructureインストレーションおよびアップグレード・ガイド26ai for Linux
Oracleソフトウェア・インストール・ユーザーのリソース制限の確認
https://docs.oracle.com/cd/G47991_01/cwlin/checking-resource-limits-for-oracle-software-installation-users.html

に記載されていた、以下の4つをgridユーザに対して設定します。

リソース soft制限 hard制限
nofile 1024 65536
nproc 2047 16384
stack 10240 32768
memlock 搭載メモリの90%[KB] 搭載メモリの90%[KB]

 

上記リソース制限の設定変更を行うために、以下の様に/etc/security/limits.confに点線以下の部分に記載した内容を追記します。

root# vi /etc/security/limits.conf

---
grid            soft    nofile          1024
grid            hard    nofile          65536
grid            soft    nproc           2047
grid            hard    nproc           16384
grid            soft    stack           10240
grid            hard    stack           32768
grid            soft    memlock         7549748
grid            hard    memlock         7549748

 

補足:oracleユーザのmemlockリソース制限について

oracleユーザのmemlockリソース制限は、Preinstallation RPMによって設定されるのですが、その設定値はサーバの搭載メモリに関係なくx86_64環境では128GBで設定されます。今回使用したサーバの搭載メモリが8GBだったせいなのか、memlockの設定値が反映されず64KBとなってしまったため、下記の様にmemlockの設定値が記載されたファイル(/etc/security/limits.d/oracle-ai-database-preinstall-26ai.conf)の該当部分(青字部分)を、手動で搭載メモリの90%(7549748KB)に変更しました。

root# vi /etc/security/limits.d/oracle-ai-database-preinstall-26ai.conf

---
# oracle-ai-database-preinstall-26ai setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM
oracle   hard   memlock    7549748

# oracle-ai-database-preinstall-26ai setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM
oracle   soft   memlock    7549748

 

 

1.5 ディレクトリの作成

Oracle Grid InfrastructureとOracle AI Databaseの所有ユーザが別の場合、Oracle Grid InfrastructureのGridホームが誤ってOracle AI Databaseのホーム下に配置されないように、予めこれらのディレクトリを作成することがマニュアルに記載されているため、これに従ってディレクトリを作成します。

Grid Infrastructureインストレーションおよびアップグレード・ガイド26ai for Linux
OracleホームおよびOracleベース・ディレクトリの作成について
https://docs.oracle.com/cd/G47991_01/cwlin/about-creating-oracle-base-oracle-home-directories.html

 

以下が実行したディレクトリの作成コマンドとなります。

root# mkdir -p /u01/app/23.0.0/grid
root# mkdir -p /u01/app/grid
root# mkdir -p /u01/app/oracle
root# chown -R grid:oinstall /u01
root# chown oracle:oinstall /u01/app/oracle/
root# chmod -R 775 /u01/

 

 

1.6 ASM用ディスクのパーミッション設定

ASMを使用する場合、ASMのディスクグループを構成するディスクの所有者をOracle GridInfrastructureの所有ユーザ(grid)に、所有グループをASM用DBAグループ(asmdba)に変更し、所有者と所有グループが読み書きできるパーミッションに設定する必要があります。

単純にchownやchmodコマンドで変更しただけでは、OSを再起動した際に設定が全てリセットされて、ディスクグループをマウントできなくなってしまうため、OS再起動後も設定が継続される様に、udevルールを設定します。

udevルールを設定するためには、以下の様に設定対象となる全ディスクのWWIDを取得する必要があります。今回は以下のコマンドでWWIDを取得しました。

root# /usr/lib/udev/scsi_id -g -u /dev/sda
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ← ディスクのWWID

WWIDを取得したら、udevルールを定義します。udevルールは以下のようにASMディスク専用のルールファイルを/etc/udev/rules.d/配下に作成します。ルールファイルの中身は点線以下に記載した様な内容になります。

root# vi /etc/udev/rules.d/99-oracle-asmdevices.rules

---
KERNEL=="sda", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u /dev/$name", RESULT=="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", OWNER="grid", GROUP="asmdba", MODE="0660"

 

 

余談:Transparent Huge Pagesの設定について

過去にOracle Database環境の構築をされたことがある方の中で、HugePagesを使用してインスタンスのSGAを構成する際に、Transparent Huge Pages機能を無効(never)にするのが推奨されていることをご存じの方もいるかと思います。

私もその認識だったのでPreinstall RPMのインストールをしてもTransparent Huge Pagesが無効になっておらず、madviseに設定されていたため、Preinstall RPMでの対応範囲外なのかと思ったのですが、Oracle LinuxのUEK(Unbreakable Enterprise Kernel)7以降のカーネルでは、Transparent Huge Pagesを無効にしないことが推奨され、madviseに設定されることがマニュアルに記載されていました。

Grid Infrastructureインストレーションおよびアップグレード・ガイド26ai for Linux
透過的なHugePagesをmadviseに設定
https://docs.oracle.com/cd/G47991_01/cwlin/disabling-transparent-hugepages.html

今回使用したOracle Linux 8.10はUEK7が使用されているため、Preinstall RPMでmadviseに設定されておりました。(私の様に)うっかり無効にしないように注意してもらえればと思います。

 

 

インストールに向けた準備作業はここまでとなります。Preinstall RPMがあるおかげで、かなり作業が少なくなった印象です。今回色々作業していますが、殆どがGrid Infrastructure用の作業ですので、Grid Infrastructureにも対応したPreinstall RPMが提供されれば、もっと作業を少なくできると思います。次回はGrid Infrastructureのインストール手順を紹介していきます。

 

 

次の記事:オンプレ版Oracle AI Database 26aiをインストールしてみた ~ Oracle Grid Infrastructure編 ~

 

前の記事:FreeSQLについて調べてみた