7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

26ai RACをOCI Compute上に構築してみた

7
Last updated at Posted at 2026-02-15

先日GAとなったLinux x86-64向けOracle AI Database 26aiの2 node RACをOCI Compute上に構築してみましたので、手順を残しておこうと思います。
なおOCI上でサポートされるRACはBaseDBやExaDB-DなどPaaSとして提供されるRAC環境のみなのでご注意ください。
本手順で構築するRACは個人的な学習等でご利用ください。

目次

OCI Computeの構築

細かい手順は省略しますが、今回は以下の構成を用意しました。

  • CIDRが 10.0.0.0/16 のVCN
  • サブネットとしてClient用に 10.0.1.0/24、Private用に 10.0.2.0/24
  • Shapeが VM.Standard.E5.Flex(1 OCPU、12 GB RAM)、OSがOracle Linux 9のCompute 2台
  • ブートボリュームとして 100 GB/node
  • ホスト名はnode1が rac261、node2が rac262
  • node1に以下の通りvNICを設定
    • ClientのIPをプライマリvNICにアタッチ
    • VIP、SCAN VIP用のセカンダリIPをプライマリvNICにアタッチ (OS上の設定はしないこと)
    • Private用のセカンダリvNICをアタッチ
  • node2に以下の通りvNICを設定
    • ClientのIPをプライマリvNICにアタッチ
    • VIP用のセカンダリIPをプライマリvNICにアタッチ (OS上の設定はしないこと)
    • Private用のセカンダリvNICをアタッチ
  • ASM用のブロック・ボリューム 50GB を3つ作成し、node1とnode2に準仮想化、共有かつ読み書き可能な設定でアタッチ

OSの事前設定

各ノードでパッケージ導入やOSユーザ作成などを行います。
作業する際のOSユーザにご注意ください。
また一部作業は片ノードのみで行います。
加えてGIとDBのインストーラ (V1054596-01.zipV1054592-01.zip) は事前にSCP等で /tmp にアップロードしておきます。

## ロケール設定 as root
localectl set-locale LANG=ja_JP.utf8
localectl status

## タイムゾーン変更 as root
timedatectl set-timezone Asia/Tokyo
timedatectl

## Oracle Database Preinstallation RPMで必要パッケージを導入 as root
dnf install oracle-ai-database-preinstall-26ai

## X11をインストール as root (node1のみ)
dnf groupinstall "Server with GUI"

## oracleとgridユーザを作成 as root
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54329 asmadmin
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54330 racdba

usermod -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle
useradd -u 54331 -g oinstall -G asmadmin,asmdba,asmoper grid

## oracleとgridユーザのパスワード設定
passwd oracle
passwd grid

## 環境変数の設定 as oracle, grid
vim ~/.bash_profile
umask 022

## resource limitsについてgrid向けにoracleの設定をコピー as root
## (oracleユーザはPreinstallation RPMによって設定済み)
vim /etc/security/limits.d/oracle-ai-database-preinstall-26ai.conf

## ディレクトリ作成 as root
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/23.26.0/grid
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01

## sysctl.confの値をチェック as root
## 照合先: https://docs.oracle.com/cd/G47991_01/cwlin/minimum-parameter-settings-for-installation.html
/sbin/sysctl -p

## /etc/hosts編集 as root
vim /etc/hosts
## node1
<node1のClient IP> rac261.<Client用subnet名>.<VCN名>.oraclevcn.com rac261
<node1のInterconnect IP> rac261i.<Interconnect用subnet名>.<VCN名>.oraclevcn.com rac261i
<node1のVIP IP> rac261v.<Client用subnet名>.<VCN名>.oraclevcn.com rac261v
<SCAN VIP IP> rac261s.<Client用subnet名>.<VCN名>.oraclevcn.com rac261s
## node2
<node2のClient IP> rac262.<Client用subnet名>.<VCN名>.oraclevcn.com rac262
<node2のInterconnect IP> rac262i.<Interconnect用subnet名>.<VCN名>.oraclevcn.com rac262i
<node2のVIP IP> rac262v.<Client用subnet名>.<VCN名>.oraclevcn.com rac262v

## SELinuxを無効化 as root
vim /etc/selinux/config
## 以下の通り編集
SELINUX=disabled

## firewalldを停止&無効化 as root
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

## ASM用にマウントした各ブロックボリュームに対してパーティションを1つ作成
sudo su -
fdisk /dev/sdx
## 以下の通り入力
## p
## n
## p
## 1
## <ENTER>
## <ENTER>
## w

