OCIでの中間層の準備

Oracle Cloud Infrastructure (OCI)でディザスタ・リカバリのために中間層ホストをプロビジョニングおよび準備します。

中間層ノードのコンピュート・インスタンスのプロビジョニング

プライマリのオンプレミスOracle WebLogic Serverホストごとに、Oracle Cloud Infrastructure (OCI)中間層サブネットにコンピュート・インスタンスを作成します。コンピュート・インスタンスでは、オンプレミス・ホストによって使用されるイメージおよびシェイプと可能なかぎり同じOSイメージおよびコンピュート・シェイプを使用する必要があります。

Oracle WebLogic Server for Oracle Cloud InfrastructureのOracle Customer Hub (UCM)ライセンスを利用するために、Oracleでは、OCIイメージにWebLogicを使用してコンピュート・インスタンスをプロビジョニングすることをお薦めします。コンピュート・インスタンス・コンソールまたはマーケットプレイスを使用して、Oracle WebLogic Server for OCIイメージをプロビジョニングできます。これらのイメージは、Oracle Linux 7.9および8.5オペレーティング・システムで使用できます。

この例では、表に示すように、コンパートメント内の1つの可用性ドメインにある2つのコンピュート・インスタンスを使用します。

名前 コンパートメント 可用性ドメイン IMAGE シェイプ VCN サブネット
hydrwls1 HyDRCompmt AD1 Oracle WebLogic Suite UCMイメージ(Oracle Linux 7.9) VM.Standard2.2 hydrvcn midTierSubnet
hydrwls2 HyDRCompmt AD1 Oracle WebLogic Suite UCMイメージ(Oracle Linux 7.9) VM.Standard2.2 hydrvcn midTierSubnet

