ラベル Standard Edition High Availability の投稿を表示しています。 すべての投稿を表示
ラベル Standard Edition High Availability の投稿を表示しています。 すべての投稿を表示

2021年8月20日金曜日

(その6)Nutanix上にWindows+Oracle SEHA環境を構築する

前回までにOracleの構築は完了しました。最後に仕上げの設定とクライアントからの接続テストを行いたいと思います。


26.アンチアフィフィニティの設定

今回アクティブのサーバーとスタンバイのサーバー2台の仮想マシンを作成しましたが、2台の仮想マシンが、同一のNutanix上で稼動するホストで動作していた場合、物理ホストに障害が発生すると、ハイパーバイザーのHAが稼動し別のホストで仮想マシンが再起動します。別にこれであっても問題があるわけではありませんが、2台のサーバーが同時に落ちてしまい、ハイパーバイザーのHAでOSから再起動する時間を考えると、2台の仮想マシンは別のホストで稼働し、仮にアクティブなサーバーが稼動する物理ホストが落ちてもすぐに他の物理ホストで稼動していたスタンバイサーバーに切り替わる方が、より早くサービス復旧が可能となります。

このような、2台のサーバーを同じ物理ホストで稼働させない設定を行うことが出来ます。
vSphereの場合、Enterprise Plusに搭載されるDRSの中にある機能で、AHVの場合は、ADSの機能でそれぞれアンチアフィニティールールで設定を行います。

今回は、AHVでの設定をご紹介します。

まず、CVMにSSHで接続します。

SSHでacliコマンドレットに入り、以下のコマンドを入力します。

acli
vm_group.create oraseha
vm_group.add_vms oraclelk vm_list=ORA19CSEHA01,ORA19CSEHA02
#保護対象の「ORA19CSEHA01」と「
ORA19CSEHA02」をグループに入れる
vm_group.antiaffinity_set oraseha
exit

これで、「ORACLE19C-LK01」と「ORACLE19C-LK02」が同一のサーバーで稼動しない設定が完了しました。



27.クライアントからの接続

今回は、Grid Infrastructureで、SCAN-VIPを設定しましたので、TNSNAMESにSCANでの登録を行います。

サービス名を設定します。


ホスト名はSCAN名をFQDNで入力します。



あとは、SQL*PLUSで接続し、接続が成功すればOKです。


これで設定は完了です。


Oracle SEHAは、Grid Infrastructureに紐付いているため、Oracle RACの知識があれば比較的同じスキルで構築可能であると思います。

一方で、ドメイン参加が必要な点など一部考慮する点はありますが、これはOracle Fail SafeであってもWSFCの仕様でドメイン参加が必要でしたのであまり変わりは無いと思います。

Oracleの冗長化について、ご紹介してきましたが、NutanixはLifeKeeperであってもOracle SEHAであっても、ましてはOracle RACであっても正常に稼動します。

今回はWindows版で構成しましたが、Linux版であってもNutanix上で問題なく動作します。









2021年8月19日木曜日

(その5)Nutanix上にWindows+Oracle SEHA環境を構築する

前回までの、Oracle Database インスタンスの作成が完了しました。
残りの作業もあとわずかです。早速、2号機にOracle Database Softwareを導入します。


21.addonnodeコマンドで、2台目のサーバーを設定

1号機マシンでコマンドプロンプトを開き、以下のコマンドを入力します。

SET ORACLE_HOME=d:\app\oracle\product\19.0.0\dbhome_1
%ORACLE_HOME%\addnode\addnode.bat -silent CLUSTER_NEW_NODES=ora19cseha02

2号機にバイナリーのコピーが行われます。


22.LISTNERの設定変更

DB作成時のローカルリスナーをGrid Infrastructureのリスナーに変更します。

1号機のサーバーで以下のコマンドを入力し、現行のリスナー情報を確認します。

