Sun GlassFish Enterprise Server 2.1 高可用性 (HA) 管理ガイド

第 10 章 高可用性 (HA) データベースのインストールと設定


注 –

HADB ソフトウェアは、Sun GlassFish Enterprise Server の Enterprise Server スタンドアロン配布 で提供されます。Sun GlassFish Enterprise Server の利用可能な配布の詳細については、『Sun GlassFish Enterprise Server 2.1 Installation Guide』「Distribution Types and Their Components」を参照してください。HADB 機能はエンタープライズプロファイルでのみ利用可能です。プロファイルの詳細については、『Sun GlassFish Enterprise Server 2.1 管理ガイド』「プロファイル」を参照してください。


この章の内容は次のとおりです。

HADB の設定の準備

ここで説明する内容は次のとおりです。

これらのタスクを実行したあとは、第 11 章高可用性データベースの管理を参照してください。

HADB の最新情報については、『Sun GlassFish Enterprise Server 2.1 リリースノート』を参照してください。

前提条件と制限

HADB を設定する前に、ネットワークおよびハードウェア環境が『Sun GlassFish Enterprise Server 2.1 リリースノート』で説明されている要件を満たしていることを確認してください。また、特定のファイルシステム (Veritas など) では制限があります。詳細については、リリースノートを参照してください。

HADB では、共有メモリーセグメントの作成およびアタッチ時に、Intimate Shared Memory (SHM_SHARE_MMU フラグ) を使用します。このフラグを使用すると、必然的に共有メモリーセグメントが物理メモリーにロックされ、ページアウトできなくなります。その結果、HADB の共有メモリーは、ローエンドのマシンでのインストールに影響しやすい物理メモリーにロックされます。Application Server と HADB を同じマシンに配置するときは、推奨メモリー量を確保する必要があります。

ネットワーク冗長性の設定

冗長性のあるネットワークを設定すると、単一のネットワーク障害が発生した場合でも、HADB を使用可能なままにできます。冗長性のあるネットワークを設定するには、次の 2 つの方法があります。

ネットワークマルチパスの設定

ネットワークマルチパスを設定する前に、docs.sun.com で『 IP ネットワークマルチパスの管理』の「ネットワークマルチパスの管理」の章を参照してください。

Procedureすでに IP マルチパスを使用している HADB ホストマシンを設定する

  1. ネットワークインタフェース障害検出時間を設定します。

    HADB でマルチパスのフェイルオーバーを適切にサポートするには、/etc/default/mpathd 内の FAILURE_DETECTION_TIME パラメータで指定されているネットワークインタフェース障害検出時間が 1 秒 (1000 ミリ秒) を超えないようにする必要があります。元の値がこの値を超えている場合は、このファイルを編集して、このパラメータの値を 1000 に変更します。


    FAILURE_DETECTION_TIME=1000

    変更を有効にするには、次のコマンドを使用します。


    pkill -HUP in.mpathd
  2. HADB で使用する IP アドレスを設定します。

    IP Network Multipathing Administration Guide』で説明されているように、マルチパスを使用するには、物理ネットワークインタフェースをマルチパスインタフェースグループにグループ化する必要があります。このようなグループ内の各物理インタフェースには、

    • データの送信に使用される物理インタフェースアドレス。

    • Solaris の内部でのみ使用されるテストアドレス。

    hadbm create --hosts を使用するときに、マルチパスグループの物理インタフェースアドレスを 1 つだけ指定します。


例 10–1 マルチパスの設定

host1 および host2 という名前の 2 つのホストマシンがあるとします。それぞれに 2 つの物理ネットワークインタフェースがある場合は、この 2 つのインタフェースをマルチパスグループとして設定します。各ホストで、ifconfig -a を実行します。

host1 の出力は次のようになります。


bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4>
mtu 1500 index 5 inet 129.159.115.10 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>
mtu 1500 index 5 inet 129.159.115.11 netmask ffffff00 broadcast 129.159.115.255