OCIコンソールの「コンピュート・インスタンス」セクションを使用してコンピュート・インスタンスをプロビジョニングするには:

  1. テナンシのOCIコンソールに接続します。
  2. 適切な地域を選択します。
  3. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」「インスタンスの作成」の順にクリックします。
  4. コンピュート・インスタンスおよびコンパートメントの名前を指定します。
  5. 「配置」で、インスタンスを作成する可用性ドメインを選択します。
    OCIリージョンに複数の可用性ドメインがある場合は、WebLogicコンピュート・インスタンスを異なる可用性ドメインに配置できます。
  6. 「イメージとシェイプ」で、「イメージの変更」をクリックし、次のステップを実行します:
    1. 「イメージ」ソース・ドロップダウンから、「Oracleイメージ」を選択します。Oracle WebLogic Server Enterprise Edition UCM ImageまたはOracle WebLogic Suite UCM Imageを選択します。
      オンプレミス・インスタンスで使用しているものと同じエディションを選択する必要があります。

      ノート:

      Oracle WebLogic Server GridLinkデータ・ソースの使用は、Oracle WebLogic Suiteライセンスの一部としてのみ使用可能な資格です。

    2. 選択したイメージについて、右側の矢印をクリックし、有料イメージのイメージ・ビルド・バージョン(Oracle Linux 7.9 (release- ol7.9- build- timestamp)またはOracle Linux 8.5 (release- ol8.5- build- timestamp)を選択します。
      オンプレミス・インスタンスで使用しているものと最もよく似たOSを選択する必要があります。
    3. 条件をレビューして「Oracle使用条件」チェック・ボックスを選択し、「イメージの選択」をクリックします。
  7. 「イメージとシェイプ」で、「シェイプの変更」をクリックします。「インスタンス・タイプ」を選択し、プライマリ・ホストに最も類似したシェイプを選択します。
    サポートされているシェイプについては、イメージのシェイプを参照してください。
  8. 環境のVCN、サブネットおよび可用性ドメインを選択します。
    容量タイプおよびフォルト・ドメインを指定するには、「拡張オプションの表示」をクリックします。
  9. インスタンスのネットワークを構成します。
    詳細なネットワーク設定を指定するには、「詳細オプションの表示」をクリックします。
  10. 「SSHキーの追加」で、キーを生成してから公開キーをアップロードするか、キーを貼り付けます。
  11. 「Boot Volume」で、インスタンスのブート・ボリュームのサイズと暗号化のオプションを指定します。
    詳細設定を構成するには、「拡張オプションの表示」をクリックします。
  12. 「Create」をクリックします。
  13. このステップを繰り返して、別のコンピュート・インスタンスを作成します。

ノート:

これらのコンピュート・インスタンスを作成するためのTerraformコードは、「コードのダウンロード」にあります。

オペレーティング・システム・ユーザーおよびグループの準備

セカンダリ・コンピュート・インスタンスには、プライマリ・オンプレミスのOracleソフトウェアで使用されているものと同じユーザーおよびグループが必要です。

Oracle WebLogic Server for Oracle Cloud Infrastructureイメージには、すでにoracleユーザーおよびグループがあります。ただし、これらの値(ユーザー名、グループ名、uidおよびgid)はプライマリ・インスタンスにある値と一致しない可能性があるため、プライマリoracleユーザーおよびグループの値と一致するようにセカンダリ・ホストを構成する必要があります。次の例は、プライマリoracleユーザーおよびグループの値と一致するようにこの層のセカンダリ・ホストを構成する方法を示しています。

OCIコンピュート・インスタンス内の各グループおよびユーザーは、すべてのノードでプライマリと同じIDを持つ必要があります。
  1. oracleユーザーを使用してオンプレミス・ホストにログインし、コマンドidを使用して、プライマリ・ホスト内のoracleユーザーのユーザー、グループおよびIDを識別します。
    [oracle@host3.myopnetwork.com ~]$ id
    uid=1001(oracle) gid=1002(oinstall) groups=1002(oinstall),1001(dba)
    
    [oracle@host3.myopnetwork.com ~]$ more /etc/passwd | grep oracle
    oracle:x:1001:1002::/home/oracle:/bin/bash

    次の表に、一般的なオンプレミス環境のサンプル・ユーザーおよびグループを示します。

    ユーザーまたはグループ 名前 ID 説明
    ユーザー oracle 1001 Oracleソフトウェアの所有者
    グループ oinstall 1002 oracleユーザーのプリンシパル・グループ
    dba 1001 oracleユーザーのセカンダリ・グループ
  2. SSHを使用して最近作成したインスタンスにopcユーザーとしてアクセスし、セカンダリ・ホストに存在するユーザー、グループおよびIDを特定します。opcユーザーでセカンダリ・ホストにログインし、sudooracleユーザーにログインし、コマンドidを実行します。
    [opc@hydrwls1 ~]$ sudo su - oracle
    [oracle@hydrwls1 ~]$ id
    uid=1001(oracle) gid=1001(oracle) groups=1001(oracle),1002(docker) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

    次の表に、セカンダリ・コンピュート・インスタンスにすでに存在するoracleユーザーおよびグループを示します。

    ユーザーまたはグループ 名前 ID 説明
    ユーザー oracle 1001 Oracleソフトウェアの所有者
    グループ oracle 1001 oracleユーザーのプリンシパル・グループ
    docker 1002 oracleユーザーのセカンダリ・グループ
  3. 使用可能なシナリオと解決策を次に示します。
    • セカンダリ内のユーザーおよびグループは、プライマリと異なる名前およびIDです。

      解答: プライマリに存在するユーザーとグループをセカンダリに作成します。

    • セカンダリ内のユーザーおよびグループは名前が同じですが、プライマリとIDが異なります。

      解答: プライマリのIDと一致するようにセカンダリ内のIDを変更します。

    • セカンダリ内のユーザーおよびグループは、プライマリと異なる名前ですが、同じIDです。

      解答: セカンダリ内のユーザーおよびグループの名前を変更します。

    • 競合があります。プライマリ・ユーザーまたはグループの一部のIDは、セカンダリ内の他のユーザーまたはグループによって使用されます。

      解答: セカンダリ内の競合するユーザーまたはグループのIDを変更して競合を修正し、セカンダリに1つ以上のグループを作成して、プライマリのユーザーまたはグループと一致させます。

    次の表に、競合を解決するために使用できるコマンドの概要を示します。

    アクション コマンド(rootとして実行)
    新しいグループを作成するには groupadd group_name -g group_id

    例:

    groupadd oinstall -g 1002 groupadd dba -g 1001
    新しいユーザーを作成するには useradd -u user_id user_name -g principal_group -G other groups

    例:

    useradd -u 1001 oracleuser -g oinstall -G dba
    ユーザーのプライマリ・グループを変更するには usermod -g new_primary_groupname user_name
    グループにユーザーを追加するには usermod -a -G secondary_groupname user_name
    ユーザーのIDを変更するには

    usermod -u new_id user_name

    find / -user old_uid -exec chown -h user_name {} \;

    たとえば、次の例では、ユーザーoracleのIDが1001から501に変更されます。

    usermod -u 501 oracle

    find / -user 1001 -exec chown -h oracle {} \;

    グループのIDを変更するには

    groupmod -g new_id group_name

    find / -group old_id -exec chgrp -h group_name {} \;

    たとえば、次の例では、グループoracleのIDが1001から501に変更されます。

    groupmod -g 501 oracle

    find / -user 1001 -exec chgrp -h oracle {} \;

    ノート:

    Oracleでは、セカンダリOCIコンピュート・インスタンスで変更を実行することをお薦めします。プライマリのID値は変更できません。

    次の例では、プライマリホストで使用されているグループのIDが、セカンダリホスト内のほかのグループですでに使用されています。この競合を解決するには、次のアクションが必要です。

    1. セカンダリ内のグループdockerはID 1002を使用していますが、これはプライマリ・グループoinstallのIDと競合します。
      競合を解決するには、セカンダリ・ホスト内のグループdockerのIDを、競合しない別のIDに変更します。たとえば、新しいIDとして1005を選択し、/etc/groupファイルに表示されないことを確認して使用されていないことを確認します。
      [opc@hydrwls1 ~]$ sudo -s  
      [root@hydrwls1 ~]$ more /etc/group | grep 1005
      IDが使用されていないことを確認したら、グループのIDを新しいIDに変更します。
      [opc@hydrwls1 ~]$ sudo -s 
      [root@hydrwls1 ~]$ groupmod -g 1005 docker
      [root@hydrwls1 ~]$ find / -group 1002 -exec chgrp -h docker {} \;
    2. セカンダリ内のグループoracleはID 1001を使用しますが、これはプライマリ・グループdbaのIDと競合します。
      競合を解決するには、セカンダリ・ホスト内のグループoracleのIDを、競合しない別のIDに変更します。たとえば、新しいIDとして1006を選択し、/etc/groupファイルに表示されないことを確認して使用されていないことを確認します。
      [opc@hydrwls1 ~]$ sudo -s 
      [root@hydrwls1 ~]$ more /etc/group | grep 1006
      IDが使用されていないことを確認したら、グループのIDを新しいIDに変更します。
      [opc@hydrwls1 ~]$ sudo -s 
      [root@hydrwls1 ~]$ groupmod -g 1006 oracle
      [root@hydrwls1 ~]$ find / -group 1001 -exec chgrp -h oracle {} \;
    3. プライマリIDと同じIDを持つセカンダリ・ホストにoracleユーザーのグループoinstallおよびdbaを作成します。
      [opc@hydrwls1 ~]$ sudo -s
      [root@hydrwls1 ~]$ groupadd oinstall -g 1002
      [root@hydrwls1 ~]$ groupadd dba -g 1001
    4. ユーザーoracleの名前とIDはプライマリとスタンバイの両方で同じであるため、変更は必要ありません。
      ただし、セカンダリ・ホストでユーザーのメイン・グループをoinstallに変更する必要があります。
      [root@hydrwls1 ~]$ usermod -g oinstall oracle
      次に、ユーザーをグループdbaに追加します。
      [root@hydrwls1 ~]$ usermod -a -G dba oracle
    5. セカンダリ・ホストのoracleユーザーのコマンドidの出力が、メイン・グループおよびセカンダリ・グループのプライマリと一致することを確認します。
      プライマリでの出力:
      [oracle@host3.myopnetwork.com ~]$ id
      uid=1001(oracle) gid=1002(oinstall) groups=1002(oinstall),1001(dba)
      セカンダリでの出力(セカンダリは追加のグループを持つことができます):
      oracle@hydrwls1 ~]$ id
      uid=1001(oracle) gid=1002(oinstall) groups=1002(oinstall),1001(dba),1005(docker)
              …
    6. (推奨)これらの変更後にホストのリブートを実行します。
  4. (オプションですが推奨) oracleユーザーへのSSHアクセスを有効にします。
    このDRトポロジでは、ファイル・システムのコンテンツをプライマリからセカンダリにコピーするために使用されるコマンドをoracleユーザーが直接実行できるようになるため、このDRトポロジで役立ちます。
    1. コンピュート・インスタンスへの接続に使用する公開キーをテキスト・ファイルにコピーします。これは、この手順の後半で使用します。
    2. インスタンスにログインし、rootユーザーにsudoします。
    3. 新規ユーザーのホーム・ディレクトリで.sshディレクトリを作成します。
      mkdir -p /home/oracle/.ssh
    4. コンピュートへの接続に使用するSSH公開キーをファイルにコピーします。
      /home/oracle/.ssh/authorized_keys
    5. /home/oracle/.sshディレクトリの所有者およびグループをoracleユーザーに変更します。
      chown -R oracle:oinstall /home/oracle/.ssh
    6. oracleユーザーおよび秘密キーを使用してSSHで接続して、接続を確認します。
    7. authorized_keysファイルの権限を600にします。
      chmod 600 /home/oracle/.ssh/authorized_keys