## マウント時の権限を設定 as root
vim /etc/rc.d/rc.local
## 以下を末尾に追記 (デバイスファイル名はご自身の設定に応じて変更)
chown grid.asmdba /dev/oracleoci/oraclevdx
chown grid.asmdba /dev/oracleoci/oraclevdy
chown grid.asmdba /dev/oracleoci/oraclevdz

## rc.localに実行権限を付与
chmod +x /etc/rc.d/rc.local

## セカンダリVNICアタッチ as root
systemctl status ocid
systemctl start ocid
systemctl status ocid

## セカンダリVNIC永続化 as root
systemctl enable ocid

## インターコネクト通信用にVXLAN設定 as root
## (RACに必要なマルチキャスト通信を実現させるため)
vim /etc/rc.d/rc.local
## 以下を追記
## node1に追記する場合
NODE1_IP=10.0.2.230 # NODE1のインターコネクトIP
NODE2_IP=10.0.2.123 # NODE2のインターコネクトIP
VXLAN_PORT=4789
INTERFACE_NAME=vxlan0
VXLAN_IP1=192.168.10.1/24 # VXLANのNODE1側IP
VXLAN_IP2=192.168.10.2/24 # VXLANのNODE2側IP
DEVICE_NAME=enp1s0

if ip link add ${INTERFACE_NAME} type vxlan id 100 remote ${NODE2_IP} dstport ${VXLAN_PORT} dev ${DEVICE_NAME}; then
    ip link set up ${INTERFACE_NAME}
    ip address add ${VXLAN_IP1} dev ${INTERFACE_NAME}
fi

## node2に追記する場合
NODE1_IP=10.0.2.230 # NODE1のインターコネクトIP
NODE2_IP=10.0.2.123 # NODE2のインターコネクトIP
VXLAN_PORT=4789
INTERFACE_NAME=vxlan0
VXLAN_IP1=192.168.10.1/24 # VXLANのNODE1側IP
VXLAN_IP2=192.168.10.2/24 # VXLANのNODE2側IP
DEVICE_NAME=enp1s0

if ip link add ${INTERFACE_NAME} type vxlan id 100 remote ${NODE1_IP} dstport ${VXLAN_PORT} dev ${DEVICE_NAME}; then
    ip link set up ${INTERFACE_NAME}
    ip address add ${VXLAN_IP2} dev ${INTERFACE_NAME}
fi

## インスタンスを再起動してから以降を実施 as root
## ASM用デバイスファイルの権限が正しいか (grid:asmdba になっているか) 確認
ls -l /dev/sd*

## SELinuxの無効を確認 as root
getenforce

GIインストール

GIインストールはOUIを使って行いました。
そのためXmingなど、X Windowをローカルに飛ばすためのツールを事前に起動しておきます。

## ssh等価性の設定
## sshキーペア作成 as grid
ssh-keygen
## 公開鍵の情報を authorized_keys ファイルに追記 as grid
vim ~/.ssh/authorized_keys

## sshの設定編集 as root
vim /etc/ssh/sshd_config
## 以下の通り設定変更
X11Forwarding yes
AddressFamily  inet

## sshデーモン再起動
service sshd restart

## X11転送のための設定 as opc
export DISPLAY=localhost:10.0
xauth list

## Xサーバへの接続許可 as grid
sudo -i su - grid
xauth add <xauth listで出力された内容全体を貼り付け>

## unzip GI as grid (node1のみ)
cd /u01/app/23.26.0/grid
unzip -q /tmp/V1054596-01.zip

## GIインストール as grid
export LANG=C
export DISPLAY=localhost:10.0
/u01/app/23.26.0/grid/gridSetup.sh

OUI上で各種設定をした状態のサマリが以下になります。
スクリーンショット 2026-02-14 145421.png
なおプリチェックの段階で、Resource Limits関連の項目がnode1側のみいくつか Failed になりましたが、node2と同じ設定になっていたため全て Ignore しました。

Install を押下するとインストール作業が進んでいきます。
スクリーンショット 2026-02-14 145444.png

途中 orainstRoot.sh および root.sh の実行を促されますので、OSログインして実行します。
ちなみに自動実行するよう設定することも可能です。
スクリーンショット 2026-02-14 145736.png
rootスクリプトを実行するとClusterwareが起動された状態になります。

無事にインストールが完了すると以下画面が表示されます。
スクリーンショット 2026-02-14 152859.png