bge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 6 inet 129.159.115.12 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 6 inet 129.159.115.13 netmask ff000000 broadcast 129.159.115.255

host2 の出力は次のようになります。


bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 3 inet 129.159.115.20 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 3 inet 129.159.115.21 netmask ff000000 broadcast 129.159.115.255

bge1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> 
mtu 1500 index 4 inet 129.159.115.22 netmask ffffff00 broadcast 129.159.115.255 
groupname mp0

bge1:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER> 
mtu 1500 index 4 inet 129.159.115.23 netmask ff000000 broadcast 129.159.115.255

この例では、両方のホスト上の物理ネットワークインタフェースが bge0 および bge1 のあとに表示されています。『IP Network Multipathing Administration Guide』で説明されているように、bge0:1 および bge1:1 のあとに表示されているのはマルチパステストインタフェースです。これは、ifconfig の出力では「非推奨」として指定されています。

この環境で HADB を設定するには、各ホストから 1 つの物理インタフェースアドレスを選択します。この例において、HADB は host1 からは 129.159.115.10、host2 からは 129.159.115.20 の IP アドレスを使用しています。ホストごとに 1 つのデータベースノードを含むデータベースを作成するには、コマンド hadbm create --hosts を使用します。次に例を示します。


hadbm create --hosts 129.159.115.10,129.159.115.20

ホストあたり 2 つのデータベースノードを含むデータベースを作成するには、次のコマンドを使用します。


hadbm create --hosts 129.159.115.10,129.159.115.20,
129.159.115.10,129.159.115.20

どちらの場合も、マシン上のどちらのインタフェースをエージェントが使用するべきかを指定するために、host1 と host2 で別のパラメータを使用してエージェントを構成する必要があります。そのため、host1 では次のパラメータを使用します。


ma.server.mainternal.interfaces=129.159.115.10

また、host2 では次のパラメータを使用します。


ma.server.mainternal.interfaces=129.159.115.20

ma.server.mainternal.interfaces 変数については、「設定ファイル」を参照してください。


二重ネットワークの設定

HADB が単一のネットワーク障害に耐えられるようにするには、オペレーティングシステム (たとえば、Solaris) でサポートされているならば IP マルチパスを使用します。Windows Server 2003 では、二重ネットワークを使用して HADB を構成しないでください。このオペレーティングシステムは、二重ネットワークでは正常に動作しません。

オペレーティングシステムに IP マルチパスが設定されておらず、HADB ホストに 2 枚の NIC が実装されている場合は、二重ネットワークを使用するように HADB を設定できます。すべてのホストについて、各ネットワークインタフェースカード (NIC) の IP アドレスを別の IP サブネットに配置する必要があります。

データベース内では、すべてのノードを単一のネットワークに接続するか、またはすべてのノードを 2 つのネットワークに接続する必要があります。


注 –

サブネット間のルーターは、サブネット間で UDP マルチキャストメッセージを転送するように設定する必要があります。


HADB データベースを作成するときは、–hosts オプションを使用して、各ノードに対して 2 つ (各 NIC IP アドレスに対して 1 つ) の IP アドレス またはホスト名を指定します。各ノードで、1 つ目の IP アドレスは net-0 に、2 つ目の IP アドレスは net-1 にあります。構文は次のように、同じノードのホスト名をプラス記号 (+) で区切って指定します。

--hosts=node0net0name+node0net1name
,node1net0name+node1net1name
,node2net0name+node2net1name
, ...

たとえば、次の引数では 2 つのノードが作成され、それぞれに 2 つのネットワークインタフェースを持ちます。これらのノードの作成に、次のホストオプションが使用されます。

--hosts 10.10.116.61+10.10.124.61,10.10.116.62+10.10.124.62

これにより、ネットワークアドレスが次のように設定されます。

10.10.116.6110.10.116.62、および 10.10.124.6110.10.124.62 がそれぞれ同じサブネット上にあることに注目してください。

この例の場合、管理エージェントは同じサブネットを使用する必要があります。そのため、設定変数 ma.server.mainternal.interfaces を、たとえば、10.10.116.0/24 に設定する必要があります。この設定は、この例の両方のエージェントに使用できます。