オペレーティングシステムの要件の準備

セカンダリ中間層ホストは、ソフトウェアを実行するためのオペレーティング・システム要件を満たす必要があります。

Oracle WebLogic Serverホームのバイナリは、プライマリWebLogicサーバー・ホストからセカンダリWebLogicサーバー・ホストにコピーされます。したがって、セカンダリWebLogicサーバー・ホストでruninstallerを実行する必要はありません。Oracle WebLogic Server for OCIイメージはWebLogic Serverソフトウェア用に準備されているため、手動で追加する必要のあるパッケージはありません。

ただし、WebLogicサーバー上にOracle Fusion Middleware製品を使用している場合は、セカンダリWebLogicサーバー・ホストが要件を満たしていることを確認してください:

  1. 使用している環境が、プライマリ WebLogic Serverホストにインストールされている製品の最小インストール要件を満たしていることを確認します。
    Oracle Fusion Middlewareのシステム要件と仕様の対応するドキュメントと、EDGのLinuxオペレーティング・システム要件の確認のステップを確認してください。
  2. 使用しているバージョンおよびOSに必要なシステムパッケージを確認します。
  3. yumを使用して、欠落しているシステム・パッケージをインストールします。
    この例では、Oracle Fusion Middleware 12.21.4およびOracle Linux 7を使用し、必要なパッケージのほとんどはOracle Cloud Infrastructure (OCI)中間層コンピュート・インスタンスにすでにインストールされています。この例では、次のものがなく、yumを使用してインストールする必要がありました。
    yum install compat-libcap1.x86_64
    yum install compat-libstdc++-33.x86_64
    yum install compat-libstdc++-33.i686
    yum install gcc-c++.x86_64
    yum install libaio-devel.x86_64
    yum install libstdc++.i686
    yum install libstdc++-devel.x86_64
    yum install dejavu-serif-fonts
    yum install numactl.x86_64
    yum install numactl-devel.x86_64
    yum install motif.x86_64
    yum install motif-devel.x86_64
    yum install redhat-lsb.x86_64
    yum install xorg-x11-utils.x86_64
  4. /etc/security/limits.confファイルにfileおよびprocの制限を構成します。オンプレミスのWebLogicサーバー・ホストの制限を確認し、それに応じてOCIのWebLogicサーバー・コンピュート・インスタンスの値を設定します。