d:\app\oracle\product\19.0.0\dbhome_1\bin\sqlplus / as sysdba
/* 以下はSQL*PLIUS内で入力 */
show parameter local_listener;
alter system reset local_listener;
exit

Show Parameterで、ローカルリスナーが存在していることを確認し、alter systemコマンドで、local_listenerをリセットします。


続いて、データーベースを再起動します。

d:\app\19.0.0\grid\bin\srvctl stop database -db orcl
d:\app\19.0.0\grid\bin\srvctl start database -db orcl

再び、SQLPLUSでログインし、リスナーの状態を確認します。
Grid Infrastructureから自動で割当られたリスナーになっていることを確認します。

d:\app\oracle\product\19.0.0\dbhome_1\bin\sqlplus / as sysdba
/* 以下はSQL*PLIUS内で入力 */
show parameter local_listener;
exit


これで、リスナーの設定は完了です。


23.コンテナDBの自動起動

コンテナデーターベースが自動で起動するように以下の設定を入れます。

d:\app\oracle\product\19.0.0\dbhome_1\bin\sqlplus / as sysdba
/* 以下はSQL*PLIUS内で入力 */
/* コンテナDBを起動 pdbはコンテナDB名 */
alter pluggable database pdb open;
/* 自動起動(現在のステータスを記憶) */
alter pluggable database all save state;
exit

これで、インスタンスの起動と同時にコンテナDBも自動起動します。


24.ノードの追加

現状では、データーベースインスタンスは、1号機でしか稼働していません。
これを2号機でも稼働するように設定します。

コマンドプロンプトで以下のコマンドを入力します。

d:\app\19.0.0\grid\bin\srvctl modify database -db orcl -node ora19cseha01,ora19cseha02
d:\app\19.0.0\grid\bin\srvctl config database -db orcl

構成されたノードに「ora19cseha01」と「ora19cseha02」が入っていることを確認します。


これで、SEHAの構成は完了です。


25.オペレーションの紹介

リロケート(インスタンス稼働ホストを切り替える)
※2号機への切り替えの場合

srvctl relocate database -db orcl -node ora19cseha02

「crsctl stat res -t」コマンドを利用して、インスタンスの場所を確認します。


指定したサーバーでのインスタンス起動

srvctl start database -db orcl -node ora19cseha01

「crsctl stat res -t」コマンドを利用して、インスタンスの場所を確認します。


各種オペレーションは、Oracle RACと同じオペレーションが可能です。
(シャットダウンや起動方法も同様に)






2021年8月18日水曜日

(その4)Nutanix上にWindows+Oracle SEHA環境を構築する

前回までにGrid Infrastructureのインストールを終えました。今回は、Grid Infrastructureのパッチ適用とOracle Databaseのインストール、パッチ適用を行います。


17.Grid Infrastructureのパッチ適用

まず、現行のサービスの稼動状態を確認します。
こちらは、2台のサーバーそれぞれ両方で作業を行ってください。

コマンドプロンプトを起動し、「d:\app\19.0.0\grid\bin」ディレクトリに移動し、以下のコマンドを実行します。

crsctl stat res -t

各サービスがサーバー2台で動作していることを確認します。


パッチを適用するため、以下のコマンドを入力しサービスを停止します。

crsctl stop crs -f


全てのサービスが終了したことを確認します。


Windowsのサービスで起動している2つのサービスを手動で停止します。

まずこの作業までを2台のサーバーそれぞれで予め行ってください。

まず、完全にプロセスが終了しているかを確認します。

crsctl stat res -t -init

実行後、

CRS-4639: Oracle高可用性サービスと通信できませんでした
CRS-4000: コマンドstatusは失敗したか、またはエラーのある状態で完了しました。

が出力されればOKです。

これからパッチの適用を行います。
パッチの適用は、パッチと共に提供されるReadmeを参考にパッチを適用してください。


以下のコマンドを入力します。

SET ORACLE_HOME=d:\app\19.0.0\grid
%ORACLE_HOME%\crs\install\roothas.bat -prepatch

