目次
- この記事でやること
- 4-0. 作業ディレクトリ作成・ファイルのアップロード
- 4-1. oracle-database-preinstall-19c のインストール(ノード1・2、rootユーザー)
- 4-2. 必要パッケージの追加インストール(ノード1・2、rootユーザー)
- 4-3. OSグループ・ユーザーの作成(ノード1・2、rootユーザー)
- 4-4. OS設定(ノード1・2、rootユーザー)
- 4-5. oracleユーザー設定(ノード1・2、oracleユーザー)
- 4-6. gridユーザー設定(ノード1・2、gridユーザー)
- 4-7. インストーラー展開・RUパッチ解凍・cvuqdisk・OPatch更新(ノード1)
- まとめ
この記事でやること
第4回では、GI(Grid Infrastructure)インストールに必要な前準備をすべて完了させます。
| 手順 | 内容 | ユーザー | 対象 |
|---|---|---|---|
| 4-0 | 作業ディレクトリ作成・ファイルアップロード | root | ノード1・2 |
| 4-1 | oracle-database-preinstall-19c インストール | root | ノード1・2 |
| 4-2 | 必要パッケージの追加インストール | root | ノード1・2 |
| 4-3 | OSグループ・ユーザーの作成 | root | ノード1・2 |
| 4-4 | OS設定(リソース制限・rlwrap・udev・ディレクトリ・HugePages) | root | ノード1・2 |
| 4-5 | oracleユーザー設定(環境変数・ulimit確認・SSH) | oracle | ノード1・2 |
| 4-6 | gridユーザー設定(環境変数・ulimit確認・SSH) | grid | ノード1・2 |
| 4-7 | インストーラー展開・cvuqdisk・OPatch更新 | grid・oracle・root | ノード1(一部2も) |
手順4-4まではrootユーザーで実施します。手順4-5でoracleユーザーに、4-6でgridユーザーに切り替え、それぞれの設定を完了させてからrootに戻ります。
4-0. 作業ディレクトリ作成・ファイルのアップロード
以降の手順で使用するファイルをすべてまとめて /tmp/oracle-install/ へアップロードします。
作業ディレクトリの作成(ノード1・2、rootユーザー)
ノード1・2の両方で作業ディレクトリを作成します。
# ホストとユーザの確認
hostname && whoami
mkdir -p /tmp/oracle-install
# grid・oracleユーザーが読み書きできるよう全員に書き込み権限を付与
chmod 777 /tmp/oracle-install
ls -la /tmp/ | grep oracle-install
ファイルのアップロード(踏み台→ノード1)
以下のファイルをノード1の /tmp/oracle-install/ へアップロードします。scp・WinSCP・SFTP など各自の環境の方法で転送してください。
| ファイル | 用途 |
|---|---|
oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm | Oracle preinstall RPM |
rlwrap-0.46.1-1.el8.x86_64.rpm | rlwrap RPM |
V982068-01.zip | GI 19c インストーラー |
V982063-01.zip | DB 19c インストーラー |
p37957391_190000_Linux-x86-64.zip | GI/DB RU パッチ |
p6880880_190000_Linux-x86-64.zip | OPatch 最新版 |
RPMファイルのノード2への転送(ノード1のrootで実行)
インストーラーのzipはノード1のみで使用しますが、RPMはノード2でも必要なためコピーします。
WORK_DIR=/tmp/oracle-install
scp ${WORK_DIR}/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm root@192.168.30.22:${WORK_DIR}
scp ${WORK_DIR}/rlwrap-0.46.1-1.el8.x86_64.rpm root@192.168.30.22:${WORK_DIR}
ファイル確認(ノード1)
ls -la /tmp/oracle-install/
| ファイル名 | 用途 |
|---|---|
oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm | 4-1でインストール |
rlwrap-0.46.1-1.el8.x86_64.rpm | 4-4でインストール |
V982068-01.zip | GI 19.3.0.0.0 ベースイメージ |
V982063-01.zip | Oracle DB 19.3.0.0.0 ベースイメージ |
p6880880_190000_Linux-x86-64.zip | OPatch |
p37957391_190000_Linux-x86-64.zip | GI/DB Release Update 19.28.0.0.0 |
ファイル確認(ノード2)
ノード2にはRPM2本のみ転送済みであることを確認します。
ls -la /tmp/oracle-install/
| ファイル名 | 用途 |
|---|---|
oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm | 4-1でインストール |
rlwrap-0.46.1-1.el8.x86_64.rpm | 4-4でインストール |
4-1. oracle-database-preinstall-19c のインストール(ノード1・2、rootユーザー)
oracle-database-preinstall-19c RPMは、Oracle Databaseのインストールに必要なカーネルパラメータ・OSグループ・ユーザー設定などを自動で行うパッケージです。手動で行うと数十項目に及ぶ設定を一括で処理します。
各ノードでインストールします(ノード1・2同時実行可)。
# ホストとユーザの確認
hostname && whoami
# dnfを使うことで依存パッケージをリポジトリから自動解決してインストールする
# (rpm -ivh では依存解決されないためエラーになる)
dnf install -y /tmp/oracle-install/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
# ※ 1.0-1 と 1.0-2 の2種類がある場合は新しい 1.0-2 を使用する
インストール後、preinstallが書き込んだカーネルパラメータを確認します。
# preinstallが書き込んだパラメータを確認
sysctl -a | grep -E "^fs.aio-max-nr|^fs.file-max|^kernel.shmall|^kernel.shmmax|^kernel.shmmni|^kernel.sem |^kernel.panic_on_oops|^net.ipv4.ip_local_port_range|^net.core.rmem_default|^net.core.rmem_max|^net.core.wmem_default|^net.core.wmem_max"
preinstallが自動設定する主要なカーネルパラメータ:
| パラメータ | 設定値 | 用途 |
|---|---|---|
fs.file-max | 6815744 | システム全体のファイルオープン上限 |
kernel.sem | 250 32000 100 128 | セマフォ設定(Oracle内部プロセス間通信に使用) |
kernel.shmall | 1048576 | 共有メモリ総ページ数 |
kernel.shmmax | 4294967296 | 共有メモリ1セグメントの最大値(SGA用) |
kernel.shmmni | 4096 | 共有メモリセグメントの最大数 |
net.ipv4.ip_local_port_range | 9000 65500 | エフェメラルポート範囲を拡張(Oracleの多数の並行接続・RAC内部通信に十分なポート数を確保するため) |
kernel.panic_on_oops | 1 | カーネルoops発生時に即パニック再起動(oopsで応答なし状態のまま残り続けることを防ぎ、ノードを確実に再起動させてCRSフェンシングを正常に機能させるため) |
# transparent_hugepageが無効化されていることを確認(第2回で設定済み)
cat /sys/kernel/mm/transparent_hugepage/enabled
# → always madvise [never]
# NOZEROCONF確認
# Zeroconfは、DHCPが使えない場合にOSが自動で169.254.x.x(リンクローカルアドレス)を
# NICに割り当て、169.254.0.0/16のルートを追加する機能。
# OracleはVIPフェイルオーバーやクラスタ内部通信にこの範囲を使うため、
# ZeroconfのルートがOracleの通信と競合しないようNOZEROCONF=yesで無効化する。
cat /etc/sysconfig/network
# → NOZEROCONF=yes
4-2. 必要パッケージの追加インストール(ノード1・2、rootユーザー)
preinstall RPMが対応していない必須パッケージを追加インストールします。まず未インストールのパッケージを確認してから実施します。
# ホストとユーザの確認
hostname && whoami
# 未インストールパッケージの確認(何も出力されなければ全導入済み)
for pkg in bc binutils compat-openssl10 elfutils-libelf elfutils-libelf-devel \
fontconfig glibc glibc-devel ksh libaio libaio-devel \
libXrender libX11 libXau libXi libXtst libgcc libnsl librdmacm \
libstdc++ libstdc++-devel libxcb libibverbs liblsan \
make policycoreutils policycoreutils-python-utils \
rng-tools smartmontools sysstat; do
rpm -q $pkg > /dev/null || echo "未インストール: $pkg"
done
出力があったパッケージのみインストールします。本環境では以下のパッケージが未インストールでした。
dnf install -y \
compat-openssl10 \
elfutils-libelf-devel \
librdmacm \
liblsan \
rng-tools
# インストール確認
rpm -q compat-openssl10 elfutils-libelf-devel librdmacm liblsan rng-tools
4-3. OSグループ・ユーザーの作成(ノード1・2、rootユーザー)
事前確認(重複チェック)
# ホストとユーザの確認
hostname && whoami
# 既存グループの確認(preinstallで作成済みのグループを確認)
grep -E "oinstall|dba|oper|backupdba|dgdba|kmdba|asmdba|asmoper|asmadmin|racdba" /etc/group
# → oinstall/dba/oper/backupdba/dgdba/kmdba/racdba はpreinstall RPMで作成済み
# → asmdba/asmoper/asmadmin は未作成(次の手順で作成する)
# gridユーザーの重複確認(何も表示されなければOK)
id grid 2>/dev/null
grep 1001 /etc/passwd
グループの作成
Oracleは用途別にOSグループを分けることでオペレーション権限を細かく管理します。
| グループ名 | GID | 役割 |
|---|---|---|
| oinstall | 54321 | Oracleインベントリ管理(主グループ) |
| dba | 54322 | DB管理者権限(SYSDBA) |
| oper | 54323 | 起動・停止運用権限(SYSOPER) |
| backupdba | 54324 | バックアップ・リカバリ権限(SYSBACKUP) |
| dgdba | 54325 | Data Guard管理権限(SYSDG) |
| kmdba | 54326 | 鍵管理権限(SYSKM) |
| asmdba | 54327 | ASM DB接続権限 |
| asmoper | 54328 | ASM 起動・停止権限 |
| asmadmin | 54329 | ASM管理権限(gridユーザーの主グループ) |
| racdba | 54330 | RAC管理権限 |
# グループの作成
# ※ oinstall/dba/oper/backupdba/dgdba/kmdba/racdba はpreinstall RPM適用済みのため
# 「既に存在します」と表示されるが問題なし。asmdba/asmoper/asmadmin のみ新規作成される。
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 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
groupadd -g 54330 racdba
# 全グループが表示されることを確認
grep -E "oinstall|dba|oper|backupdba|dgdba|kmdba|asmdba|asmoper|asmadmin|racdba" /etc/group
ユーザーの作成・変更
# gridユーザーの作成(oracleユーザーはpreinstallで作成済み)
useradd -u 1001 -g oinstall -G asmadmin,asmdba,asmoper,racdba grid
passwd grid
# oracleユーザーのグループ変更(ASM関連グループを追加)
usermod -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba oracle
passwd oracle
# 確認(UID・グループが正しく設定されていること)
id oracle
id grid
4-4. OS設定(ノード1・2、rootユーザー)
リソース制限・rlwrap・udevルール・ディレクトリ・HugePagesをすべてrootユーザーでまとめて設定します。
リソース制限の設定
oracleユーザーの基本設定はpreinstallで完了済みです。memlock(SGA固定用) と gridユーザー分 を追記します。
memlock の値について: HugePagesを使ってSGAをメモリに固定するために必要な設定です。物理メモリの約60%を目安に設定します。12GB環境では
12 × 1024 × 1024 × 0.6 ≒ 7549747が上限の目安です。本環境(検証用途)では5274299(約5GB)に設定しています。
※ 本環境の値。各自の環境に読み替えてください。
# ホストとユーザの確認
hostname && whoami
# バックアップ取得
work_date=$(date +%Y%m%d)
cp -p /etc/security/limits.d/oracle-database-preinstall-19c.conf{,.${work_date}}
# ファイル末尾に追記(cat >> でファイルを上書きせず末尾に追加)
cat >> /etc/security/limits.d/oracle-database-preinstall-19c.conf << 'EOF'
# oracle user — memlock追加(HugePagesによるSGA固定に必要)
oracle soft memlock 5274299
oracle hard memlock 5274299
# grid user
# ASMインスタンス(+ASM)が独自のSGAを持つため、oracleユーザーと同様にHugePagesへの固定が必要
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
grid soft memlock 5274299
grid hard memlock 5274299
EOF
# 追記した行が表示されることを確認
diff /etc/security/limits.d/oracle-database-preinstall-19c.conf{,.${work_date}}
rlwrapのインストール
rlwrapは sqlplus や rman にコマンド履歴・行編集機能を追加するユーティリティです(ノード1・2同時実行可)。
# 4-0でアップロード済みのRPMからインストール
dnf install -y /tmp/oracle-install/rlwrap-0.46.1-1.el8.x86_64.rpm
# 確認
rpm -q rlwrap
udevルールの設定
iSCSI経由で接続されたASMディスク(sdb・sdc)のオーナー・パーミッションをudevルールで固定します。udevルールを設定しないと、再起動後にディスクのオーナーがrootに戻りASMが起動できなくなります。
# 現在のデバイス一覧確認(sdb・sdcがASMディスクであることを確認)
ls -l /dev/sd*
# udevルールを作成(sdb・sdcをgrid:asmadmin / 0660で固定)
cat > /etc/udev/rules.d/99-oracle.rules << 'EOF'
KERNEL=="sd[b-c]",ACTION=="add|change",OWNER="grid",GROUP="asmadmin",MODE="0660"
EOF
# 内容確認
cat /etc/udev/rules.d/99-oracle.rules
# udevルールを即時適用
/sbin/udevadm trigger --type=devices --action=add
# grid:asmadmin / 0660 になっていることを確認
ls -l /dev/sd*
実行例:
brw-rw---- 1 grid asmadmin 8, 16 9月 29 21:58 /dev/sdb
brw-rw---- 1 grid asmadmin 8, 32 9月 29 21:58 /dev/sdc
インストールディレクトリの準備
grid・oracleそれぞれのOracleホームとインベントリディレクトリを作成し、適切なオーナーを設定します。
# ディレクトリ作成
mkdir -p /u01/app/grid
mkdir -p /u01/app/19.0.0/grid
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u01/app/oraInventory
# /u01配下を一括でgrid:oinstallに設定してから、oracle配下だけ上書き
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
# 権限確認
# /u01/app: grid:oinstall, drwxrwxr-x
ls -la /u01/app/
# Grid Home(/u01/app/19.0.0/grid): grid:oinstall
ls -la /u01/app/19.0.0/
# DB Home(/u01/app/oracle/product/19.0.0/dbhome_1): oracle:oinstall
ls -la /u01/app/oracle/product/19.0.0/
# oraInventory: grid:oinstall
ls -la /u01/app/oraInventory
HugePagesの設定
HugePagesはLinuxの大ページ機能で、OracleのSGA(System Global Area)をメモリに固定して高速化します。通常の4KBページの代わりに2MBページを使用することで、ページテーブルのオーバーヘッドを削減します。
HugePagesのサイズ計算: SGAサイズ ÷ 2MB(切り上げ)。本環境ではSGAを約6GBに設定予定のため、
6 × 1024 ÷ 2 = 3072ページとしています。
※ 本環境の値。各自のSGAサイズに合わせて計算してください。
# 現在の状態確認
grep Huge /proc/meminfo
# バックアップ取得
work_date=$(date +%Y%m%d)
cp -p /etc/sysctl.conf{,.${work_date}}
# HugePagesのページ数を設定(3072 × 2MB = 6GB)
echo 'vm.nr_hugepages=3072' >> /etc/sysctl.conf
# 差分確認(vm.nr_hugepages=3072 が追加されていること)
diff /etc/sysctl.conf{,.${work_date}}
# 即時適用
sysctl -p
# 確認(HugePages_Total: 3072 になっていること)
grep Huge /proc/meminfo
4-5. oracleユーザー設定(ノード1・2、oracleユーザー)
ここからはoracleユーザーで、環境変数・エイリアス・ulimit確認・SSHをまとめて設定します。
ORACLE_SID はノードごとに異なります。 ノード1・2を同時実行する場合は、SIDの追記のみ個別に実施してください。
su - oracle
.bash_profileの設定
# ホストとユーザの確認
hostname && whoami
# バックアップ
work_date=$(date +%Y%m%d)
cp -p ~/.bash_profile{,.${work_date}}
# 環境変数を追記
cat >> ~/.bash_profile << 'EOF'
umask 022
# --- Oracle Environment Variables ---
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=${ORACLE_HOME}/bin:$PATH
export LANG=ja_JP.UTF-8
export NLS_LANG=Japanese_Japan.AL32UTF8
EOF
# ORACLE_SIDはノードごとに異なるため個別に追記
# ノード1(ol8-rac19-21)
echo "export ORACLE_SID=rc19u1" >> ~/.bash_profile
# ノード2(ol8-rac19-22)
# echo "export ORACLE_SID=rc19u2" >> ~/.bash_profile
# 差分確認
diff ~/.bash_profile{,.${work_date}}
# 反映
source ~/.bash_profile
echo ${ORACLE_HOME}
echo $ORACLE_SID
.bashrcの設定
cat >> ~/.bashrc << 'EOF'
# --- Oracle aliases ---
alias sqlplus='rlwrap -pRed sqlplus'
alias sql='sqlplus / as sysdba'
alias rman='rlwrap -pRed rman'
export PS1='\[\e[1;32m\]\u@\h:\W#\[\e[m\] '
EOF
# 反映
source ~/.bashrc
ulimitの確認
# ファイルオープン数(soft: 1024 / hard: 65536)
ulimit -Sn; ulimit -Hn
# プロセス数(soft: 2047 / hard: 16384)
ulimit -Su; ulimit -Hu
# スタックサイズ kB(soft: 10240 / hard: 32768)
ulimit -Ss; ulimit -Hs
# ロックメモリ kB(5274299 以上)
ulimit -l
SSHの構成
GIインストーラーはインストール前にノード間のSSH疎通をチェックします。RHEL8/OL8ではデフォルトのSSHキーがPEM形式以外で生成されるため、手動でPEM形式のキーを生成する必要があります(MOS Doc ID 2934892.1)。
インストーラーのSSH構成ボタンは絶対に使わないこと。 GIインストーラーの「SSH接続©…」ボタンを押すと、OL8ではPEM形式以外のキーが生成され、SSH接続テストが失敗します。事前に手動で作成したキーをそのまま使用します。
ノード1・2 両方で実行(SSH鍵生成):
# .sshディレクトリの作成と権限設定
mkdir -p ~/.ssh
chmod 700 $HOME/.ssh
# PEM形式のRSAキーペアを生成(パスフレーズなし)
ssh-keygen -t rsa -m pem -P '' -N '' -f ~/.ssh/id_rsa -q
# authorized_keysファイルを作成し、自ノードの公開鍵を登録
cd ~/.ssh
touch authorized_keys
chmod 600 authorized_keys
cat id_rsa.pub >> authorized_keys
# 権限確認(.ssh は drwx------、authorized_keys/id_rsa は -rw------- になること)
ls -la ~/.ssh/
公開鍵の交換:
注意: 鍵交換前のため、初回の
scpはパスワード認証が必要です。
# ノード1で実施(ノード2の公開鍵を取得して追記)
scp oracle@ol8-rac19-22.internal:/home/oracle/.ssh/id_rsa.pub /tmp/id_rsa.pub.oracle.node2
cat /tmp/id_rsa.pub.oracle.node2 >> ~/.ssh/authorized_keys
# ノード2で実施(ノード1の公開鍵を取得して追記)
scp oracle@ol8-rac19-21.internal:/home/oracle/.ssh/id_rsa.pub /tmp/id_rsa.pub.oracle.node1
cat /tmp/id_rsa.pub.oracle.node1 >> ~/.ssh/authorized_keys
SSH接続テスト:
インストーラーのSSH接続チェックに備え、短縮名・FQDNの両方で事前接続して
known_hostsに登録しておきます。初回接続時はホスト認証プロンプトが表示されるため、必ずyesを入力してください。
# ノード1から実行
ssh oracle@ol8-rac19-21 'exit'
ssh oracle@ol8-rac19-21.internal 'exit'
ssh oracle@ol8-rac19-22 'exit'
ssh oracle@ol8-rac19-22.internal 'exit'
# ノード2から実行
ssh oracle@ol8-rac19-22 'exit'
ssh oracle@ol8-rac19-22.internal 'exit'
ssh oracle@ol8-rac19-21 'exit'
ssh oracle@ol8-rac19-21.internal 'exit'
# known_hostsに全ホストが登録されていることを確認(短縮名・FQDNの両方)
cat ~/.ssh/known_hosts
# authorized_keysに自ノード+対向ノードの公開鍵が2行登録されていることを確認
cat ~/.ssh/authorized_keys
exit
4-6. gridユーザー設定(ノード1・2、gridユーザー)
gridユーザーもoracleユーザーと同様に、環境変数・エイリアス・ulimit確認・SSHをまとめて設定します。
ORACLE_SID はノードごとに異なります。 ノード1・2を同時実行する場合は、SIDの追記のみ個別に実施してください。
su - grid
.bash_profileの設定
# ホストとユーザの確認
hostname && whoami
# バックアップ
work_date=$(date +%Y%m%d)
cp -p ~/.bash_profile{,.${work_date}}
# 環境変数を追記
cat >> ~/.bash_profile << 'EOF'
umask 022
# --- Grid Environment Variables ---
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.0.0/grid
export PATH=${ORACLE_HOME}/bin:$PATH
export LANG=ja_JP.UTF-8
EOF
# ORACLE_SIDはノードごとに異なるため個別に追記
# ノード1(ol8-rac19-21)
echo "export ORACLE_SID=+ASM1" >> ~/.bash_profile
# ノード2(ol8-rac19-22)
# echo "export ORACLE_SID=+ASM2" >> ~/.bash_profile
# 差分確認
diff ~/.bash_profile{,.${work_date}}
# 反映
source ~/.bash_profile
echo ${ORACLE_HOME}
echo $ORACLE_SID
.bashrcの設定
cat >> ~/.bashrc << 'EOF'
# --- Grid aliases ---
alias sqlplus='rlwrap -pRed sqlplus'
alias sql='sqlplus / as sysasm'
export PS1='\[\e[1;36m\]\u@\h:\W#\[\e[m\] ' # シアン(oracleの緑と区別)
EOF
# 反映
source ~/.bashrc
ulimitの確認
# ファイルオープン数(soft: 1024 / hard: 65536)
ulimit -Sn; ulimit -Hn
# プロセス数(soft: 2047 / hard: 16384)
ulimit -Su; ulimit -Hu
# スタックサイズ kB(soft: 10240 / hard: 32768)
ulimit -Ss; ulimit -Hs
# ロックメモリ kB(5274299 以上)
ulimit -l
SSHの構成
gridユーザーもoracleユーザーと同様にSSHを設定します。
ノード1・2 両方で実行(SSH鍵生成):
mkdir -p ~/.ssh
chmod 700 $HOME/.ssh
ssh-keygen -t rsa -m pem -P '' -N '' -f ~/.ssh/id_rsa -q
cd ~/.ssh
touch authorized_keys
chmod 600 authorized_keys
cat id_rsa.pub >> authorized_keys
ls -la ~/.ssh/
公開鍵の交換:
# ノード1で実施(ノード2の公開鍵を取得して追記)
scp grid@ol8-rac19-22.internal:/home/grid/.ssh/id_rsa.pub /tmp/id_rsa.pub.grid.node2
cat /tmp/id_rsa.pub.grid.node2 >> ~/.ssh/authorized_keys
# ノード2で実施(ノード1の公開鍵を取得して追記)
scp grid@ol8-rac19-21.internal:/home/grid/.ssh/id_rsa.pub /tmp/id_rsa.pub.grid.node1
cat /tmp/id_rsa.pub.grid.node1 >> ~/.ssh/authorized_keys
SSH接続テスト:
# ノード1から実行
ssh grid@ol8-rac19-21 'exit'
ssh grid@ol8-rac19-21.internal 'exit'
ssh grid@ol8-rac19-22 'exit'
ssh grid@ol8-rac19-22.internal 'exit'
# ノード2から実行
ssh grid@ol8-rac19-22 'exit'
ssh grid@ol8-rac19-22.internal 'exit'
ssh grid@ol8-rac19-21 'exit'
ssh grid@ol8-rac19-21.internal 'exit'
# known_hostsに全ホストが登録されていることを確認
cat ~/.ssh/known_hosts
# authorized_keysに自ノード+対向ノードの公開鍵が2行登録されていることを確認
cat ~/.ssh/authorized_keys
exit
4-7. インストーラー展開・RUパッチ解凍・cvuqdisk・OPatch更新(ノード1)
GI・DBインストールに必要なファイルの準備をします。gridユーザーでGI展開・RUパッチ解凍・OPatch更新、oracleユーザーでDB展開・OPatch更新、rootユーザーでcvuqdiskのインストールを実施します。
GIインストーラーの展開(gridユーザー)
su - grid
# ホストとユーザの確認
hostname && whoami
# Grid HomeにGIベースイメージを展開
unzip -q /tmp/oracle-install/V982068-01.zip -d ${ORACLE_HOME}
# 展開確認(gridSetup.sh が存在し、grid所有になっていること)
ls -l ${ORACLE_HOME}/gridSetup.sh
RUパッチの解凍(gridユーザー)
GIインストール時に
-applyRUで指定するディレクトリです。次の手順でスナップショットを取得するため、シャットダウン前にここで解凍しておきます。
# RUパッチを解凍
unzip -q /tmp/oracle-install/p37957391_190000_Linux-x86-64.zip -d /tmp/oracle-install
# 解凍確認(37957391 ディレクトリが存在すること)
ls -ld /tmp/oracle-install/37957391
OPatch更新(gridユーザー)
GIベースイメージに同梱されているOPatchをMOSからダウンロードした最新版に更新します。
# 既存OPatchをリネームしてバックアップ
mv ${ORACLE_HOME}/OPatch{,.org}
# 最新OPatchをGrid Homeに展開
unzip -q /tmp/oracle-install/p6880880_190000_Linux-x86-64.zip -d ${ORACLE_HOME}
# バージョン確認
${ORACLE_HOME}/OPatch/opatch version
exit
DBインストーラーの展開(oracleユーザー)
su - oracle
# ホストとユーザの確認
hostname && whoami
# DB HomeにDBベースイメージを展開
unzip -q /tmp/oracle-install/V982063-01.zip -d ${ORACLE_HOME}
# 展開確認(runInstaller が存在し、oracle所有になっていること)
ls -l ${ORACLE_HOME}/runInstaller
DB OPatch更新(oracleユーザー)
GIと同様に、DBベースイメージに同梱されているOPatchをMOSからダウンロードした最新版に更新します。
# 既存OPatchをリネームしてバックアップ
mv ${ORACLE_HOME}/OPatch{,.org}
# 最新OPatchをDB Homeに展開
unzip -q /tmp/oracle-install/p6880880_190000_Linux-x86-64.zip -d ${ORACLE_HOME}
# バージョン確認
${ORACLE_HOME}/OPatch/opatch version
exit
cvuqdiskのインストール(rootユーザー)
cvuqdiskはOracleのクラスタ検証ユーティリティがディスクデバイスを検証するために使用するRPMです。GIインストーラーの前提条件チェックで必要になります。
ノード1からノード2へRPMを配布します(ノード1のrootで実行)。
# ホストとユーザの確認
hostname && whoami
# GI展開ディレクトリからRPMを検索
find /u01/app/19.0.0/grid -name '*cvuqdisk*'
# ノード2へ転送
scp /u01/app/19.0.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm root@10.0.10.22:/tmp/
両ノードでインストールします。
# 既存バージョン確認
rpm -qi cvuqdisk
# インストール(CVUQDISK_GRPでインストールグループを指定)
# 参考: https://docs.oracle.com/cd/E96517_01/ladbi/installing-the-cvuqdisk-rpm-for-linux.html
# ノード1: Grid Homeから直接指定
CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
rpm -iv /u01/app/19.0.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
# ノード2: 転送済みファイルを指定
# CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
# rpm -iv /tmp/cvuqdisk-1.0.10-1.rpm
# インストール確認
rpm -qi cvuqdisk
まとめ
この記事では以下を完了しました。
- 必要ファイルの一括アップロード(/tmp/oracle-install/)
- GIインストール前準備(preinstall RPM・パッケージ・ユーザー・OS設定・oracle/gridユーザー環境設定・SSH)
- GIインストーラーの展開・RUパッチ解凍・cvuqdisk・OPatch更新
次の記事では、Grid Infrastructure 19.28 RU のインストール(gridSetup.sh -applyRU)とRECOディスクグループの作成を行います。