ホスト名の別名の準備

プライマリ環境のOracle WebLogic Serverコンポーネントによって使用されるものと同じ仮想ホスト名を、セカンダリOracle Cloud Infrastructure (OCI) WebLogic Serverコンピュート・インスタンスの別名として構成しますが、セカンダリ・ホストのIPアドレスを指定します。
これは、次の方法で実装できます。
  • OCI WebLogicサーバー・コンピュート・インスタンスの/etc/hostsファイルに別名としてホスト名を追加します。
  • セカンダリOCI VCNでプライベートDNSビューを使用します。

/etc/hostsファイルの使用

プライマリOracle WebLogic Serverで使用される仮想ホスト名は、セカンダリOracle WebLogic Serverホストの/etc/hostsファイルに追加され、セカンダリOracle WebLogic ServerホストのIPアドレスを指しています。 このモードは、DNSサーバーがプライマリ・オンプレミスとセカンダリOracle Cloud Infrastructure (OCI)サイトで同じである場合、およびプライマリ・サイトとセカンダリ・サイトで分離されたDNSサーバーが使用されている場合にも有効です。/etc/hostsファイルのエントリは、DNS解決よりも優先されます。これは、/etc/nsswitch.confファイルのディレクティブhostsにあらかじめ定義されている優先順位であるためです。
  1. WebLogicサーバー・コンピュート・インスタンスの/etc/oci-hostname.confファイルを編集し、インスタンスの再起動時に/etc/hostsエントリを保持するようにプロパティPRESERVE_HOSTINFO=3を設定します。
  2. コマンドhostname --fqdnを使用して、OCI WebLogicサーバー・コンピュート・インスタンスの完全なホスト名を識別します。
  3. OCI WebLogicサーバー・コンピュート・インスタンスの/etc/hostsファイルに次のエントリを追加します:
    #################################
    # ALIASES on OCI for DR
    #################################
    virtual_IP_for_admin           virtualIP_fqdn virtualIP_hostname    ALIAS_OF_ADMINVHN
    apphost1_compute_instance_IP  apphost1_fqdn   apphost1_hostname   ALIAS_OF_APPHOST1 
    apphost2_compute_instance_IP  apphost2_fqdn   apphost2_hostname   ALIAS_OF_APPHOST2    
    
    次に、セカンダリOCI WebLogicサーバー・コンピュート・インスタンスの/etc/hostsファイルの例を示します:
    #################################
    # ALIASES on OCI for DR
    #################################
    100.70.10.20   hydrwls-vip.midTiersubnet.hydrvcn.oraclevcn.com    hydrwls-vip       ADMINVHN.example.com   ADMINVHN
    100.70.10.13   hydrwls1.midTiersubnet.hydrvcn.oraclevcn.com       hydrwls1          APPHOST1.example.com   APPHOST1
    100.70.10.14   hydrwls2.midTiersubnet.hydrvcn.oraclevcn.com       hydrwls2          APPHOST2.example.com   APPHOST2
    次に、プライマリWebLogicサーバー・ホストの既存の/etc/hostsファイルの例を示します。
    #################################
    # ALIASES on-prem for DR
    #################################
    10.10.10.20    host-vip1.myopnetwork.com         host-vip1       ADMINVHN.example.com   ADMINVHN
    10.10.10.13    host3.myopnetwork.com             host3           APPHOST1.example.com   APPHOST1
    10.10.10.14    host4.myopnetwork.com             host4           APPHOST2.example.com   APPHOST2
    

ドメイン名システム(DNS)の使用

プライマリOracle WebLogic Serverホストで使用される仮想ホスト名は、セカンダリ中間層サーバーのVCNによって使用されるDNSリゾルバに追加され、セカンダリOracle WebLogic ServerホストのIPアドレスを指します。 このモードは、個別のDNSサーバーがプライマリ・オンプレミスで使用され、セカンダリがOracle Cloud Infrastructure (OCI)で使用されている場合に有効です。そうしないと、ネーミング解決で競合が発生する可能性があります。各サイトのサーバーは、これらの名前を独自のIPで解決する必要があります。この方法の利点は、すべてのエントリをすべてのOracle WebLogic Serverホストのすべての/etc/hostsに追加するのではなく、プライベートDNSビューに追加できることです。

