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 のソフトウェアは、下記から入手します。
- https://www.oracle.com/database/technologies/oracle21c-linux-downloads.html
- ファイル: LINUX.X64_213000_db_home.zip
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 をプロビジョニングできるようになります。
以上。