共有メモリーとセマフォーの設定

HADB をインストールする前に、共有メモリーとセマフォーを設定する必要があります。この手順は、使用しているオペレーティングシステムによって異なります。

ホストで HADB 以外のアプリケーションを実行する場合は、これらのアプリケーションが使用する共有メモリーおよびセマフォーを計算し、HADB で必要な値に追加します。各ホストで動作する HADB ノードが最大 6 つの場合は、この節で推奨している値で十分です。値を増やす必要があるのは、6 つを超える HADB ノードを動作させる場合、または追加の共有メモリーおよびセマフォーを必要とするアプリケーションがホストで動作している場合だけです。

セマフォーの数が少なすぎる場合、HADB がエラーになって次のエラーメッセージが表示されることがあります。 「デバイスに空き容量がありません」。これは、データベースの起動時や実行時に発生する可能性があります。

ProcedureSolaris で共有メモリーとセマフォーを設定する

セマフォーは、グローバルなオペレーティングシステムリソースであるため、設定は、HADB だけでなく、ホストで稼働しているすべてのプロセスに依存します。Solaris では、/etc/system ファイルを編集してセマフォーを設定します。

  1. ルートとしてログインします。

  2. 共有メモリーを設定します。

    • shminfo_shmmax を設定します。この値は、ホスト上の単一共有メモリーセグメントの最大サイズを指定します。16 進数表現で、この値を HADB ホストマシンの RAM の合計サイズ (ただし 2G バイト以下) に設定します。

      たとえば、RAM が 2G バイトの場合は、/etc/system ファイルで次のように値を設定します。


      set shmsys:shminfo_shmmax=0x80000000

      注 –

      ホストマシンのメモリーを確認するには、次のコマンドを使用します。


      prtconf | grep Memory

    • Solaris 8 以前では、shminfo_shmseg (プロセスあたり接続可能な共有メモリーセグメントの最大数) を設定します。ホストあたりのノード数の 6 倍に値を設定します。ホストあたりに 6 ノード以下の場合は、次の行を /etc/system ファイルに追加します。


      set shmsys:shminfo_shmseg=36

      Solaris 9 以降では、shmsys:shminfo_shmseg は廃止されています。

    • shminfo_shmmni (システム全体の共有メモリーセグメントの最大数) を設定します。各 HADB ノードは 6 つの共有メモリーセグメントを 割り当てるため、HADB に必要な値は、ホストあたりのノード数の 6 倍以上にしてください。Solaris 9 では、ホストあたりに 6 ノード以下の場合は、デフォルト値を変更する必要はありません。

  3. セマフォーを設定します。

    /etc/system ファイルを確認して、たとえば次のようなセマフォー設定のエントリがないかどうか調べます。


    set semsys:seminfo_semmni=10
    set semsys:seminfo_semmns=60
    set semsys:seminfo_semmnu=30

    エントリが存在する場合は、次に示すように値を増やします。

    これらのエントリが /etc/system ファイルに含まれていない場合は、ファイルの最後に次のエントリを追加します。

    • seminfo_semmni (セマフォー識別子の最大数) を設定します。各 HADB ノードにはセマフォー識別子が 1 つ必要です。Solaris 9 では、ホストあたりに 6 ノード以下の場合は、デフォルト値を変更する必要はありません。次に例を示します。


      set semsys:seminfo_semmni=10
    • seminfo_semmns (システム全体のセマフォーの最大数) を設定します。各 HADB ノードにはセマフォーが 8 つ必要です。Solaris 9 の場合、またはホストあたりに 6 ノード以下の場合は、デフォルト値を変更する必要はありません。次に例を示します。


      set semsys:seminfo_semmns=60
    • seminfo_semmnu (システム中の undo 構造体の最大数) を設定します。各接続 (設定変数 NumberOfSessions、デフォルト値は 100) には undo 構造体が 1 つ必要です。ホストあたりに 6 ノード以下の場合は、600 に設定します。


      set semsys:seminfo_semmnu=600
  4. マシンをリブートします。