次に、セカンダリVCNでプライベート・ビューを作成し、セカンダリIPでプライマリによって使用される仮想ホスト名を解決するステップを示します。

  1. OCIコンソールで、セカンダリ・リージョンに移動し、プライベート・ビューを作成します。
    1. 「ネットワーキング」「DNS管理」「プライベート・ビュー」「プライベート・ビューの作成」の順にクリックします。
      たとえば、プライベート・ビューにHYBRID_DR_VIRTUAL_HOSTNAMESという名前を付けることができます
    2. プライベート・ビューで「ゾーンの作成」をクリックします。
      ゾーン名には、仮想ホストの完全なドメインを使用する必要があります。例: example.com。
    3. 仮想ホスト名をこのゾーンに追加します(短縮名)。ただし、セカンダリWLSホストのIPSで解決されます。
    4. 「変更の公開」をクリックします。
  2. プライベート・ビューをセカンダリVCNリゾルバに追加します。
    1. VCNでDNSリゾルバ・リソースをクリックします。
    2. 以前に作成したDNSプライベート・ビューを追加します。
      セカンダリVCN内のホストは、プライベート・ビューを使用してプライマリOracle WebLogic Serverホストで使用される仮想ホスト名を解決します。
  3. 仮想ホスト名のpingおよびnslookupを実行して、解決のSECONDARYホストを検証します。
    これらは、同等のSECONDARY IPで解決する必要があります。

    ノート:

    このOCIプライベート・ビューおよびレコードを作成するためのTerraformコードは、ダウンロード・コードにあります。

WebLogic管理サーバーの仮想IPの作成および構成

高可用性を実現するには、WebLogic管理サーバーで、ノード間のフェイルオーバーを可能にするために仮想IPにマップされたホスト名を使用する必要があります。

ノート:

プライマリ・システムの管理サーバーにVIPアドレスを使用していない場合は、このタスクをスキップします。

apphost1コンピュート・インスタンスのVNICに追加のIPを割り当てます。追加のIPは、セカンダリOracle Cloud Infrastructure (OCI)システムの管理サーバーによって使用されます。このIPは通常、apphost1コンピュート・インスタンスにアタッチされますが、EDGで説明されているように、apphost2コンピュート・インスタンスに移動して、管理サーバーのローカル・フェイルオーバーを提供できます。

OCIコンソールを使用して新しいIPをVNICにアタッチした後、OSで非永続モードで構成する必要があります(このIPは、管理サーバーのフェイルオーバーのためにapphost1からapphost2に移動できるため)。

  1. 新しいセカンダリ・プライベートIPアドレスを、OCIのapphost1コンピュート・インスタンスのVNICに割り当てます。
    OCIドキュメントの新しいセカンダリ・プライベートIPをVNICに割り当てるにはで説明されているステップを使用します。
    仮想IPとして識別するのに役立つ値をホスト名に指定します。たとえば、hydrwls-vipです。
  2. 新しいIPがVNICにアタッチされたら、OSで新しいIPアドレスを非永続モードで構成します。
    Linux: セカンダリIPアドレスの詳細で説明されているステップを使用します。
    管理サーバーのフェイルオーバーのためにIPをapphosthost1からapphosthost2に移動できるため、これが必要です。
    1. apphosthost1コンピュート・インスタンスのネットワーク・インタフェースおよびアタッチされたIPアドレスを表示します。
      この例では、VNICのプライマリIPは次のとおりです: inet 100.70.10.13/20 brd 100.70.10.255 scope global dynamic ens3
      [opc@hydrwls1 ~]$ ip addr
      1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          inet 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          inet6 ::1/128 scope host
             valid_lft forever preferred_lft forever
      2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 1000
          link/ether 00:00:17:00:05:87 brd ff:ff:ff:ff:ff:ff
          inet 100.70.10.13/20 brd 100.70.10.255 scope global dynamic ens3
             valid_lft 60218sec preferred_lft 60218sec
          inet6 fe80::200:17ff:fe00:587/64 scope link
             valid_lft forever preferred_lft forever
    2. ルートとして、ラベルにシーケンス番号を設定して、仮想IPを追加のIPとしてインタフェースに追加します。
      [root@hydrwls1 ~]# ip addr add 100.70.10.20/20 dev ens3 label ens3:1
    3. インタフェースに新しいIPがあることを確認します。
      この例では、VNICのセカンダリIPは次のとおりです: inet 100.70.10.20/20 scope global secondary ens3:1
      [root@hydrwls1 ~]# ip addr
      1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
          link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          inet 127.0.0.1/8 scope host lo
             valid_lft forever preferred_lft forever
          inet6 ::1/128 scope host
             valid_lft forever preferred_lft forever
      2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 1000
          link/ether 00:00:17:00:05:87 brd ff:ff:ff:ff:ff:ff
          inet 100.70.10.13/20 brd 100.70.10.255 scope global dynamic ens3
             valid_lft 59873sec preferred_lft 59873sec
          inet 100.70.10.20/20 scope global secondary ens3:1
             valid_lft forever preferred_lft forever
          inet6 fe80::200:17ff:fe00:587/64 scope link
             valid_lft forever preferred_lft forever