続いて1号機のサーバーに以下の手順でパッチを適用します。

cd d:\app\bu\32409153\32409154
SET ORACLE_HOME=d:\app\19.0.0\grid
d:\app\19.0.0\grid\opatch apply -local

画面の指示に従い、パッチを適用します。


続いて、FenceDriverを更新します。

%ORACLE_HOME%\bin\crssetup.exe deinstallfence
%ORACLE_HOME%\bin\crssetup.exe installfence


パッチの適用が終わったら、以下のコマンドでパッチが適用されたかを確認します。

d:\app\19.0.0\grid\opatch\opatch lsinventory

パッチ「32409154」が適用されていることを確認します。


パッチ適用が完了したら、以下のコマンドを実行します。

%ORACLE_HOME%\crs\instal\rootcrs -postpatch


2号機のサーバーは、Oracleのパッチファイルが展開されていませんので、手順12のOracleのソフトウェアバイナリ部分に記載されているOracleのパッチを展開する部分の作業を行ってください。

パッチ配置後、Opacheを使ってパッチを適用します。


なお、OPatch適用における注意点をお伝えします。

まず1つは、「OPatch faild with error code = 73」です。こちらは、なにかしOPatchでアップデートが必要なファイルが開かれている状態の時に表示されます。


Windowsの場合、OSの様々なシステムプロセスとの依存があり、Oracle系のサービスを全て停止した上でもこのエラーコード73が出てパッチが適用できないケースがあります。
この場合、Oracleに関連するサービスを自動起動から手動にした上で、OSを再起動して再度試してみてください。
大半は、サービス停止でこのエラーは出なくなりますが、それでも状況が改善しない場合、MSConfigツールから、セーフブートでOSを起動し、OPatchを適用してください。


もう1つの課題は、パッチ適用後、「CRS-6706: Oracle Clusterwareリリース・パッチ・レベル('1389892003')はソフトウェア・パッチ・レベル('0')と一致しません。Oracle Clusterwareを起動できません。」や「CRS-4000: コマンドStartは失敗したか、またはエラーのある状態で完了しました。 」が表示され、Clusterwareが起動しないケースです。


こちらの場合は、以下のコマンドを実行します。

%GI_HOME%\bin\clscfg -localpatch

(参考)Oracle Clusterwareの起動に失敗した場合のパッチの適用

今回、GI_HOMEは、「d:\app\19.0.0\grid」になります。


このコマンドを実行後、「d:\app\19.0.0\grid\bin\crsctl start crs -wait」でクラスターサービスを実行します。


これで2台のGrid Infrastructureの起動が完了しました。



18.Oracle Databaseのインストール

では、1号機のサーバーにOracle Databaseのインストールを行います。
引き続き、ユーザーは、ドメインユーザーの「oracle」にて操作を行います。

ORACLE_HOMEである、「d:\app\oracle\product\19.0.0\dbhome_1」の「setup.exe」を実行します。


ウィザードがスタートします。ここでは、ソフトウェアのみをインストールします。


Grid Indrastructureがインストールされているため自動で、RAC構成が選択されますが、SEHAは、RACではありませんので、「単一インスタンス・データーベースのインストール」を選択します。


SEHAは、Standard Edition 2に提供される機能ですので、「Standard Edition 2」を選択し、次に進みます。


Orackeホームユーザーの設定は、Grid Infrastructureの時と同じ、ドメインユーザーの「orahome」ユーザーを指定します。


続いてORACLE_BASEを設定します。ここでは「d:\app\oracle」を指定します。


サマリー場表示されますので、確認後「インストール」をクリックします


インストールが行われます。インストールが完了したら、ウィザードを終了させてください。



19.Oracle Databaseへのパッチ適用

Clusterwareを含め一度、Oracle関連のソフトウェアをすべて停止します。

d:\app\19.0.0\grid\bin\crsctl stop crs -f

サービスを含めOracle関連のプログラムが起動していないことを確認して下さい。