ProcedureLinux で共有メモリーを設定する

Linux では、共有メモリー設定を設定する必要があります。デフォルトのセマフォー設定を調整する必要はありません。

  1. ルートとしてログインします。

  2. ファイル /etc/sysctl.conf を編集します。

    Redhat Linux では、sysctl.conf を変更してカーネルパラメータを設定することもできます。

  3. kernel.shmax および kernel.shmall の値を次のように設定します。


    echo MemSize > /proc/sys/shmmax
    echo MemSize > /proc/sys/shmall

    ここで、MemSize はバイト数です。

    kernel.shmax パラメータは、共有メモリーセグメントの最大サイズをバイト単位で定義します。kernel.shmall パラメータは、システムで一度に使用できるページ内の共有メモリーの合計容量を設定します。これらの両方のパラメータの値を、マシンの物理メモリーの総量に設定します。この値は、10 進数のバイト数で指定します。

    たとえば、両方の値を 2G バイトに設定するには、次のように指定します。


    echo 2147483648 > /proc/sys/kernel/shmmax
    echo 2147483648 > /proc/sys/kernel/shmall
  4. 次のコマンドを使用してマシンを再起動します。

    sync; sync; reboot

Windows の場合の手順

Windows では、特別なシステム設定は必要ありません。ただし、既存の J2SE インストールを使用する場合は、JAVA_HOME 環境変数を J2SE がインストールされている場所に設定します。

システムクロックの同期

HADB はシステムクロックに基づくタイムスタンプを使用するため、HADB ホストでクロックを同期化する必要があります。HADB はシステムクロックを使用して、タイムアウトの管理や、履歴ファイルに記録されるイベントへのタイムスタンプを行います。HADB は分散システムであるため、トラブルシューティングを行うには、すべての履歴ファイルをまとめて分析する必要があります。そのため、すべてのホストのクロックが同期化されていることが重要です。

稼働中の HADB システムでは、システムクロックを調整しないでください。それを行うと、オペレーティングシステムやその他のソフトウェアコンポーネントに問題が発生し、それにより HADB ノードのハングアップや再起動などの問題が次々に引き起こされる場合があります。クロックを前に戻すと、クロックが調整されたときに一部の HADB サーバープロセスがハングアップする場合があります。

クロックを同期化するには、次のようにします。

HADB で 1 秒を超えるクロック調整が検出されると、ノードの履歴ファイルにログ記録されます。次に例を示します。

NSUP INF 2003-08-26 17:46:47.975 Clock adjusted.
 Leap is +195.075046 seconds.

インストール

一般に、HADB は、Enterprise Server と同じシステム (共存トポロジ)、または別のホスト (分離層トポロジ) のどちらにもインストールできます。

asadmin configure-ha-cluster コマンドを使用して高可用性を設定できるようにするには、HADB 管理クライアントをインストールする必要があります。Java Enterprise System インストーラを使用している場合は、ノードが別の層にインストールされている場合でも、管理クライアントをインストールするために HADB インスタンス全体をインストールする必要があります。

HADB のインストール

シングルまたはデュアル CPU システムでは、システムに少なくとも 2G バイトのメモリーがあれば、HADB と Enterprise Server の両方をインストールできます。メモリーが不足している場合は、HADB を別のシステムにインストールするか、または追加のハードウェアを使用します。asadmin configure-ha-cluster コマンドを使用するには、HADB と Enterprise Server の両方をインストールする必要があります。

各 HADB ノードには 512M バイトのメモリーが必要なため、2 つの HADB ノードを実行するにはマシンに 1G バイトのメモリーが必要です。マシンのメモリーが不足している場合は、各ノードを別のマシンに設定します。たとえば、次のシステムに 2 つのノードをインストールすることができます。

デフォルトのインストールディレクトリ