OCIホストのファイアウォールで必要なポートを開く

各コンピュート・インスタンスには、ローカル・ファイアウォール・サービスがあります。セキュリティ上の理由から、デフォルトの構成では、最低限必要なポート(sshdhcp)を除くすべてのポートの接続を拒否します。Oracle WebLogic Serverで使用されるポートを開く必要があります。

  1. rootユーザーとして、各Oracle WebLogic Serverコンピュート・インスタンスのファイアウォール・サービスのステータスおよびルールを確認します。
    bash-4.2# firewall-cmd --state
    running
    bash-4.2# firewall-cmd --list-all
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: ens3
      sources:
      services: dhcpv6-client ssh
      ports:
      protocols:
      masquerade: no
      forward-ports:
      source-ports:
      icmp-blocks:
      rich rules:
    この出力は、22以外のポートが開いていないことを意味します。
  2. rootユーザーとして、firewall-cmdコマンドを使用して、各WebLogicサーバー・コンピュート・インスタンスでシステムのコンポーネントによって使用されるポートを開きます。
    例:
    firewall-cmd --permanent --add-port=7001/tcp
    firewall-cmd --permanent --add-port=5556/tcp
    firewall-cmd --permanent --add-port=8001/tcp
    firewall-cmd --permanent --add-port=9001/tcp
    service firewalld reload
  3. Coherenceを使用している場合は、Coherenceクラスタ・ポート(9991など)のtcpおよびudpをエフェメラル・ポート用に、tcpをポート7用に開きます。
    Coherenceでは、Coherenceクラスタ通信用の追加ポートを開く必要があります。
    sudo firewall-cmd --permanent --add-port=9991/udp
    sudo firewall-cmd --permanent --add-port=9991/tcp
    sudo firewall-cmd --permanent --add-port=32768-60999/udp
    sudo firewall-cmd --permanent --add-port=32768-60999/tcp
    sudo firewall-cmd --permanent --add-port=7/tcp
    sudo service firewalld reload
  4. ファイアウォール・サービスのステータスおよびルールを確認してください。
    bash-4.2# firewall-cmd --list-all
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: ens3
      sources:
      services: dhcpv6-client ssh
      ports: 7001/tcp 5556/tcp 8001/tcp 9001/tcp 9991/tcp ...
      protocols:
      masquerade: no
      forward-ports:
      source-ports:
      icmp-blocks:
      rich rules:

OCIファイル・システムのマウント