インストール後に .bashrc を編集しておきます。

## gridのbashrcに追記
vim .bashrc
## node1に追記する場合
export ORACLE_HOME=/u01/app/23.26.0/grid
export PATH=${ORACLE_HOME}/bin:${PATH}:${ORACLE_HOME}/OPatch
export ORACLE_SID=+ASM1
export NLS_LANG=American_America.AL32UTF8

## node2に追記する場合
export ORACLE_HOME=/u01/app/23.26.0/grid
export PATH=${ORACLE_HOME}/bin:${PATH}:${ORACLE_HOME}/OPatch
export ORACLE_SID=+ASM2
export NLS_LANG=American_America.AL32UTF8

GIインストール完了直後のクラスタ・リソースの状態が以下になります。

[grid@rac261 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac261                   STABLE
               ONLINE  ONLINE       rac262                   STABLE
ora.chad
               ONLINE  ONLINE       rac261                   STABLE
               ONLINE  ONLINE       rac262                   STABLE
ora.helper
               OFFLINE OFFLINE      rac261                   STABLE
               OFFLINE OFFLINE      rac262                   IDLE,STABLE
ora.net1.network
               ONLINE  ONLINE       rac261                   STABLE
               ONLINE  ONLINE       rac262                   STABLE
ora.ons
               ONLINE  ONLINE       rac261                   STABLE
               ONLINE  ONLINE       rac262                   STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac261                   STABLE
      2        ONLINE  ONLINE       rac262                   STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac261                   STABLE
      2        ONLINE  ONLINE       rac262                   STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac261                   STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac261                   Started,STABLE
      2        ONLINE  ONLINE       rac262                   Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac261                   STABLE
      2        ONLINE  ONLINE       rac262                   STABLE
ora.cdp1.cdp
      1        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       rac261                   STABLE
ora.cvuhelper
      1        OFFLINE OFFLINE                               STABLE
ora.rac261.vip
      1        ONLINE  ONLINE       rac261                   STABLE
ora.rac262.vip
      1        ONLINE  ONLINE       rac262                   STABLE
ora.rhpserver
      1        OFFLINE OFFLINE                               STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac261                   STABLE
--------------------------------------------------------------------------------

DBインストール

続いてOracle AI Database 26ai本体をインストールします。

## ディレクトリ作成 as oracle
mkdir -p /u01/app/oracle/product/23.26.0/dbhome_1

## unzip DB as oracle (node1のみ)
cd /u01/app/oracle/product/23.26.0/dbhome_1
unzip -q /tmp/V1054592-01.zip

## ssh等価性の設定
## sshキーペア作成 as oracle
ssh-keygen
## 公開鍵の情報を authorized_keys ファイルに追記 as oracle
vim ~/.ssh/authorized_keys

## X11転送のための設定 as opc
export DISPLAY=localhost:10.0
xauth list

## Xサーバへの接続許可 as oracle
sudo -i su - oracle
xauth add <xauth listで出力された内容全体を貼り付け>

## DBインストール as oracle
export LANG=C
export DISPLAY=localhost:10.0
/u01/app/oracle/product/23.26.0/dbhome_1/runInstaller

OUI上で各種設定をした状態のサマリが以下になります。
スクリーンショット 2026-02-14 162206.png
なおこちらもプリチェックの段階で、Resource Limits関連の項目がnode1側のみいくつか Failed になりましたが、node2と同じ設定になっていたため全て Ignore しました。

Install を押下するとインストール作業が進んでいきます。
スクリーンショット 2026-02-14 162221.png

途中 root.sh の実行を促されますので、OSログインして実行します。
ちなみに自動実行するよう設定することも可能です。
スクリーンショット 2026-02-14 162655.png

無事にインストールが完了すると以下画面が表示されます。
スクリーンショット 2026-02-14 162848.png

DBインストール後に .bashrc を編集しておきます。

## .bashrc編集 as oracle
vim ~/.bashrc
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/23.26.0/dbhome_1
export PATH=${ORACLE_HOME}/bin:${PATH}:${ORACLE_HOME}/OPatch
export NLS_LANG=Japanese_Japan.AL32UTF8

DB作成

最後にDBを作成します。

## DBCA起動
export LANG=C
export DISPLAY=localhost:10.0
dbca

OUI上で各種設定をした状態のサマリが以下になります。
スクリーンショット 2026-02-14 164500.png
スクリーンショット 2026-02-14 164505.png
なおこちらもプリチェックの段階で、Resource Limits関連の項目がnode1側のみいくつか Failed になりましたが、node2と同じ設定になっていたため全て Ignore しました。

Finish を押下するとインストール作業が進んでいきます。
スクリーンショット 2026-02-14 164554.png

無事に作成されると以下画面が表示されます。
スクリーンショット 2026-02-14 165157.png

DB作成後に .bashrc を編集しておきます。

## ORACLE_SIDのbashrcへの追記 as oracle
## 以下はDB名が orcl の場合の記入例
vim ~/.bashrc
## node1に追記する場合
export ORACLE_SID=orcl1

## node2に追記する場合
export ORACLE_SID=orcl2

DBが作成されると srvctl からDBの状態を確認できます。

## DB起動状態の確認
[oracle@rac261 ~]$ srvctl status database -d orcl
Instance orcl1 is running on node rac261
Instance orcl2 is running on node rac262

## DB構成の確認
[oracle@rac261 ~]$ srvctl config database -d orcl
Database unique name: orcl
Database name: orcl
Oracle home: /u01/app/oracle/product/23.26.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/ORCL/PARAMETERFILE/spfile.277.1225212573
Password file: +DATA/ORCL/PASSWORD/pwdorcl.261.1225212359
Domain: subnet1.primaryvcn.oraclevcn.com
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: 
Disk Groups: DATA
Mount point paths: 
Services: orcl_pdb1
Type: RAC
Start concurrency: 
Stop concurrency: 
OSDBA group: dba
OSOPER group: 
Database instances: orcl1,orcl2
Configured nodes: rac261,rac262
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services: 
Database is administrator managed

ちなみにパッチレベルは 23.26.1 でした。

[oracle@rac261 ~]$ opatch lspatches
38743688;OCW RELEASE UPDATE 23.26.1.0.0 (GOLD IMAGE) (38743688) Gold Image
38743669;Database Release Update : 23.26.1.0.0 (38743669) Gold Image

本RUであれば「SELECT AI Agents」などAI関連機能も使えるはずですので、本環境で後日試してみたいと思います。

また crsctl からもDBリソースの状態を確認できます。

[grid@rac261 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac261                   STABLE
               ONLINE  ONLINE       rac262                   STABLE
ora.chad
               ONLINE  ONLINE       rac261                   STABLE
               ONLINE  ONLINE       rac262                   STABLE
ora.helper
               OFFLINE OFFLINE      rac261                   STABLE
               OFFLINE OFFLINE      rac262                   IDLE,STABLE
ora.net1.network
               ONLINE  ONLINE       rac261                   STABLE
               ONLINE  ONLINE       rac262                   STABLE
ora.ons
               ONLINE  ONLINE       rac261                   STABLE
               ONLINE  ONLINE       rac262                   STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac261                   STABLE
      2        ONLINE  ONLINE       rac262                   STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac261                   STABLE
      2        ONLINE  ONLINE       rac262                   STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac261                   STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac261                   Started,STABLE
      2        ONLINE  ONLINE       rac262                   Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac261                   STABLE
      2        ONLINE  ONLINE       rac262                   STABLE
ora.cdp1.cdp
      1        OFFLINE OFFLINE                               STABLE
ora.cvu
      1        ONLINE  ONLINE       rac261                   STABLE
ora.cvuhelper
      1        OFFLINE OFFLINE                               STABLE
ora.orcl.db
      1        ONLINE  ONLINE       rac261                   Open,HOME=/u01/app/o
                                                             racle/product/23.26.
                                                             0/dbhome_1,STABLE
      2        ONLINE  ONLINE       rac262                   Open,HOME=/u01/app/o
                                                             racle/product/23.26.
                                                             0/dbhome_1,STABLE
ora.orcl.orcl_pdb1.svc
      1        ONLINE  ONLINE       rac261                   STABLE
      2        ONLINE  ONLINE       rac262                   STABLE
ora.orcl.pdb1.pdb
      1        ONLINE  ONLINE       rac261                   READ WRITE,STABLE
      2        ONLINE  ONLINE       rac262                   READ WRITE,STABLE
ora.rac261.vip
      1        ONLINE  ONLINE       rac261                   STABLE
ora.rac262.vip
      1        ONLINE  ONLINE       rac262                   STABLE
ora.rhpserver
      1        OFFLINE OFFLINE                               STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac261                   STABLE
--------------------------------------------------------------------------------

以上、OCI Computeに26ai RACを構築する手順でした。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?