このドキュメントの全体にわたって、HADB_install_dir は、HADB をインストールするディレクトリを表します。デフォルトのインストールディレクトリは、HADB を Java Enterprise System の一部としてインストールするかどうかによって異なります。Java Enterprise System の場合、デフォルトのインストールディレクトリは /opt/SUNWhadb/4 です。スタンドアロンの Application Server インストーラの場合は、/opt/SUNWappserver/hadb/4 になります。

ノードスーパーバイザープロセスの権限

ノードスーパーバイザープロセス (NSUP) は、「I’m alive」メッセージを互いに交換することにより、HADB の可用性を保証します。NSUP 実行可能ファイルは、できるだけ迅速に応答できるように、root 権限を持っている必要があります。clu_nsup_srv プロセスは CPU リソースを大量に消費せず、フットプリントも小さいため、リアルタイムプライオリティーで実行してもパフォーマンスには影響しません。


注 –

Java Enterprise System インストーラを使用した場合は、NSUP の権限が自動的に正しく設定されるため、それ以上の操作は必要ありません。ただし、スタンドアロン Enterprise Server の (ルートでない) インストーラを使用する場合は、データベースを作成する前に、この権限を手動で設定する必要があります。


権限が不足している場合の症状

NSUP の権限が正しく設定されていない場合は、次のようなリソース枯渇の症状がみられることもあります。

制限事項

NSUP がリアルタイムプライオリティーを設定できない場合、Solaris および Linux では EPERM に errno が設定されます。Windows の場合は、「Could not set real-time priority」という警告が発行されます。ma.log ファイルにエラーが書き込まれ、プロセスはリアルタイムプライオリティーがない状態で継続されます。

次の場合は、リアルタイムプライオリティーを設定できません。

Procedureノードスーパーバイザープロセスに root 権限を許可する

  1. ルートとしてログインします。

  2. 作業用ディレクトリを HADB_install_dir/lib/server に変更します。

    NSUP 実行可能ファイルは clu_nsup_srv です。

  3. 次のコマンドを使用して、ファイルの suid ビットを設定します。

    chmod u+s clu_nsup_srv

  4. 次のコマンドを使用して、ファイルの所有者をルートに設定します。

    chown root clu_nsup_srv

    これにより、clu_nsup_srv プロセスがルートとして起動され、プロセス自身にリアルタイムプライオリティーを許可できるようになります。

    セキュリティーへの影響を回避するために、リアルタイムプライオリティーはプロセスが起動されるとすぐに設定され、プライオリティーが変更されたらプロセスは実効 UID に戻ります。ほかの HADB プロセスは、標準のプライオリティーで実行されます。

高可用性の設定

この節では、高可用性クラスタを作成し、HTTP セッション持続性をテストするための手順について説明します。

この節では、次の項目について説明します。

Procedure高可用性に対応するシステムを用意する

  1. Application Server インスタンスとロードバランサプラグインをインストールします。

    詳細については、『Java Enterprise System インストールガイド』 (Java ES を使用している場合) または『Sun GlassFish Enterprise Server 2.1 Installation Guide』 (スタンドアロンの Enterprise Server インストーラを使用している場合) を参照してください。

  2. Enterprise Server ドメインおよびクラスタを作成します。

    ドメインの作成方法については、『Sun GlassFish Enterprise Server 2.1 管理ガイド』「ドメインの作成」を参照してください。クラスタの作成方法については、「クラスタを作成する」を参照してください。

  3. Web サーバーソフトウェアをインストールおよび設定します。

  4. 負荷分散をセットアップおよび設定します。

    詳細については、「HTTP 負荷分散の設定」を参照してください。

HADB 管理エージェントの起動

管理エージェント (ma) は、HADB ホストで管理コマンドを実行するとともに、HADB ノードスーパーバイザープロセスが失敗した場合は再起動することによってその可用性を保証します。

管理エージェントは 2 とおりの方法で起動できます。

高可用性のためのクラスタの設定

この節の操作を開始する前に、1 つ以上の Enterprise Server クラスタが作成されている必要があります。クラスタの作成方法については、「クラスタを作成する」を参照してください。