以前にOracle Cloud Infrastructure (OCI)に作成されたファイル・システムは、Oracle WebLogic Serverコンピュート・インスタンスにマウントする必要があります。

  1. opcユーザーでsshWebLogicサーバー・コンピュート・インスタンスに接続し、NFSクライアントをインストールします。
    sudo yum install nfs-utils
  2. WebLogicサーバー・コンピュート・インスタンスにマウント・ポイントを作成します。
    たとえば、productsconfigおよびruntimeのディレクトリを作成します。表示される値は異なる場合があります。
    sudo mkdir -p /u01/oracle/products
    sudo mkdir -p /u01/oracle/config
    sudo mkdir -p /u01/oracle/runtime
  3. rootユーザーとして、apphost1コンピュート・インスタンスの/etc/fstabディレクトリにエントリを追加します。
    次の例では、100.70.8.101はマウント・ターゲットのIPアドレスの例の値です。OCIリージョンに複数の可用性ドメインがあり、複数のマウント・ポイントを作成した場合は、エクスポートごとに適切なマウント・ターゲットIPを使用します。
    100.70.8.101:/export/wlsdrconfig	       /u01/oracle/config nfs defaults,nofail,nosuid,resvport 0 0
    100.70.8.101:/export/wlsdrruntime          /u01/oracle/runtime nfs defaults,nofail,nosuid,resvport 0 0
    100.70.8.101:/export/wlsdrproducts1        /u01/oracle/products nfs defaults,nofail,nosuid,resvport 0 0
  4. rootユーザーとして、apphost2コンピュート・インスタンスの/etc/fstabディレクトリにエントリを追加します。
    次の例では、100.70.8.101はマウント・ターゲットのIPアドレスの例の値です。OCIリージョンに複数の可用性ドメインがあり、複数のマウント・ポイントを作成した場合は、エクスポートごとに適切なマウント・ターゲットIPを使用します。
    100.70.8.101:/export/wlsdrconfig	        /u01/oracle/config nfs defaults,nofail,nosuid,resvport 0 0
    100.70.8.101:/export/wlsdrruntime           /u01/oracle/runtime nfs defaults,nofail,nosuid,resvport 0 0
    100.70.8.101:/export/wlsdrproducts2         /u01/oracle/products nfs defaults,nofail,nosuid,resvport 0 0
  5. rootユーザーとして、各wlsコンピュート・インスタンスにファイル・システムをマウントします。
    mount -a 
  6. ファイル・システムが正しくマウントされていることを確認します。
    df -h
    hydrwls1およびhydrwls2の出力例を次に示します。
    [root@hydrwls1 ~]# df -h
    Filesystem                           Size  Used Avail Use% Mounted on
    devtmpfs                              15G     0   15G   0% /dev
    tmpfs                                 15G     0   15G   0% /dev/shm
    tmpfs                                 15G   25M   15G   1% /run
    tmpfs                                 15G     0   15G   0% /sys/fs/cgroup
    /dev/sda3                             39G  4.4G   35G  12% /
    /dev/sda1                            200M  7.4M  193M   4% /boot/efi
    tmpfs                                3.0G     0  3.0G   0% /run/user/0
    tmpfs                                3.0G     0  3.0G   0% /run/user/994
    tmpfs                                3.0G     0  3.0G   0% /run/user/1000
    100.70.8.101:/export/wlsdrconfig     8.0E     0  8.0E   0% /u01/oracle/config
    100.70.8.101:/export/wlsdrruntime    8.0E     0  8.0E   0% /u01/oracle/runtime
    100.70.8.101:/export/wlsdrproducts1  8.0E     0  8.0E   0% /u01/oracle/products
    [root@hydrwls2 ~]# df -h
    Filesystem                          Size  Used Avail Use% Mounted on
    devtmpfs                             15G     0   15G   0% /dev
    tmpfs                                15G     0   15G   0% /dev/shm
    tmpfs                                15G   25M   15G   1% /run
    tmpfs                                15G     0   15G   0% /sys/fs/cgroup
    /dev/sda3                            39G  4.4G   35G  12% /
    /dev/sda1                           200M  7.4M  193M   4% /boot/efi
    tmpfs                               3.0G     0  3.0G   0% /run/user/0
    tmpfs                               3.0G     0  3.0G   0% /run/user/994
    tmpfs                               3.0G     0  3.0G   0% /run/user/1000
    100.70.8.101:/export/wlsdrconfig    8.0E     0  8.0E   0% /u01/oracle/config
    100.70.8.101:/export/wlsdrruntime   8.0E     0  8.0E   0% /u01/oracle/runtime
    100.70.8.101:/export/wlsdrproducts2  8.0E     0  8.0E   0% /u01/oracle/products
  7. フォルダの所有権をoracleユーザーおよびグループに変更します。
    [root@hydrwls1 ~]#chown -R oracle:oinstall /u01/oracle/products
    [root@hydrwls1 ~]#chown -R oracle:oinstall /u01/oracle/config
    [root@hydrwls1 ~]#chown -R oracle:oinstall /u01/oracle/runtime
    [root@hydrwls2 ~]#chown -R oracle:oinstall /u01/oracle/products
    [root@hydrwls2 ~]#chown -R oracle:oinstall /u01/oracle/config
    [root@hydrwls2 ~]#chown -R oracle:oinstall /u01/oracle/runtime
    
  8. oracleユーザーとしてログインし、これらのファイル・システムにファイルを作成できることを確認します。共有されているファイル・システム(/u01/oracle/config/u01/oracle/runtime)について、あるホストでファイルを作成するときに、他のホストから参照できることを確認します。

OCIブロック・ボリュームのマウント

Oracle WebLogic Serverコンピュート・インスタンスで以前に作成されたブロック・ボリュームをマウントします。

たとえば、

