本ブログではOracle 19c DataBaseをLifeKeeper for LinuxによってHAクラスター化し、保護監視を行う方法をお伝えします。
はじめに
まず初めにHAクラスター化するにあたり考えなければいけないポイントはインストール方法です。
LifeKeeper for Linuxでは以下の方法があります。
1.Oracleシステムをローカルディスク、Databaseを共有ディスクにインストールする方法
2.Oracle System、Databaseを両方とも共有ディスクにインストールする方法
それぞれ考慮すべき点はありますが、1の場合では各ノードにOracleのインストールが必要です。またメンテナンスも両ノードで行う必要があります。2の場合ではインストールやメンテナンス対象が1か所ですが、共有ディスクが単一障害点となります。
今回は、上記1に沿ってOracle Databaseの保護する手順について案内します。
手順の紹介にあたり利用した環境は以下です
OS: Red Hat Enterprise Linux Server release 7.5 (Maipo)
ーOSはLifeKeeper for Linuxの要件に従ってインストールを行っています。
今回のガイドではGUI環境にログイン可能な構成を前提としています。
Oracle: Oracle Database 19c (19.3)
主な手順
- Oracleインストールの準備
- Oracleのインストール
- Oracle DBの作成
- LifeKeeper for Linux のインストール
- クラスターの設定
- 共有ディスクリソースの作成
- IPリソースの作成
- LISTENERの作成
- Oracle DBリソースの作成
- スタンバイノードへの切り替え(スイッチオーバー)
1.Oracleインストールの準備
1.1 Oracle をインストールする前に、OSの環境設定が必要です。設定項目が多く煩雑になりそうなので必要な要件ついては以下のリンクのご案内とします。
x86-64でサポートされているRed Hat Enterprise Linux 7のディストリビューション
https://docs.oracle.com/cd/F19136_01/ladbi/supported-red-hat-enterprise-linux-7-distributions-for-x86-64.html
1.2 Oracleで推奨する必要なカーネルパラメータを設定します。エディタを使用して /etc/sysctl.d/97-oracle-database-sysctl.confファイルを作成し次のような行を追加します。
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
1.3 上記で設定したカーネルパラメータを適用するため、以下のコマンドを実行します。なおOS再起動時には上記の設定を含めて自動的に適用されます。
# /sbin/sysctl –system
1.4 カーネルパラメータが正常に適用されたかどうか確認するため、以下のコマンドを実行します。他のパラメータと一緒に表示される為、設定したパラメータを出力結果から検索してください。
# /sbin/sysctl -a
1.5 OS(RHEL)にオラクル専用のユーザー/グループを作成します。GIDは環境に合わせて変更してください。
# /usr/sbin/groupadd -g 54321 oinstall
# /usr/sbin/groupadd -g 54322 dba
# /usr/sbin/groupadd -g 54323 oper
# /usr/sbin/groupadd -g 54324 backupdba
# /usr/sbin/groupadd -g 54325 dgdba
# /usr/sbin/groupadd -g 54326 amdba
# /usr/sbin/groupadd -g 54330 racdba
1.6 Oracleの所有者ユーザーを作成し、パスワードを設定します。
# /usr/sbin/useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba oracle
# /bin/passwd oracle
1.7 作成したoracleユーザーにログインして .bash_profile に以下を追加します。今回はインスタンス名に「orcl」を設定します。
$ /bin/vi ~/.bash_profile
:
:
umask 022 ←追加
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 ←追加
export ORACLE_SID=orcl ←追加
1.8 Oracleユーザーが利用するプロセスやファイル数について制限を設けることがOracleではインストール要件に含まれています。実際の制限方法はPAMによるリソース制限の設定を行います。
rootユーザーに切り替えて、”login” のPAM認証にpam_limits.soモジュールを追加します。
# vi /etc/pam.d/login
# 14行目あたりに追記
session required pam_selinux.so open
session required pam_namespace.so
session required pam_limits.so ←追加
session optional pam_keyinit.so force revoke
session include system-auth
-session optional pam_ck_connector.so
1.9 プロセス、ファイルの利用制限値をlimits.confファイルに設定します。具体的なlimits.confファイルの制限内容や制限値についてはリンク先のマニュアルをご確認ください。
# vi /etc/security/limits.conf
# 最終行に追記
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
Oracleソフトウェア・インストール・ユーザーのリソース制限の確認
https://docs.oracle.com/cd/E82638_01/cwlin/checking-resource-limits-for-oracle-software-installation-users.html
1.10 共有ストレージにOracleのインストール先フォルダを作成して、Oracleユーザーの権限に変更します。インストール先は任意で変更可能ですが、デフォルトの値を使用します。
# mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
# chown -R oracle:oinstall /u01/app
# chmod -R 775 /u01
以上でOracleインストールの準備が完了です。上記の設定をアクティブノードと同じ設定値でスタンバイノードにも実施してください。
2.Oracleのインストール
2.1 OS(RHEL)にOracle ユーザーでログインします。OracleのインストールはGUIを使用しますのでGUIへログインします。
2.2 コンソールを開きます。今回はoracleユーザーのディレクトリ(/home/oracle)にOracle19.3.0のインストーラーを配置しました。$ORACLE_HOMEに移動して展開します
$ cd $ORACLE_HOME
$ unzip ~/LINUX.X64_193000_db_home.zip
2.3 Oracleソフトウェアのインストールを開始します。以下のスクリプトを実行してインストールGUIを起動します。
$ ./runInstaller
2.4 インストーラーが起動します。DBは後から作成しますので「ソフトウェアのみの設定(S)」を選択します。
2.5 LifeKeeper でクラスターとして登録する場合、「単一インスタンス・データベースのインストール(S)」を選択します。
2.6 どちらのエディションもLifeKeeper for Linuxでサポート可能です。今回は「Standard Edition2(S)」を選択します。
2.7 Oracleベースが自動的に入ります。そのまま進めます。
2.8 OSに設定したOracle用グループの割当です。そのまま進めます。
2.9 インストール後に実行する必要のあったスクリプトの実行を自動化できます。rootユーザーのパスワードを入力して進めます。
2.10 RHEL7.5では以下のパッケージの取得がすぐに行えなかったため警告が出ました。
インストールには影響がないので今回は無視します。「すべて無視(I)」にチェックを入れ進めます。
2.11 インストールのサマリーが表示されます。この内容でインストールを開始します。
2.12 インストールが進みます。環境にもよりますが10分から20分程度で完了します。
2.13 rootユーザーの権限を使用してスクリプトを実行するかどうか聞かれます。「はい」を押して続行します。
2.14 インストールが完了しました。スタンバイ側のノードも同じ設定でOracleのインストールを行ってください。
3.Oracle DBの作成
3.1 OracleのDatabaseはクラスターノードで共有しますので共有ディスク内に作成されます。
今回は/dev/sdb1が共有ディスク領域となりますので、このデバイスを片方のノードで/oradataディレクトリにマウントしてDatabaseを作成します。
/oradataディレクトリは待機系に切り替えて利用しますので、両ノードでマウントして利用できるようにする必要があります。両ノードでの設定を合わせるため、今回はスタンバイノードからも同じ手順でデータベースの作成を行います。
# mkdir /oradata
# mount /dev/sdb1 /oradata
# chown –R oracle.oinstall /oradata
# chmod –R 775 /oradata
3.2 /oradata ディレクトリにOracle Databaseを作成します。データベース作成ウィザードを起動します。
$ ./bin/dbca
3.3 Database Configuration Assistant(dbca)が起動します。「データベースを作成(L)」を選択します。
3.4 “拡張構成を(V)”を選択します。
3.5 Oracle単一インスタンスで進めます。テンプレートは任意のものを選択してください。
3.6 グローバルデータベース名、SIDは環境情報から自動的に入力されます。
コンテナ・データベースはLifeKeeper for Linuxでは現在サポートしていませんのでチェックを外します。(コンテナは近い将来サポート予定です)
3.7 データベースファイルの位置を共有ディスクのマウントポイント(/oradata)に変更します。
3.8 今回は高速リカバリ・オプションの設定は何も設定をしません。そのまま進めます。
3.9 リスナーの作成を行います。リスナー名は「LISTENER1」として進めます。
3.10 構成オプションについても変更せずに進めます。
3.11 管理オプションも変更せずに進めます。
3.12 データベース・ユーザーの設定を行います。運用に合わせてパスワードを設定します。
今回は「すべてのアカウントに同じ管理パスワードを使用」で設定します。
3.13 データベース作成のオプションを選択します。今回は他を選択せずに作成のみを行います。
3.14 設定サマリーの確認を行って「終了」を押します。データベースの作成が開始されます。
3.15 データベースの作成画面です。完成をお待ちください。
3.16 完成しましたら自動的に以下の画面が開きます。「閉じる」を押して1台目の作業は終了です。
ここまでの作業を後ほどスタンバイノードでも実施します。
3.17 Oracle DBが起動した状態です。スタンバイノードにも同じ設定でOracle DBの作成を行いますので、一旦作成したOracle DBをシャットダウンします。
$ $ORACLE_HOME/bin/sqlplus / AS SYSDBA
SQL*Plus: Release 19.0.0.0.0 – Production on Thu Nov 21 17:45:40 2019
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 – Production
Version 19.3.0.0.0
?????????
SQL> shutdown immediate
?????????????????
????????????????????
ORACLE????????????????????
SQL>
3.18 DBをシャットダウンしたノードで共有ディスクをアンマウントします。rootユーザーでログインして以下のコマンドを実行します。
# umount /dev/sdb1
3.19 スタンバイノードから共有ディスクをマウントします。
# mount /dev/sdb1 /oradata
3.20 作成したデータベースファイルを削除します。(名前を変更して一時保管しても良いです)
$ cd /oradata
$ mv ORCL/ ORCL_Backup/
3.21 同じ手順でスタンバイノード上でもDatabase作成します。
$ ./bin/dbca
3.22 DB作成後、動作確認のためノードを切り替えます。スタンバイノードでOracleを停止して反対側のノードでマウントし直します。
$ ORACLE_HOME/bin/sqlplus / AS SYSDBA
SQL*Plus: Release 19.0.0.0.0 – Production on Thu Nov 21 17:45:40 2019
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 – Production
Version 19.3.0.0.0
?????????
SQL> shutdown immediate
?????????????????
????????????????????
ORACLE????????????????????
SQL>
3.23 rootユーザーでアンマウントします。
# umount /dev/sdb1
3.24 最初にDBを作成したノードから共有ディスクをマウントします。
# mount /dev/sdb1 /oradata
3.25 OracleユーザーでログインしてDatabaseの起動を確認します。
起動に成功することを確認できましたらLifeKeeper for Linuxで保護することが可能です。
# su – oracle
最終ログイン: 2019/11/21 (木) 16:47:39 JST日時 pts/0
$ $ORACLE_HOME/bin/sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 – Production on Thu Nov 21 17:53:03 2019
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 838858176 bytes
Fixed Size 8902080 bytes
Variable Size 557842432 bytes
Database Buffers 268435456 bytes
Redo Buffers 3678208 bytes
?????????????????
?????????????????
SQL>
OracleDBはアクティブノード側で起動して待機します。
4.LifeKeeper for Linux のインストール
LifeKeeper for Linux 9.4.0 のインストールを行います。事前設定として以下の設定が必要です。
- DNS or /etc/hostsファイルによる名前解決
- SELinux の無効化
- yum コマンドによるパッケージの追加の有効化
- ファイアウォールの無効化
*無効化が難しい場合は以下のドキュメントを参考にポートを開放してください。
http://docs.us.sios.com/spslinux/9.4.0/ja/topic/running-lifekeeper-with-a-firewall
4.1 LifeKeeper for Linux 9.4.0のインストールISOイメージをマウントして、インストールスクリプトのsetupを実行します。
# mkdir /iso /sps
# mount -o loop LKL_V940_100819.iso /iso
# mount /iso/sps_940.img /sps
# /sps/setup
4.2 CUI画面でsetup画面が起動します。最初の画面は指定のカーネルでのDataKeeper のAsynchronous(非同期モード)非サポート情報についての警告です。
DataKeeperを使用する場合は指定のカーネルで非同期モードが利用できませんので注意してください。今回はDataKeeperを使用しないためそのままContinueで進めます。
4.3 メインメニューが表示されます。上から順に設定をします。
ライセンスファイルをインストール時に入れる場合は「()Install License Key File(s)」を選択します。
4.4 Licenseファイルの配置場所を指定します。今回は評価ライセンスを使用しています。
4.5 続いてOracle Recovery Kitを追加します。「Recovery Kit Selection Menu」を選択します。
4.6 「Database」を選択して進めます。
4.7 「LifeKeeper Oracle RDBMS Recovery Kit」 にチェックを入れて、<Done>を選択してメインメニューに戻ります。
4.8 ライセンスファイルとOracle Recovery Kitの選択が完了しました。インストール後にLifeKeeperを起動するため「LifeKeeper Startup After Install」にチェックを入れ<Done>を選択します。
4.9 LifeKeeperのインストールを開始します。開始する場合は<Yes>を選択します。
4.10 正常に完了した場合は以下のように出力します。
今回は評価ライセンスを使用していますのでEMERGのメッセージが出力していますが、製品版ライセンスの場合はこのメッセージは出力されません。
以上でインストール作業は完了です。上記のインストール作業をスタンバイノードでも行ってください。
5.クラスターの設定
LifeKeeperをインストールしたサーバーをクラスターグループに登録します。登録したサーバー間でコミュニケーションパスを作成してクラスターを構築します。なおクラスターに組み込んだ各サーバーをクラスターではノードと呼びます。
5.1 LifeKeeper GUIを起動するため、以下のコマンドを実行します。
# /opt/LifeKeeper/bin/lkGUIapp &
5.2 LifeKeeper GUIが起動します。GUIを起動したホスト名が入力された状態で起動しますので、LifeKeeperの管理者ユーザ(root)とパスワードを入力します。
5.3 LifeKeeper GUIにログインします。
5.4 もう一台のノードを追加します。
□で囲ったボタンを押すと「Cluster Connect」の画面がポップアップ表示されます。追加したいノードの情報を入力してください。
5.5 ノードが追加されました。続いてコミュニケーションパスを作成します。□で囲ったボタンを押します。
5.6 コミュニケーションパスの作成ウィザードが起動します。Local Server に自ノードを選択してNextを押します。
5.7 通信先となるノードを選択します。Remote Serverには後から追加したノードを選択して進めます。
5.8 コミュニケーションパスのタイプを選択します。TCPで設定を行ってください。
5.9 Local Server のIPアドレスを選択します。優先度の高いコミュニケーションパスを先に選択して作成してください。
5.10 Remote Server のIPアドレスを選択します。Local Server で選択したIPアドレスと通信可能なIPアドレスが自動的に選択されます。「Create」を押すとコミュニケーションパスが作成されます。
5.11 コミュニケーションパスの作成が成功したことを確認し「Next」を押します。
5.12 完了しましたら「Done」を押して終了です。
Communication Pathは2経路以上が推奨です。異なるネットワークでもう1本作成してください。
6.共有ディスクソースの作成
Oracle Databaseを作成した領域を共有ディスクリソースとして登録します。以下の手順で共有ディスクを保護します。
6.1 アクティブノードでログインして、共有ディスクを指定のディレクトリでマウントされていることを確認します。マウントされていない場合はマウントします。
# mount | grep oradata
/dev/sdb1 on /oradata type ext4 (rw,relatime,data=ordered)
6.2 リソース作成ボタンをクリックします
。
6.3 「File System」を選択して進めます。
6.4 Switch Type のデフォルトは 「Intelligent」です。そのまま進めます。
6.5 共有ディスクをマウントしたアクティブノードを選択します。
6.6 LifeKeeperで保護するマウントポイントを選択します。
6.7 作成するリソース名を入力します。File Systemリソースのリソース名はマウントするディレクトリ名が自動で入力されます。
6.8 リソース作成が開始されます。設定に問題がない場合は「Next」がクリック可能となります。
6.9 作成したリソースをターゲットサーバー(スタンバイノード)に拡張します。もう一台のノードを選択して「Accept Defaults」を選択します。拡張が自動的に行われます。
6.10 拡張作業が正常に完了した場合、以下のように成功のメッセージが出力します。2ノードクラスターとなるためこれ以上拡張する先はありません。「Finish」をクリックします。
6.11 File Systemリソース作成が完了です。「Done」を押すとウィザードが閉じます。
6.12 以下のようにリソースが作成されました。
7.IPリソースの作成
リスナーに設定する仮想IPアドレスを作成します。LifeKeeperではIPリソースとして登録します。リソースを作成するにあたり、仮想IPアドレス用のIPアドレスを用意します。紐づけるデバイスと同じネットワーク内のIPアドレスを割り当ててください。
7.1 以下の□のリソース作成ボタンをクリックします。
7.2 「IP」を選択して進めます。
7.3 Switch Type のデフォルトは 「Intelligent」です。そのまま進めます。
7.4 アクティブノードを選択します。
7.5 仮想IPアドレスを入力します
7.6 仮想IPアドレスのサブネットマスクを選択します。
7.7 紐づけるネットワークインターフェイスを選択します。
7.8 作成するリソース名を入力します。IPリソースのリソース名は仮想IPアドレスがデフォルトで入力されます。
7.9 リソース作成が開始されます。正常な場合は「Next」がクリック可能となります。
7.10 作成したリソースをターゲットサーバーに拡張します。もう一台のノードを選択して「Accept Defaults」を選択します。拡張が自動的に行われます。
7.11 拡張作業が正常に完了した場合、以下のように成功のメッセージが出力します。2ノードクラスターとなるためこれ以上拡張する先はありません。「Finish」をクリックします。
7.12 File Systemリソース作成が完了です。「Done」を押すとウィザードが閉じます。
7.13 以下のようにリソースが作成されました。
8. LISTENERの作成
LISTENERはDB作成時に既に作成をしておりますが、LifeKeeper for Linuxで保護するにあたり必要な設定があります。以下ではLifeKeeper for Linuxで保護するために必要な設定を紹介します。$ORACLE_HOME/network/admin/に保管したlistener.oraファイルを以下のように修正してください。
8.1 リスナーの設定ファイルに上部の赤字の設定(サポート対象サービスの静的構成)を追加します。
下部の赤字のHOSTカラム“10.1.6.139”はLifeKeeper for LinuxのIPリソースが保護する仮想IPアドレスとなります。IPリソース作成後に修正します。
# listener.ora Network Configuration File: /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)
)
)
LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.6.139)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
リスナーを複数使用する場合は、静的構成を含めた設定を以下のように複数設定してください。
listener.ora Network Configuration File: /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)
)
)
LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.6.139)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER2 =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)
)
)
LISTENER2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.6.139)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
8.2 両ノードで同じ設定とするため、listener.oraファイルを別のノードにコピーします。
8.3 oracleユーザーでアクティブノードにログインしてLISTENER1を起動します。
$ cd $ORACLE_HOME/bin/
$ ./lsnrctl status LISTENER1
8.4 LifeKeeper GUIを起動してリソース作成ボタンをクリックします。
8.5 「Oracle Database Listener」を選択して進めます。
8.6 Switch Type のデフォルトは 「Intelligent」です。そのまま進めます。
8.7 アクティブノードを選択します。
8.8 リスナーの設定ファイルlistener.oraのpathを選択します。
8.9 保護するリスナーを選択します。
8.10 リスナー実行プログラムを指定します。
8.11 リスナーリソースの保護レベルを選択します。レベルはFull, Intermediate, Minimalの3つから選択可能です。
Fullではフェイルオーバー時にリスナー起動、停止、監視、回復処理を行いますが、Intermediateではフェイルオーバー、スイッチオーバー時にリスナーを停止しません。Minimalではさらに障害検出時の回復処理を行いません。
8.12 リスナーリソースのリカバリレベルを選択します。Standardを選択した場合は他のリソースと同様にリスナーリソースで障害を検出するとローカルリカバリ、フェイルオーバーが発生します。
Optionalでは障害を検出してもローカルリカバリは行いますがフェイルオーバーは実施しません。
8.13 リスナーに紐づくIPリソースを選択します。
作成するリスナー名(タグ名)を設定します。以下は自動的に入力される初期値です。
8.14 リスナーリソースの作成を開始します。成功した場合は「Next>」がクリック可能となります。
8.15 リスナーリソースをターゲットサーバーに拡張します。スタンバイノードを選択して「Accept Defaults」を選択します。
アクティブノードを同じ設定をスタンバイノードにも展開してリソースの拡張を行います。
8.16 ターゲットサーバーへの拡張が自動的に行われます。2ノードクラスター構成の場合は「Finish」をクリックして終了します。
8.17 「Done」をクリックしてウィザード画面を閉じます。
8.18 リスナーリソースが以下のように作成されます。
9.Oracle DBリソースの作成
Oracleリソースを作成します。起動する前には必ず保護するインスタンスを起動してください。以下の手順でリソース作成が成功するとLifeKeeper for Linux でのOracleの保護は完了します。完了後はスイッチオーバーやOSの再起動を行い、正しく設定されているか確認してください。
9.1 以下の□のリソース作成ボタンをクリックします。
9.2 「Oracle Database」を選択して進めます。
9.3 Switch Type のデフォルトは 「Intelligent」です。そのまま進めます。
9.4 アクティブノードを選択します。
9.5 Oracle SID(インスタンス名)の値を選択します。
この時点で起動しているOracleインスタンスが自動的に読み込まれ選択可能となります。
9.6 インスタンスを起動するユーザーを指定します。ローカル環境なので空欄(ユーザー指定なし)でも進めることが可能です。
ユーザーを指定する場合は、sysdba権限を持ったユーザーを用意してください。ユーザーを指定した場合は次の画面でパスワード入力を求められます。なおユーザー指定はリソース作成後にプロパティ画面からでも設定可能です。
9.7 ユーザーを指定しなかった場合はリスナーの選択画面に移動します。
事前に作成したリスナーリソースを指定します。
9.8 Oracleリソース名を指定します。デフォルトではインスタンス名が入ります。
9.9 Oracleリソースの作成が開始されます。
問題なく成功したことを確認して「Next>」をクリックして進みます。
9.10 Oracle DBリソースをターゲットサーバーに拡張します。
スタンバイノードを選択して「Accept Defaults」を選択します。アクティブノードを同じ設定をスタンバイノードにも展開してリソースの拡張を行います。
9.11 ターゲットサーバーへの拡張が自動的に行われます。
2ノードクラスター構成の場合は「Finish」をクリックして終了します。
9.12 「Done」をクリックしてウィザード画面を閉じます。
9.13 Oracle DB(orcl)リソースが完成しました。
Oracleリソースはデータベースを保存するfilesystemリソース(/oradata)とリスナーリソース(LSNR.LISTENER1)との依存関係を自動的に作成します。
10.スタンバイノードへの切り替え(スイッチオーバー)
Oracle リソース作成直後はアクティブノード(pd137)で全てのリソースが起動しています。そのためOracleもpd137で起動中です。今回はスタンバイノード(pd138b)に手動で切り替えてみます。
10.1 pd138側で最上位のリソース「orcl」を右クリックして「In-Service..」を選択します。
10.2 pd138でorclリソースに対してIn-Serviceすることで、pd137のリソースを上位リソースから順番に停止して下位リソースから順番に起動します。そのため、全てのリソースがpd138側で起動します。
このように起動サーバーを切り替えることをSwitchoverと呼んでいます。
10.3 スイッチオーバーが正常に完了したことを以下のメッセージで確認します。
10.4 正常に切り替わった場合は以下のように表示されます。Oracleプロセスやマウントポイント、仮想IPアドレスがpd138側に切り替わっていることを確認します。
切り戻す場合は現在のスタンバイノードpd137のorclリソース上で右クリックして、「In-Service..」を実施してください。
リスナーのプロセスが起動を確認します
# ps afx | grep -v grep | grep tnslsnr
5588 ? Ssl 0:17 /u01/app/oracle/product/19.3.0/dbhome_1/bin/tnslsnr LISTENER1 -inherit
Oracleプロセスの起動を確認します。
# ps afx | grep -v grep | grep ora_pmon
6890 ? Ss 0:13 ora_pmon_orcl
仮想IPアドレス“10.1.6.139”が起動していることを確認します。
# ip addr show ens192
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:50:56:8c:bb:39 brd ff:ff:ff:ff:ff:ff
inet 10.1.6.138/16 brd 10.1.255.255 scope global ens192
valid_lft forever preferred_lft forever
inet 10.1.6.139/16 scope global secondary ens192
valid_lft forever preferred_lft forever
以上がLifeKeeper for LinuxでのOracleリソース保護の手順、および動作確認手順となります。
プロセスが切り替わったことは確認いただけたと思いますが、導入時にはリスナー経由でOracle Databaseへのアクセスなどについても確認いただくことをお勧めします。
お問合せ
「もっと詳しい話を聞いてみたい」などご相談ありましたら、お気軽にお問い合わせください。