ドメイン管理サーバーが稼働しているマシンで、次のコマンドを使用して、HADB を使用するようにクラスタを設定します。

asadmin configure-ha-cluster --user admin --hosts hadb_hostname1 ,hadb_hostname2 [,...] --devicesize 256 clusterName

hadb_hostname1hadb_hostname2 などを HADB が稼働している各マシンのホスト名に、clusterName をクラスタの名前に置き換えます。次に例を示します。

asadmin configure-ha-cluster --user admin --hosts host1,host2,host1,host2 --devicesize 256 cluster1

この例では、各マシンに 2 つのノードが作成され、HADB のフェールオーバー時でも高可用性が確保されます。–hosts オプションに続くホスト名の順序は重要であるため、この例は --hosts host1,host1,host2,host2 とは異なります。

1 つのマシンだけを使用している場合は、そのホスト名を 2 回指定する必要があります。本稼働の設定では、複数のマシンを使用することをお勧めします。

高可用性のためのアプリケーションの設定

管理コンソールで、「アプリケーション」>「エンタープライズアプリケーション」の下のアプリケーションを選択します。可用性を有効にするチェックボックスをチェックし、「保存」をクリックします。

クラスタの再起動

管理コンソールでクラスタを再起動するには、「クラスタ」>「cluster-name」を選択します。「インスタンスの停止」をクリックします。インスタンスが停止したら、「インスタンスの起動」をクリックします。

あるいは、次の asadmin コマンドを使用します。

asadmin stop-cluster --user admin cluster-name
asadmin start-cluster --user admin cluster-name

これらのコマンドの詳細については、stop-cluster(1)および start-cluster(1)を参照してください。

Web Server の再起動

Web Server を再起動するには、次の Web Server コマンドを入力します。

web_server_root/https-hostname/reconfig

web_server_root を Web Server のルートディレクトリに、hostname をホストマシンの名前に置き換えます。

Procedureロードバランサとして機能している Web Server インスタンスをクリーンアップする

  1. 次に示すように、ロードバランサ設定を削除します。

    asadmin delete-http-lb-ref --user admin --config MyLbConfig FirstCluster

    asadmin delete-http-lb-config --user admin MyLbConfig

  2. 新しい Web Server インスタンスを作成した場合は、次の方法で削除できます。

    1. Web Server の管理コンソールにログオンします。

    2. インスタンスを停止します。

      インスタンスを削除します。

HADB のアップグレード

HADB は、ソフトウェアのアップグレードによっても中断されることのない「常時有効な」サービスを提供するように設計されています。この節では、データベースをオフラインにしたり、可用性の低下を招いたりすることなく、新しいバージョンの HADB にアップグレードする方法について説明します。これは、オンラインアップグレードと呼ばれます。

以下の節では、HADB インストールをアップグレードする方法について説明します。

ProcedureHADB をより新しいバージョンにアップグレードする

  1. 新しいバージョンの HADB をインストールします。

  2. 「HADB パッケージの登録」の説明に従って、新しい HADB バージョンを登録します。

    HADB パッケージを HADB 管理ドメインに登録すると、HADB パッケージのアップグレードや変更が容易になります。管理エージェントは、ソフトウェアパッケージが配置されている場所や、ドメイン内のホストに関するバージョン情報を常時監視します。デフォルトのパッケージ名は、V の文字で始まり、hadbm プログラムのバージョン番号が含まれた文字列です。

  3. データベースが使用するパッケージを変更します。

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


    hadbm set PackageName=package
    

    ここで、package は、新しい HADB パッケージのバージョン番号です。

  4. 「HADB パッケージの登録の解除」の説明に従って、既存の HADB インストールの登録を解除します。

  5. 必要に応じて、管理エージェントの起動スクリプトを置き換えます。

    詳細については、「管理エージェントの起動スクリプトの置き換え」を参照してください。

  6. 「HADB アップグレードの確認」の説明に従って、結果を確認します。

  7. (省略可能) 古い HADB バージョンのバイナリファイルを削除します。

    HADB が正しくアップグレードされたことを確認したら、古い HADB パッケージを削除できます。