ブロック・ボリューム コンピュート・インスタンス マウント・ポイント
wlsdrBV1 Hydrwls1 /u02
wlsdrBV2 Hydrwls2 /u02
  1. rootユーザーとしてすべてのWebLogicサーバー・ホストにSSH接続し、マウント・ポイントとして使用するフォルダを作成します。
    [root@hydrwls1 ~]# mkdir -p /u02
  2. テナンシのOracle Cloud Infrastructure (OCI)コンソールに接続します。
  3. 適切な地域を選択します。
  4. ナビゲーション・メニューを開き、「ストレージ」「ブロック・ストレージ」「ブロック・ボリューム」の順にクリックします。
  5. いずれかのブロック・ボリュームをクリックします。
  6. 「アタッチされたインスタンス」をクリックし、「インスタンスにアタッチ」をクリックします。
    1. iSCSIアタッチメント・タイプを選択します。
      IOPSパフォーマンスは、iSCSIアタッチメントのほうが準仮想化アタッチメントよりも高くなります。
    2. 「読取り/書込み」アクセス・タイプを選択します。
    3. 適切なコンピュート・インスタンスを選択します。
  7. コンピュート・インスタンスに接続します。
  8. ボリュームがアタッチされたら、ブロック・ボリューム・アタッチメントの「iSCSIコマンドおよび情報」をクリックして、ブロック・ボリュームのiSCSIコマンドを実行します。
    「iSCSI Commands and Information」ダイアログ・ボックスに、必要なiSCSIコマンドが表示されます。コマンドは、含まれている適切な情報に基づいて使用できる状態です。コマンドをコピーしてコンピュート・インスタンス・セッションにペーストできます。
  9. ボリュームを一覧表示し、新しいボリュームを特定します。
    例:
    bash-4.2# lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb      8:16   0   50G  0 disk ------------> this is the new one
    sda      8:0    0 46.6G  0 disk
    ├─sda2   8:2    0    8G  0 part [SWAP]
    ├─sda3   8:3    0 38.4G  0 part /
    └─sda1   8:1    0  200M  0 part /boot/efi
  10. 新しいボリュームをフォーマットします。
    例:
    bash-4.2# mkfs.xfs -f /dev/sdb
    
    meta-data=/dev/sdb               isize=256    agcount=4, agsize=3276800 blks
             =                       sectsz=4096  attr=2, projid32bit=1
             =                       crc=0        finobt=0, sparse=0, rmapbt=0
             =                       reflink=0
    data     =                       bsize=4096   blocks=13107200, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
    log      =internal log           bsize=4096   blocks=6400, version=2
             =                       sectsz=4096  sunit=1 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
  11. ボリュームをマウントします。
    1. コマンドblkidを使用して、新しいブロック・ボリュームのUUIDを識別します。
      例:
      bash-4.2# blkid
      /dev/sda3: UUID="1517ce80-df91-45cc-a27e-2aa38b3f6646" TYPE="xfs" PARTUUID="c42a8415-7230-42bb-970a-3b4c3142d279"
      /dev/sda1: SEC_TYPE="msdos" UUID="A1E6-54F8" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="78756fd0-3be7-4fbb-b8a8-3d6f68a84b34"
      /dev/sda2: UUID="5384ac33-8ffe-4ad8-8d40-6307f2756dc5" TYPE="swap" PARTUUID="0adbce70-6c26-44fd-bec5-c191a6f9e02f"
      /dev/sdb: UUID="47955773-743f-4bde-bf2f-68ce0f71dbf9" TYPE="xfs"
    2. /etc/fstabファイルを編集し、ブロック・ボリュームをマウントする行を追加します。
      例:
      UUID=47955773-743f-4bde-bf2f-68ce0f71dbf9 /u02 xfs defaults,_netdev,nofail 0 2
    3. ブロック・ボリュームをマウントします。
      bash-4.2# mount -a
    4. マウントされていることを確認します。
      [opc@hydrwls1 ~]$ df -h
      Filesystem                              Size  Used Avail Use% Mounted on
      devtmpfs                                15G     0   15G   0% /dev
      tmpfs                                   15G     0   15G   0% /dev/shm
      tmpfs                                   15G  8.8M   15G   1% /run
      …
      /dev/sdb                                50G   33M   50G   1% /u02
      …
  12. ブロック・ボリュームがマウントされたら、マウントの所有権を適切なoracleユーザーに変更します。
    bash-4.2# chown oracle:oinstall /u02
  13. ホストを再起動し、再起動後にブロック・ボリュームが自動的にマウントされていることを確認します。
  14. 残りのセカンダリWebLogicサーバー・ホストにブロック・ボリュームをマウントするステップを繰り返します。
    ボリュームのアタッチの詳細は、Oracle Cloud Infrastructureドキュメンテーションを参照してください。

TNS別名の作成

Oracle Cloud Infrastructure (OCI) DB Systemを指すTNSディレクトリおよびtnsnames.oraファイルを作成します。セカンダリでのWebLogicドメイン構成はプライマリのコピーとなるため、WebLogicデータソースでTNS別名アプローチを使用するには、プライマリにあるものと同じアーティファクトを作成する必要があります。

  1. oracleユーザーとして、プライマリ中間層ホストで使用されているのと同じパスを使用して、各WebLogicサーバー・コンピュート・インスタンスにtnsフォルダを作成します。
    これは、プライマリからレプリケートされないローカル・フォルダである必要があります。
    [oracle@hydrwls1 ~]$ mkdir -p /home/oracle/tnsnames_dir
    [oracle@hydrwls2 ~]$ mkdir -p /home/oracle/tnsnames_dir
  2. プライマリで使用されているが、OCI DB Systemのアドレスを指している同じtns別名を使用して、ディレクトリにtnsnames.oraファイルを作成します。

    サービス名は、プライマリとセカンダリで同じである必要があります。

    MYPDBSERVICE =
    (DESCRIPTION=
      (ADDRESS_LIST=
        (LOAD_BALANCE=ON)
        (ADDRESS=(PROTOCOL=TCP)(HOST=hydrdb-scan.dbTierSubnet.hydrvcn.oraclevcn.com)(PORT=1521))
      )
      (CONNECT_DATA=(SERVICE_NAME=mypdbservice.example.com))
    )

oracleユーザー環境変数の作成

通常、WebLogicホストのoracleユーザーのプロファイルにWebLogic関連の環境変数があります。たとえば、ORACLE_HOMEJDK_HOMEPATHASERVER_HOMEなどです。

  1. プライマリWebLogicサーバー・ホストのoracleユーザーのプロファイル・ファイルを確認します。
  2. セカンダリで、同じWebLogic関連の環境変数をoracleユーザーのプロファイル・ファイル(.bashrcまたは.bash_profile)に追加します。

    ノート:

    セカンダリWebLogicサーバー・ホスト内のoracleユーザーの.bashrcファイルには、すでに定義された変数(MIDDLEWARE_HOMEWLS_HOMEなど)が含まれている場合がありますが、環境のフォルダと一致しない可能性があり、ユーザーには無効です。必ず環境フォルダに従って削除または変更してください。