【実践】LifeKeeper for Windowsを使ってのOracleDBクラスター構成ガイド

    こんにちは。LifeKeeper 製品サポート星野です。

    高可用性を必要とするデータベースシステムですが、実際にHAクラスター構成にしてみる構築ガイドなどの資料は意外と多くはありません。HA構成だけでなくOracle RAC構成をHAクラスター構成に変更したいユーザ要望も多くありますので、今回はLifeKeeper for Windows を利用し、Oracle Database 製品を保護する方法について共有ストレージを使う構成と、共有ストレージを利用しない構成の2つを合わせて紹介いたします

    なお、今回のこの資料は過去の検証をベースにしておりますのでガイドなどは最新の物をご参照下さい

    1.環境設定

    Oracle DBMSをインストールした最終的な構成イメージは以下となります。

    2.構成イメージ

    <構築の流れ>
    1. SIOS Protection Suite for Windowsインストール、Oracle Recovery kitのインストール
    2.コミュニケーションパス、IPリソース、ボリュームリソースの作成
    3.Oracle のインストール(一つ目)
    4.Oracle リソースの作成(一つ目)
    5.Oracle のインストール(二つ目)

    <注意>
    ※Windows Server 2016 はインストールを終え、ホスト名、IPアドレスの設定、ドメインへの参加、.NET Framework 3.5 のインストールが終了した時点のものを利用します。
    ※本内容は Oracle の最適なインストール方法をご案内するものではございませんので、分かりやすくお伝えするために効率の悪い方法を選択している箇所があります。予めご了承ください。

    3.作成手順

    1. SIOS Protection Suite for Windows及びOracle Recovery kitのインストール

    SIOS Protection Suite for Windowsをインストールして、LifeKeeper と Oracle ARK、DataKeeper のインストールを行います。
    各ソフトウェアのインストールは、表示される画面の指示に従い進めていくだけで簡単にインストールすることが出来ます。

    SIOS Protection Suite for Oracle Recovery Kit のインストーラは3つの製品を同時にインストールできます。
    ソフトウェアを選択する画面でインストールしたい製品にチェックを入れます。
    もしOracle RecoveryKitのインストールを忘れても後から実行可能です
    ここで必要な事は、LifeKeeperのインストールとOracle Recovery Kitのインストールです。

    1.1 LifeKeeper for Windows のインストール

    初めに LifeKeeper for Windows(以降 LifeKeeper)のインストールから行われます。
    インストールするディレクトリなど変更が無ければ基本はそのまま進めるだけで完了となります。環境によってはインストールの途中でファイヤーウォールの設定変更を促すウィンドウが表示されることがあります。

    LifeKeeper の通信を許可する設定を行う場合は YES、しない場合は No を選択します。
    同じようにTCP/IP のメディア検出機能を無効にするかどうかの確認も行われます。

    Distributed Link Tracking Client の停止についても確認が入ります。
    この後インストールする DataKeeper を利用する際は停止が必要なサービスのため「YES」を選択します。

    そのまま待っていると LifeKeeper のインストールは完了します。
    最後に画面上の [Finish] ボタンをクリックして終了しますが、ウィンドウが表示されなくなった数秒後に Oracle ARK のインストールが始まりますので、何もせずに少し待ちます。

    1.2 Oracle Recovery Kit のインストール

    LifeKeeper のインストールが終了して待っていると Oracle Recovery Kit のインストール画面が表示されます。

    「Next」で進めていくと Oracle ARK のインストール自体はすぐに終了します。

    1.3 DataKeeper のインストール

    Oracle ARK のインストールが終わると DataKeeper のインストールが始まります。

    DataKeeper のインストールも[Next]をクリックして進めます。
    途中の DataKeeper サービスに使用するアカウントを選択する画面が表示されますが、ドメインユーザを利用するため「Domain or Server account」を選択します。

    ここで指定する ID やパスワードは後から変更することも可能です。

    後は特に気になる選択肢もなく、簡単にDataKeeper のインストールが行えました。

    最後にライセンスのインストールを行い、OS の再起動を行えば SIOS Protection Suite for Oracle Recovery Kitのインストールは完了です。

    2. コミュニケーションパス、IPリソース、ボリュームリソースの作成

    Oracle をインストールする前に、Oracle で利用する仮想IPアドレスと、各 Oracle のインストール先であるEドライブとFドライブを保護するためのボリュームリソースを作成していきます。引き続きそれぞれのリソースの作成方法を記載していますが、詳細は公開されているテクニカルドキュメンテーションを参考にしています。

    IP アドレスリソース階層の作成
    ボリュームリソース階層の作成

    2.1 LifeKeeper にログインします

    Windows Server2016 のメニューより「LifeKeeper(Admin Only)」を起動します。

    LifeKeeper GUI が起動し、ログインIDとパスワードを入力してログインします。

    ログインした直後の画面。

    2.2 コミュニケーションパスの作成

    lk083 とのコミュニケーションパスを2本作成します。コミュニケーションパスの作成方法はテクニカルドキュメンテーションを参考にしています。

    コミュニケーションパスの作成

    作成時にコミュニケーションパスで使用するポートをファイヤーウォールに設定してくれます。
    コミュニケーションパスは 2本作成します。

    2.3 IPリソースとボリュームリソースの作成

    IPリソースは追加した仮想IPアドレスとそのアドレスを実際に扱うネットワークアダプタを選択して作成します。
    今回は2つの Oracle を共有ストレージ上とDataKeeper上とに分けて構成をする為、IPリソース(仮想IP)も2つ作成します。

    続けてボリュームリソースを作成します。
    今回、ボリュームリソースは Eドライブがミラー構成、Fドライブが共有ディスク構成で作成します。
    ボリュームリソース作成時にミラー構成か共有ディスク構成かを選択することとなりますが、選択するのはリソース拡張時の“Select Volume Type”を選択する箇所になります。ここでミラー構成にしたい場合は、「Create Mirror」を選択し、共有ディスク構成にしたい場合は、「Share」を選択してリソースを拡張します。(「Share」は共有ディスクの場合に選択できるようになります。)

    もし、ボリュームリソースを拡張する際にエラーが生じた場合は、「ネットワークと共有センター」→「共有の詳細設定」で利用しているネットワークで“ファイルとプリンターの共有”が有効にすると動作が改善する可能性がありますのでご参考にしてください。

    以下の画面はボリュームリソースを作成したところです

    ミラーボリュームを作成するとターゲットサーバのボリュームの中身が削除されてしまいます。
    その為、ターゲット側のEドライブにファイルが格納されていないことを確認して「Create」ボタンをクリックする必要があります。
    ミラーボリュームが作成されるとデータの同期が始まります。

    データ同期中はリソースの切り替え等を行えないため、データ同期を考慮して作業を実施する必要があります。Fドライブは共有ディスクですので、ボリュームタイプを「Share」にして作成します。

    これでIPリソースとボリュームリソース作成が完了しました。

    3. Oracle のインストール(一つ目)

    Oracle ARK で保護する場合「Oracle Home ディレクトリごとに 1 つの SID」にする必要があります。
    構成としては Oracle のインストール先を各ドライブに行いますが、サービスを管理する Oracle ユーザも違う名前のユーザで管理させます。もちろん同じユーザで管理することも可能です。

    <Oracle の設定>

    === lk082 ===

    === lk083 ===

    3.1 lk082 に Oracle をインストールします。

    Oracle のインストールは付属のインストーラで「データベースの作成および構成」で実施します。

    ユーザはここで作成します。

    標準インストール構成は前述している表を参照して設定します。

    確認画面で誤りがないかを確認します。

    この後にOracleのインストールが始まります。
    データ同期を行っているボリュームに対してインストールを行っていますので、インストール時間は遅めです。

    時間はかかりましたがインストールは無事完了しました。

    Oracle のインストールが終了したら、LISTENER の接続先等を設定していきます。
    動作している Oracle 関係のサービスを停止して、スタートより「Oracle – OraDB12Home1」→「Net Configuration Assistant」より設定します。

    LISTENERは サービス名の「LISTENER」のままでは LifeKeeper のリソース作成時にリスナーを認識しない為、一度削除して SID である「Plain」という名前で新規追加します。
    ネットサービス名では接続先ホストに LifeKeeper で作成した仮想IPアドレス(192.168.0.22)を設定します。

    設定後に起動している LISTENERを停止させ、以下のフォルダに作成されている接続設定ファイルを確認して、接続先がホスト名となっていたら仮想IPアドレスに変更するといった確認も含めた更新を行います。
    E:\app\oracle\product\12.2.0\dbhome_1\network\admin

    再度 LISTENER を起動させて SQL Plus や Net Manager を利用して接続出来ることを確認します。

    3.2 lk082 の設定が行えましたら、対向側(lk083)に Oracle をインストールしていきます。

    lk083で操作を行う前に、lk082 の Oracle を停止して、Plainで利用していた仮想IPアドレス(192.168.0.22)とインストール先(Eドライブ)を保護している LifeKeeper のリソースを lkl083 側に切り替えます。

    リソース切り替え後、すぐに lk083 で Oracle のインストールを行いたいところですが、Eドライブ上に既にインストールしている情報が残っている為、ファイルの上書きが行えず Oracle のインストールに失敗してしまいます。その為、先に Eドライブの中をすべて削除して Oracle をインストールします。

    Oracle をインストールした後、lk082 と同じ設定を行い、接続確認も問題が無いことを確認します。

    ※ここで重要なのが、インストールした Oracleの「サービス名」と「ホームディレクトリ」です。
    2台のサーバでこれらが異なると、接続設定が正しくても Oracleの起動に失敗する、リスナーに接続できない、リスナーに接続出来てもリソース作成時に選択したい Oracle のサービスを選択できない、といった状況に陥ります。最悪環境の作り直しが必要となることもありますので両サーバで合わせる必要があります。

    lk083 の接続確認が終わりましたら、Oracleサービスを停止して仮想IPリソースとボリュームリソースを lk082 に切り替え、lk082 で Oracle を起動します。

    その後、lk083と同様に接続確認が行えるかを確認します。両サーバで接続が確認出来ましたら、Oracle のサービス起動を自動から手動に変えて Oracle リソースの作成に移ります。

    4. Oracle リソースの作成(一つ目)

    作成した Oracle 環境を LifeKeeper のリソースとして保護します。リソースの作成は以下のドキュメントを参考にしています。
    Oracleリソースの作成

    Oracle Home Directoryをプルダウンから選択します。
    複数インストールされている時は間違えないよう注意が必要です。

    途中でオプションサービスを選択画面が表示されたら必要に応じて選択して「Next」で進めます。
    None を含めて何か選択しないと「Next」がクリック出来ません。その際、誤って「Cancel」をクリックしないよう注意が必要です。

    リソース作成画面に移行し「Successfully brought the Oracle resource PLAIN in-service.」と表示されたことでリソースの作成が出来ました。「Next」ボタンのクリックでリソース拡張に進みます。
    リソース拡張はそのまま進めて完了します。

    一つ目のOracle リソースが作成できました。

    5. Oracleのインストール(二つ目)

    2台のサーバに Oracle をインストールできましたら、「4. Oracle リソースの作成(一つ目)」を参考に、二つ目の Oracle リソースの作成を行います。

    2つの Oracle リソースの作成が出来ました。

    4.動作確認

    作成した Oracle リソースで切り替えテストをしてみます。
    まずは手動によるリソース切り替え、スイッチオーバ(切り替え)を行います。

    1. 待機側の Oracleリソースを「In Service」にします。

    リソースの切り替えに成功しました。

    2. もう一つのリソースも切り替えて無事に切り替わることを確認します。

    以上でスイッチオーバが行えた確認は終了します。

    次にリソース異常によるフェイルオーバを確認します。

    3. 事前準備として Oracle リソースのローカルリカバリを disable に設定します。

    4. Oracle のサービスを手動で停止します。

    5. Oracleリソースが異常を検出しフェイルオーバが行われることを確認します。

    スイッチオーバもフェイルオーバも行えたということで動作確認を終了します。

    5.まとめ

    今回は LifeKeeper for Windows で複数の Oracle を保護する手順を紹介しました。
    Oracle のインストールを複数回行うところなどは、思っていた以上に時間のかかる作業となりましたが、実施内容としては比較的簡単にHAクラスター構成を行うことができます。
    共有ストレージ有の構成、DataKeeperを使うことで共有ストレージ無の構成どちらも可能ですので、今回の構築ガイドをご参考になさってみてはいかがでしょうか。

    特にOracle 19cではRAC構成がSE2ライセンスでサポートされない情報などもありますので、これを機会にLifeKeeper構成もご検討頂ければ幸いです

    [ 免責事項 ]
    ・本資料に記載された情報は予告なしに変更、削除される場合があります。

    ・本資料に記載された情報は、全て慎重に作成され、記載されていますが、本資料をもってその妥当性や正確性についていかなる種類の保証もするものではありません。
    ・本資料に含まれた誤りに起因して、本資料の利用者に生じた障害については、サイオステクノロジー株式会社は一切の責任を負うものではありません。
    ・第三者による本資料の記載事項の変更、削除、ホームページおよび本資料等に対する不正なアクセス、その他第三者の行為により本資料の利用者に生じた一切の損害について、サイオステクノロジー株式会社は一切の責任を負うものではありません。

    お問合せ

    「もっと詳しい話を聞いてみたい。」などご相談ありましたら、お気軽にお問い合わせください。

    SNSでもご購読できます。