HADB パッケージの登録

hadbm registerpackage コマンドを使用して、管理ドメイン内のホストにインストールされている HADB パッケージを登録します。HADB パッケージはまた、hadbm create を使用してデータベースを作成するときにも登録できます。

hadm registerpackage コマンドを使用する前に、ホストリスト内のすべてのホストですべての管理エージェントが設定および実行されていること、管理エージェントのリポジトリが更新用に使用できること、および同じパッケージ名ですでに登録されているソフトウェアパッケージがないことを確認してください。

コマンド構文は次のとおりです。

hadbm registerpackage --packagepath=path [--hosts=hostlist] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [[package-name]]

package-name オペランドがパッケージの名前です。

次の表は、特殊な hadbm registerpackage コマンドオプションを示しています。ほかのコマンドオプションについては、「セキュリティーオプション」および 「一般的なオプション」を参照してください。

表 10–1 hadbm registerpackage のオプション

オプション 

説明 

--hosts=hostlist

-H 

コンマで区切られているか、または二重引用符で囲まれ空白で区切られている、ホストのリスト。 

--packagepath=path

-L 

HADB ソフトウェアパッケージへのパス。 

たとえば、次のコマンドは、ソフトウェアパッケージ v4 をホスト host1、host2、および host3 に登録します。

hadbm registerpackage 
--packagepath=hadb_install_dir/SUNWHadb/4.4 
--hosts=host1,host2,host3 v4

応答は次のようになります。

Package successfully registered.

--hosts オプションを省略した場合は、ドメイン内で有効になっているすべてのホストにそのパッケージが登録されます。

HADB パッケージの登録の解除

hadbm unregisterpackage コマンドを使用して、管理ドメインに登録されている HADB パッケージを削除します。

hadbm unregisterpackage コマンドを使用する前に、次の点を確認してください。

コマンド構文は次のとおりです。

hadbm unregisterpackage  
--hosts=hostlist  
[--adminpassword=password | --adminpasswordfile= file]  
[--agent= maurl]  
[package-name ]

package-name オペランドがパッケージの名前です。

--hosts オプションについては、「HADB パッケージの登録」を参照してください。--hosts オプションを省略した場合は、パッケージが登録された、有効になっているホストがホストリストのデフォルトになります。ほかのコマンドオプションについては、「セキュリティーオプション」および 「一般的なオプション」を参照してください。


例 10–2 HADB の登録解除の例

ドメイン内の特定のホストからソフトウェアパッケージ v4 の登録を解除するには、次のコマンドを実行します。

hadbm unregisterpackage --hosts=host1,host2,host3 v4

応答は次のようになります。

Package successfully unregistered.


管理エージェントの起動スクリプトの置き換え

新しいバージョンの HADB をインストールすると、/etc/init.d/ma-initd にある管理エージェントの起動スクリプトの置き換えが必要になる場合があります。ファイル HADB_install_dir/lib/ma-initd の内容を確認してください。古い ma-initd ファイルと異なっている場合は、古いファイルを新しいファイルに置き換えます。

ProcedureHADB アップグレードの確認

次の手順に従って、HADB が正しくアップグレードされていることを確認します。

  1. 稼働している HADB プロセスのバージョンを確認します。

    すべての HADB ノードに次のコマンドを入力して、HADB バージョンを表示します。

    new-path/bin/ma -v

    new-path/bin/hadbm -v

    ここで、new-path は新しい HADB インストールへのパスです。

    この結果、新しい HADB バージョン番号が表示されるはずです。

  2. データベースが稼働していることを確認します。

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

    new-path/bin/hadbm status -n

    アップグレードに成功すると、running 状態のすべての HADB ノードが表示されます。

  3. HADB を使用している製品の設定が新しい HADB パスに変更されている必要があります。

  4. HADB を使用している製品に対して、あらゆるアップグレードの評価を実行します。