VirtualBoxにOracle Database 19c RACを構築(後編)
9. こちらの記事の続きです。
10. Oracle Grid Infrastructureのインストール
10-1. ファイルの準備
node1のVMを起動します。
su - grid
$ cd /u01/app/19.3.0/grid/;pwd
$ ls -l /tmp/work/LINUX.X64_193000_grid_home.zip
$ unzip -q /tmp/work/LINUX.X64_193000_grid_home.zip -d /u01/app/19.3.0/grid/
10-2. cvuqdiskパッケージのインストール
Cluster Verification Utility (CVU)のために、cvuqdiskパッケージを両ノードにインストールします。rootに戻るのをお忘れなく。
まず、パッケージがインストールされているか確認します。
rpm -q cvuqdisk
インストールされていない場合は、以下の手順を実行します。
cd /u01/app/19.3.0/grid/cv/rpm;pwd
ls -l cvuqdisk*
export CVUQDISK_GRP=oinstall
rpm -ivh cvuqdisk-1.0.10-1.rpm
rpm -q cvuqdisk
パッケージをnode2に送ります。
※先にnode2でrpm -q cvuqdisk
を実行し、インストール済みであればこの手順は不要です。
scp cvuqdisk-1.0.10-1.rpm 192.168.56.102:/tmp/
出力例:
[root@node1 rpm]# scp cvuqdisk-1.0.10-1.rpm 192.168.56.102:/tmp/
The authenticity of host '192.168.56.102 (192.168.56.102)' can't be established.
ECDSA key fingerprint is SHA256:+BYhvUai9hGFMloZdGYTcEtTV6hpPYVSPBBpFeOOorQ.
ECDSA key fingerprint is MD5:b4:db:ca:a3:4d:11:b3:a1:8f:1a:da:dd:46:e5:e0:63.
Are you sure you want to continue connecting (yes/no)? '<===「yes」を入力し、Enterを押す
Warning: Permanently added '192.168.56.102' (ECDSA) to the list of known hosts.
root@192.168.56.102's password: <===rootのパスワードを入力し、Enterを押す
cvuqdisk-1.0.10-1.rpm 100% 11KB 1.2MB/s 00:00
[root@node1 rpm]#
10-3. cvuqdiskパッケージのインストール(node2)
node2で作業します。
パッケージがインストールされているか確認します。
rpm -q cvuqdisk
インストールされていない場合は、以下の手順を実行します。
cd /tmp/
export CVUQDISK_GRP=oinstall
rpm -ivh cvuqdisk-1.0.10-1.rpm
rpm -q cvuqdisk
10-4. インストーラー起動
インストーラー起動前に、ネットワーク関連で1つだけ作業します。
node1,node2の各ノードで、以下のコマンドを実行します。
nmcli c modify enp0s3 connection.autoconnect no
nmcli c down enp0s3
node1に戻り、インストーラーを起動します。
su - grid
$ export LANG=ja_JP.utf8
$ $ORACLE_HOME/gridSetup.sh
※Tera TermでGUIを使用したい場合は、以下の手順などであらかじめ設定します。
10-5. Gridインストール
▼ デフォルト[新しいクラスタ用のOracle Grid Infrastructureの構成]
▼ デフォルト[Oracleスタンドアロン・クラスタの構成]
▼ 「cluster-rac19c」「scan.rac19c」を記入
▼ [追加] > 「node2.rac19c」「node2-vip.rac19c」を記入 > [OK]
▼ [SSH接続] > OSパスワードにgridのパスワードを記入
▼ [設定] をクリック
▼ [enp0s9] を「ASMおよびプライベート」に変更
▼ デフォルト[Oracle Flex ASMを記憶域として使用]
▼ デフォルト[いいえ]
▼ 「外部」「/dev/sdb1」を選択
▼ 任意のパスワードを記入
▼ デフォルト[Intelligent Platform Management Interface(IPMI)を使用しない]
▼ デフォルト(EMは登録しない)
▼ デフォルト
▼ デフォルト「/u01/app/grid」
▼ デフォルト「/u01/app/oraInventory」
▼ デフォルト
▼ 待ちます...
▼ [修正および再チェック] をクリックし、node1,node2でスクリプトをrootユーザーとして実行
出力例:
[root@node1 ~]# /tmp/GridSetupActions2024-03-17_05-28-11PM/CVU_19.0.0.0.0_grid/runfixup.sh
All Fix-up operations were completed successfully.
[root@node1 ~]#
実行後、[OK]をクリック
▼ [すべて無視]を選択(スワップサイズとRPM Package Manegerは無視)
▼ 待ちます...
▼ 構成スクリプトを両ノードで実行(rooユーザー)
※必ず先にnode1で実行が完了してから、node2で実行すること
出力例:
[root@node1 ~]# /u01/app/oraInventory/orainstRoot.sh
権限を変更中 /u01/app/oraInventory.
グループの読取り/書込み権限を追加中。
全ユーザーの読取り/書込み/実行権限を削除中。
グループ名の変更 /u01/app/oraInventory 宛先 oinstall.
スクリプトの実行が完了しました。
[root@node1 ~]#
[root@node1 ~]# /u01/app/19.3.0/grid/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/19.3.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]: <==== 「/usr/local/bin」を入力
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
(中略)
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE deb22038c0874fe6bfc75b268420da15 (/dev/sdb1) [DATA]
1の投票ディスクを検出しました。
2024/03/17 19:07:20 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
2024/03/17 19:08:24 CLSRSC-343: Successfully started Oracle Clusterware stack
2024/03/17 19:08:24 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
2024/03/17 19:10:10 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
2024/03/17 19:10:35 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded
▼ [閉じる]
10-6. Gridインストール後の確認
インストールしたサーバの”State”が全て”ONLINE”になっていることを確認
su - grid
$ /u01/app/19.3.0/grid/bin/crsctl status resource -t
出力例(抜粋):
[grid@node1 ~]$ /u01/app/19.3.0/grid/bin/crsctl status resource -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
(中略)
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE node1 STABLE
2 ONLINE ONLINE node2 STABLE
3 OFFLINE OFFLINE STABLE
インストールしたサーバはnode1とnode2なので、上記のような"OFFLINE"は無視。
10-7. Gridインストール・ユーザーの環境変数の設定(node1,node2)
ps -ef | grep asm_
で各ノードのASMインスタンスのSIDを確認し、その値をORACLE_SIDとします。
su - grid
$ ps -ef | grep asm_
$ vi ~/.bash_profile
export ORACLE_SID=+ASM1 <--- [ps -ef | grep asm_] の結果を元に設定
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LANG=ja_JP.UTF-8
export NLS_LANG=Japanese_Japan.AL32UTF8
$ cat ~/.bash_profile
$ . ~/.bash_profile
node1で設定が完了したら、同じようにnode2でも設定します。
node1のSIDをnode2に設定しないように気を付けてください。
11. Oracle databaseのインストール
11-1. ファイルの解凍
su - oracle
$ cd /u01/app/oracle/product/19.3.0/dbhome_1;pwd
$ ls -l /tmp/work/LINUX.X64_193000_db_home.zip
$ unzip -q /tmp/work/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/dbhome_1/
11-2. OUIの起動
$ export LANG=ja_JP.utf8
$ ./runInstaller
▼ [ソフトウェアのみの設定] を選択
▼ デフォルト[Oracle Real Application Clustersデータベースのインストール]
▼ 全てのノードが選択されていることを確認
▼ [SSH接続] > [OSパスワード]にOracleのパスワードを記入 > [設定] を選択
▼ デフォルト(EE)
【おまけ話】 Oracle 19c SE2において、RACはサポート対象外...
Oracle 19cから、 Standard Editionでは、RACはサポート対象外となりました。
その結果、RACに似た構成である、SEHAが注目されています(多分)▼ デフォルト「/u01/app/oracle」
▼ デフォルト
▼ デフォルト
▼ 待ちます...
▼ [すべて無視] を選択 > [次へ] > [はい]
▼ [インストール]
▼ 待ちます...
▼ 表示されたパスにある構成スクリプトを両ノードで実行(rootユーザー)> [OK]
インストール完了です。
11-3. Oracleインストール・ユーザーの環境変数の設定(node1,node2)
su - oracle
$ vi ~/.bash_profile
以下を追記
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LANG=ja_JP.UTF-8
export NLS_LANG=Japanese_Japan.AL32UTF8
$ cat ~/.bash_profile
$ . ~/.bash_profile
node1で設定が完了したら、同じようにnode2でも設定します。
12. ASMディスク・グループの作成
node1でASMCAを起動します。
su - grid
$ /u01/app/19.3.0/grid/bin/asmca
▼ [ディスクグループ] を選択
▼ [作成] を選択
▼ 「FRA」「外部」「/dev/sdc1」を入力 > [OK]
▼ 状態が「MOUNTED」であることを確認 > [終了]
ディスクグループの作成完了です。
13. データベースの作成
13-1. DBCAの起動
node1でDBCAを起動します。
su - oracle
$ $ORACLE_HOME/bin/dbca
▼ デフォルト[データベースの作成]
▼ [拡張構成] を選択
▼ デフォルト[汎用またはトランザクション処理]
▼ 全てのノードが選択されていることを確認
▼ デフォルト
▼ デフォルト
▼ [高速リカバリ領域の指定] を選択 > パスを「+FRA」に
▼ デフォルト
▼ 全てデフォルト
▼ [Enterprise Manager Database Expressの構成] のチェックを外す
▼ 任意のパスワードを入力
▼ デフォルト(データベースの作成)
▼ 待ちます
▼ 「すべて無視」のチェックを入れる
▼ [終了]
▼ 待ちます
▼ [閉じる]
13-2. 環境変数の設定(node1,node2)
ps -ef | grep ora_
で各ノードのインスタンスのSIDを確認し、その値をORACLE_SIDとします。
$ ps -ef | grep ora_
$ vi ~/.bash_profile
以下を追記
export ORACLE_SID=orcl1 <--- [ps -ef | grep ora_] の結果を元に設定
$ cat ~/.bash_profile
$ . ~/.bash_profile
node1で設定が完了したら、同じようにnode2でも設定します。
14. 構築後の確認
14-1. 正常稼働の確認
crsctl status resource -t
出力例:
[grid@node1 ~]$ crsctl status resource -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE node1 STABLE
ONLINE ONLINE node2 STABLE
ora.chad
ONLINE ONLINE node1 STABLE
ONLINE ONLINE node2 STABLE
ora.net1.network
ONLINE ONLINE node1 STABLE
ONLINE ONLINE node2 STABLE
ora.ons
ONLINE ONLINE node1 STABLE
ONLINE ONLINE node2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE node1 STABLE
2 ONLINE ONLINE node2 STABLE
3 OFFLINE OFFLINE STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE node1 STABLE
2 ONLINE ONLINE node2 STABLE
3 OFFLINE OFFLINE STABLE
ora.FRA.dg(ora.asmgroup)
1 ONLINE ONLINE node1 STABLE
2 ONLINE ONLINE node2 STABLE
3 ONLINE OFFLINE STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE node2 STABLE
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE node1 STABLE
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE node1 STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE node1 Started,STABLE
2 ONLINE ONLINE node2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE node1 STABLE
2 ONLINE ONLINE node2 STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE node1 STABLE
ora.node1.vip
1 ONLINE ONLINE node1 STABLE
ora.node2.vip
1 ONLINE ONLINE node2 STABLE
ora.orcl.db
1 ONLINE ONLINE node1 Open,HOME=/u01/app/o
racle/product/19.3.0
/dbhome_1,STABLE
2 ONLINE ONLINE node2 Open,HOME=/u01/app/o
racle/product/19.3.0
/dbhome_1,STABLE
ora.qosmserver
1 ONLINE ONLINE node1 STABLE
ora.scan1.vip
1 ONLINE ONLINE node2 STABLE
ora.scan2.vip
1 ONLINE ONLINE node1 STABLE
ora.scan3.vip
1 ONLINE ONLINE node1 STABLE
--------------------------------------------------------------------------------
[grid@node1 ~]$
14-2. インスタンスの稼働確認
su - oracle
$ sqlplus / as sysdba
SQL> col inst_name for a30
SQL> select inst_number,inst_name from v$active_instances;
SQL> select inst_id, con_id, instance_name, status from gv$instance order by inst_id, con_id;
出力:
SQL> select inst_number,inst_name from v$active_instances;
INST_NUMBER INST_NAME
----------- ------------------------------
1 node1.rac19c:orcl1
2 node2.rac19c:orcl2
SQL> select inst_id, con_id, instance_name, status from gv$instance order by inst_id, con_id;
INST_ID CON_ID INSTANCE_NAME STATUS
---------- ---------- ---------------- ------------
1 0 orcl1 OPEN
2 0 orcl2 OPEN
SQL>
Discussion