続いて以下のコマンドからOpatchでパッチ適用を行います。

set ORACLE_HOME=d:\app\oracle\product\19.0.0\dbhome_1
cd d:\app\bu\32409154\32409154
d:\app\oracle\product\19.0.0\dbhome_1\opatch\opatch apply


OPatch successfulとなったら、パッチ適用完了です。


20.Oracle Database インスタンスの作成

では、Databaseのインスタンスを作成します。

まずは、2台のノードでパッチ適用のためシャットダウンしたGrid Indrastructure関連のサービスを起動します。(2台のサーバーでそれぞれ実行してください)

d:\app\19.0.0\grid\bin\crsctl start crs -wait

各サービスが起動したことを確認します。


ASM構成アシスタントを起動します。

d:\app\19.0.0\grid\bin\asmca

ディスク・グループを選択し、「作成」をクリックします。


ディスクグループを「DATA」にし、冗長性を「外部」にします。
そして、スタンプ済みの「DATA」を選択します。
(もし、DATAというディスクが出てこない場合、LUNに対してラベルが設定されていないことが考えられます。「d:\app\19.0.0\bin\asmtoolg」を実行し、ボリュームのスタンプを行った後でもう一度、asmcaを実行し設定を行います)


作成した「DATA」のディスクグループが見えていることを確認し、終了します。


これでASMCAの設定は終わりです。


Database Configuration Assistantを以下のコマンドを実行し、起動します。

d:\app\oracle\product\19.0.0\bin\dbca

ウィザードが表示されます。「データーベースの作成」を選択し、次に進みます。


データーベースの作成は、拡張構成で行います。「拡張構成」を選択し、次に進みます。


データーベースは「Oracle単一インスタンス・データーベース」を選択し、「カスタム・データーベース」を選択し次に進みます。


ここでは、サービス名を「orcl.toriten.oita」SIDを「orcl」とし、コンテナデーターベースとして「pdb」を作成します。


データーベースの記憶域属性を「自動ストレージ管理(ASM)」を選択し、参照ボタン苦をクリックします。


先ほどASMCAで作成した「DATA」のディスクグループを選択し、「OK」をクリックします。


データーベース・ファイルの位置が「+DATA\{DB_UNIQUE_NAME}」になっていることを確認し、次に進みます。


今回は、高速リカバリ領域の指定を行います。(FRAを利用します)
高速リカバリ領域が「+MGMT」になっていますので、今回は、「+DATA」を選択します。

参照ボタンをクリックします。


DATAを選択します。


高速リカバリ領域が「+DATA」になったことを確認し、次に進みます。


LISTENERは、Grid Infrastructureで設定したLISTNERを選択し、次に進みます。


データーベースコンポーネントを選択します。今回はすべてのチェックを外して次に進みます。(画面が隠れて Oracle Database Extended for .NETが見えてないことがありますので、ウィンドウサイズを下に広げてください)


構成オプションは、画面のように設定しています。こちらも利用するデーターベースによって異なりますので、必要な要件通りに設定を行ってください。
(今回は、キャラクタ・セットに「JA16SJISTILDE」を指定しています)






今回は、Enetrprise Manager Database Expressの構成のチェックを外します。
(今回はEMは作成しません)


パスワードは「すべてのアカウントに同じパスワードを使用」を選択し、パスワードに「Nutanix4u-」を入力します。
Oracleホームのユーザー・パスワードは、Active Directoryで作成した「orahome」ユーザーのパスワードを指定し、次に進みます。


データーベースの作成にチェックを入れ、「次へ」をクリックします。


サマリーが表示されますので、終了ボタンをクリックします。


データーベースを作成が完了するまでしばらく時間がかかります。


データーベースの作成が完了したら、「閉じる」をクリックします。



これでインスタンスの作成も完了しました。次は、2号機のサーバーにOracle Databaseソフトウェアの展開と、SEHAのクラスター構成を行っています。