NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix の NDB と Oracle Database。(21c サイレント インストール)

Nutanix Database Service(NDB)に、Oracle Database 21c の DB Server VM を登録してみます。X Window 環境の準備が面倒なので、今回の Oracle Database はサイレント インストールします。

今回の内容です。

構成のイメージです。

今回の環境

ソフトウェアとバージョンです。

  • Nutanix CE 2.0
  • NDB 2.5.2.1
  • Oracle Linux 7.9
  • Oracle Database 21c(21.3)

Oracle Database 21c のソフトウェアは、下記から入手します。

1. Linux 仮想マシンの準備

DB Server として、Minimal インストールした Oracle Linux 7.9 を利用します。ネットワーク設定済みで、インターネットの経由で Oracle Linux の Yum リポジトリにアクセスできるようにしてあります。

[root@lab-db-01 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.9

1-1. Oracle Home 用ディスクの追加

Oracle Database インストール先として、2つめの仮想ディスク(/dev/sdb)を追加してあります。ファイルシステムを作成して、/u01 にマウントします。

[root@lab-db-01 ~]# echo '2048,' | sfdisk -uS /dev/sdb
[root@lab-db-01 ~]# mkfs -t xfs /dev/sdb1
[root@lab-db-01 ~]# mkdir /u01
[root@lab-db-01 ~]# echo "/dev/sdb1 /u01 xfs defaults 0 0" >> /etc/fstab
[root@lab-db-01 ~]# mount /u01

20GB の /dev/sdb1 が、/u01 にマウントされました。ちなみに、今回はローカル ディスク容量の都合で、作業領域として /mnt にも追加の仮想ディスクをマウントしてあります。

[root@lab-db-01 ~]# lsblk --ascii
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb           8:16   0   20G  0 disk
`-sdb1        8:17   0   20G  0 part /u01
sr0          11:0    1 1024M  0 rom
sdc           8:32   0   10G  0 disk
`-sdc1        8:33   0   10G  0 part /mnt
sda           8:0    0   20G  0 disk
|-sda2        8:2    0   19G  0 part
| |-ol-swap 252:1    0  1.8G  0 lvm  [SWAP]
| `-ol-root 252:0    0 17.2G  0 lvm  /
`-sda1        8:1    0    1G  0 part /boot

1-2. Oracle Database インストール要件パッケージのインストール

パッケージをアップデートして、oracle-database-preinstall-21c をインストールします。ちなみに 19c の場合は、かわりに oracle-database-preinstall-19c をインストールします。

[root@lab-db-01 ~]# yum update -y
[root@lab-db-01 ~]# yum install oracle-database-preinstall-21c -y

1-3. oracle ユーザのパスワード設定

「oracle」という OS ユーザが自動作成されるので、パスワードを設定しておきます。検証環境なので、パスワードは chage で無期限にします。

[root@lab-db-01 ~]# passwd oracle
[root@lab-db-01 ~]# chage -M 10000 oracle

OS を再起動しておきます。

[root@lab-db-01 ~]# reboot

2. Oracle Database のインストール

2-1. ディレクトリの作成

root ユーザで、インストール先のディレクトリを作成します。今回の ORACLE_HOME ディレクトリは、/u01/app/oracle/product/21.3.0/dbhome_1 にします。

[root@lab-db-01 ~]# mkdir -p /u01/app/oraInventory
[root@lab-db-01 ~]# mkdir -p /u01/app/oracle/product/21.3.0/dbhome_1
[root@lab-db-01 ~]# chown -R oracle:oinstall /u01/app/oracle
[root@lab-db-01 ~]# chown -R oracle:oinstall /u01/app/oraInventory
[root@lab-db-01 ~]# chmod -R 775 /u01/app

2-2. ソフトウェアの展開

Oracle Database のソフトウェアは、/mnt ディレクトリに配置してあります。

[root@lab-db-01 ~]# ls -1 /mnt
LINUX.X64_213000_db_home.zip

oracle ユーザでログインします。

[root@lab-db-01 ~]# su - oracle

ORACLE_HOME ディレクトリに移動して、ソフトウェアを展開します。

[oracle@lab-db-01 ~]$ cd /u01/app/oracle/product/21.3.0/dbhome_1/
[oracle@lab-db-01 dbhome_1]$ unzip /mnt/LINUX.X64_213000_db_home.zip

2-3. レスポンス ファイルの作成

サイレント インストールでパラメータを指定する、レスポンス ファイルを作成します。ファイルのサンプルは、下記にあります。

[oracle@lab-db-01 dbhome_1]$ cat /u01/app/oracle/product/21.3.0/dbhome_1/install/response/db_install.rsp

今回は、下記のようにヒア ドキュメントのリダイレクトでレスポンス ファイルを作成します。

  • ファイル名: /home/oracle/dbms.rsp
  • ちなみに、19c の場合は oracle.install.responseFileVersion が ~v19.0.0 になります。
cat << EOF > /home/oracle/dbms.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_BASE=/u01/app/oracle
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
EOF

ファイルが作成されたことを確認しておきます。

[oracle@lab-db-01 dbhome_1]$ cat /home/oracle/dbms.rsp

2-4. サイレント インストールの実行

ソフトウェアを展開した ORACLE_HOME ディレクトリに移動してあることを確認します。

[oracle@lab-db-01 dbhome_1]$ pwd
/u01/app/oracle/product/21.3.0/dbhome_1

下記のコマンドで、サイレント インストールを実行します。

./runInstaller -silent -ignorePrereqFailure -waitforcompletion -responseFile /home/oracle/dbms.rsp

ちなみに、19c をインストールする場合には、runInstaller 実行前に、環境変数の追加設定(export CV_ASSUME_DISTID=OL7)が必要になります。

実際にインストールコマンドを実行すると、下記のようになります。

[oracle@lab-db-01 dbhome_1]$ ./runInstaller -silent -ignorePrereqFailure -waitforcompletion -responseFile /home/oracle/dbms.rsp
Oracle Database設定ウィザードを起動中...

[WARNING] [INS-13014] ターゲット環境は、いくつかのオプションの要件を満たしていません。
   原因: 一部のオプションの前提条件が満たされていません。詳細はログを参照してください。installActions2023-08-22_08-38-30AM.log
   処置: ログから失敗した前提条件チェックのリストを確認します: installActions2023-08-22_08-38-30AM.log。次に、ログ・ ファイルまたはインストレーション・マニュアルのいずれかから、前提条件を満たす適切な構成を見つけ、手動で修正してくださ い。
このセッションのレスポンス・ファイルは次の場所にあります:
 /u01/app/oracle/product/21.3.0/dbhome_1/install/response/db_2023-08-22_08-38-30AM.rsp

このインストール・セッションのログは次の場所にあります:
 /tmp/InstallActions2023-08-22_08-38-30AM/installActions2023-08-22_08-38-30AM.log

rootユーザーとして次のスクリプトを実行します:
        1. /u01/app/oraInventory/orainstRoot.sh
        2. /u01/app/oracle/product/21.3.0/dbhome_1/root.sh

次のノードで/u01/app/oraInventory/orainstRoot.shを実行してください:
[lab-db-01]
次のノードで/u01/app/oracle/product/21.3.0/dbhome_1/root.shを実行してください:
[lab-db-01]


Successfully Setup Software with warning(s).
インストール・セッション・ログの移動先:
 /u01/app/oraInventory/logs/InstallActions2023-08-22_08-38-30AM
[oracle@lab-db-01 dbhome_1]$

root ユーザでログインします。

[oracle@lab-db-01 dbhome_1]$ su -

orainstRoot.sh スクリプトを実行します。

[root@lab-db-01 ~]# /u01/app/oraInventory/orainstRoot.sh
権限を変更中 /u01/app/oraInventory.
グループの読取り/書込み権限を追加中。
全ユーザーの読取り/書込み/実行権限を削除中。

グループ名の変更 /u01/app/oraInventory 宛先 oinstall.
スクリプトの実行が完了しました。

root.sh スクリプトを実行します。

[root@lab-db-01 ~]# /u01/app/oracle/product/21.3.0/dbhome_1/root.sh
Check /u01/app/oracle/product/21.3.0/dbhome_1/install/root_lab-db-01_2023-08-22_08-44-47-383661045.log for the output of root script

3. DB Server VM の登録

3-1. 追加パッケージのインストール

NDB に DB Server VM として登録するために、DB Server に追加でパッケージをインストールします。

[root@lab-db-01 ~]# yum install gcc zip rsync lsof oracle-epel-release-el7 -y

epel リポジトリが登録されるので、さらに sshpass をインストールします。

[root@lab-db-01 ~]# yum install sshpass -y

3-2. NDB Drive ユーザの sudo 設定

今回は、NDB からの管理接続でも oracle ユーザを利用します。そこで、oracle ユーザがパスワードなしで sudo できるようにしておきます。

[root@lab-db-01 ~]# echo 'oracle ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/oracle

パスワードなしで sudo できることを確認しておきます。

[root@lab-db-01 ~]# su - oracle
[oracle@lab-db-01 ~]$ sudo date
2023年  8月 22日 火曜日 08:51:04 JST

3-3. DB Server VM の登録

NDB Server に、Oracle Database をインストールした DB Server を登録します。

「データベース サーバー VM」→「リスト」画面を開きます。

そして、「登録」→「ORACLE」→「シングル ノード サーバー」をクリックします。

「1 データベース サーバー VM」タブで、パラメータを入力して「次へ」をクリックします。

  • IP アドレスまたは VM 名: DB Server の仮想マシンを選択すると、IP アドレスが表示される。
  • NDB ドライブ ユーザー: oracle
  • Oracle データベース ホーム: /u01/app/oracle/product/21.3.0/dbhome_1
  • パスワード: oracle ユーザのパスワードを入力

「2 自動パッチ適用 (オプション)」では、そのまま「登録」をクリックします。

すこし待ち、「オペレーション」画面などで処理が完了したことを確認します。

4. ソフトウェア プロファイルの作成

登録した DB Server VM から、ソフトウェア プロファイルを作成します。

「プロファイル」→「ソフトウェア」画面を開き、「作成」→「ORACLE」→「シングル インスタンス データベース」をクリックします。

「1 ソフトウェア」タブで、下記を入力して「次へ」をクリックします。

  • プロファイル名: Oracle_21.3_SI
  • ソフトウェア プロファイル バージョンの名前: Oracle_21.3_SI (1.0)
  • 登録しておいた DB Server VM を選択する

「2 注釈」では、そのまま「作成」をクリックします。

「オペレーション」画面で、プロファイルの作成が完了したことを確認します。

「プロファイル」→「ソフトウェア」画面で、ソフトウェア プロファイルの名前「Oracle_21.3_SI」をクリックします。

ソフトウェア プロファイルには、自動的に「ソフトウェア プロファイル バージョン」が作成されるので、「更新」ボタンをクリックして「公開済み」に変更しておきます。

ここからは、下記の投稿の 4-2 ~と同様に DB をプロビジョニングできるようになります。

以上。

 

©2023 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。