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

HADB の拡張

元の HADB 設定を拡張する 2 つの理由があります。

この節では、Enterprise Server クラスタまたはデータベースを停止せずに HADB を拡張する方法について説明します。特に、次の点を扱います。

「HADB マシンの管理」にある関連情報も参照してください。

既存ノードへの記憶スペースの追加

次のような場合に、HADB 記憶スペースを追加します。

ノードに使用されていないディスクスペースがある場合やディスク容量を追加する場合は、既存のノードに記憶スペースを追加することもできます。推奨されているデータデバイスサイズについては、「デバイスサイズの指定」を参照してください。

ノードに記憶スペースを追加するには、hadbm set コマンドを使用してデータデバイスサイズを増やします。

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

hadbm set DataDeviceSize=size

ここで、size は M バイト単位でのデータデバイスサイズです。

コマンドオプションの説明は、「一般的なオプション」を参照してください。

FaultTolerant またはそれ以上のシステム状態にあるデータベースでは、データデバイスサイズを変更することによって、データや可用性を犠牲にすることなくシステムはアップグレードされます。再設定の間も、データベースは稼働状態を維持します。FaultTolerant またはそれ以上の状態ではないシステムでデバイスサイズを変更すると、データの喪失が生じます。データベースの状態の詳細については、「データベースの状態」を参照してください。


例 11–12 データデバイスサイズを設定する例

次に示すのは、データデバイスサイズを設定するコマンドの例です。

hadbm set DataDeviceSize=1024

マシンの追加

HADB が処理能力や記憶容量をさらに必要としている場合には、マシンを追加します。HADB を実行するマシンを新たに追加するには、第 10 章高可用性 (HA) データベースのインストールと設定で説明されている手順に従って、HADB パッケージをインストールします。このとき、Enterprise Server を一緒にインストールしてもしなくてもかまいません。代替のノードトポロジについては、docs.sun.com で『Sun GlassFish Enterprise Server 2.1 配備計画ガイド』の「トポロジの選択」の章を参照してください。

Procedure既存の HADB インスタンスに新たなマシンを追加する

  1. 新規ノード上で管理エージェントを起動します。

  2. 管理ドメインを新規ホストへ拡張します。

    詳細については、hadbm extenddomain コマンドを参照してください。

  3. この新規ホスト上で新規ノードを起動します。

    詳細については、「ノードの追加」を参照してください。

ノードの追加

HADB システムの処理能力と記憶容量を増やすには、新規ノードを作成してデータベースに追加します。

ノードを追加したあとで、HADB JDBC 接続プールの次のプロパティーを更新します。

ノードを追加するには、hadbm addnodes コマンドを使用します。コマンド構文は次のとおりです。

hadbm addnodes  [--no-refragment]  [--spares=sparecount]  
[--historypath=path]  
[--devicepath=path]  
[--set=attr-name-value-list]  
[--dbpassword=password | --dbpasswordfile=file ]  
[--adminpassword=password | --adminpasswordfile=file]  
--hosts=hostlist  [dbname]

dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。データベースの状態は、HAFaultTolerant またはFaultTolerant である必要があります。データベースの状態の詳細については、「データベースの状態」を参照してください。

--devicepath--historypath オプションを指定しない場合、新規ノードは既存データベースと同じデバイスパスを持ち、同じ履歴ファイルを使用します。

ノードを追加すると、既存データの再断片化と再配布が実行されて、システムに新規ノードが組み込まれます。オンラインで再断片化を実行するには、再断片化が終了するまで古いデータと新しいデータを同時に保持できるだけの十分なスペースが HADB ノードのディスクに必要です。つまり、ユーザーデータサイズは、ユーザーデータに使用可能なスペースの 50% を超えてはいけません。詳細については、「デバイス情報の取得」を参照してください。


注 –

システムの負荷が軽いときにノードを追加するのが最善です。



例 11–13 ノードを追加する例

次に例を示します。

hadbm addnodes -adminpassword=password --hosts n6,n7,n8,n9

次の表で、hadbm addnodes の特別なコマンドオプションについて説明します。その他のオプションの説明は、「一般的なオプション」を参照してください。

表 11–13 hadbm addnodes オプション

オプション 

説明 

デフォルト 

--no-refragment

-r 

ノード作成中はデータベースを再断片化しないでください。その場合には、あとで hadbm refragment コマンドを使用してデータベースを再断片化し、新規ノードを使用します。再断片化の詳細については、「データベースの再断片化」を参照してください。

再断片化するための十分なデバイススペースがない場合は、より多い数のノードを持つデータベースを作成し直します。「データベースの再作成によるノードの追加」を参照してください。

なし 

--spares= number

-s 

すでに存在するスペアノードに追加する新規スペアノードの数。この数は、偶数、かつ追加するノードの数以下でなければなりません。 

--devicepath= path

-d 

デバイスへのパス。デバイスは次のとおりです。 

  • DataDevice

  • NiLogDevice (ノード内部ログデバイス)

  • RelalgDevice (関係代数クエリーデバイス)

    このパスはすでに存在していて、書き込み可能であることが必要です。このパスをノードまたはデバイスごとに異なる設定にする場合は、「異機種システム混在デバイスパスの設定」を参照してください。

Solaris および Linux: HADB_install_dir/device

Windows: C:\Sun\AppServer\SUNWhadb\vers。ここで、vers は HADB バージョン番号です。

--hosts= hostlist

-H 

データベース内の新規ノード用の新しいホスト名を一覧にしたコンマ区切りリスト。リスト中のコンマで区切られた項目ごとに 1 つのノードが作成されます。ノードの数は偶数でなければなりません。HADB ホストの IP アドレスは、IPv4 アドレスである必要があります。 

重複するホスト名を使用すると、同じマシン上に異なるポート番号が指定された複数のノードが作成されます。同じマシン上のノードがミラーノードではないことを確認してください。 

奇数番号のノードが一方の DRU に配置され、偶数番号のノードは他方の DRU に配置されます。--spares を使用すると、もっとも大きい番号のノードが新規スペアノードとなります。

二重のネットワークインタフェースを持つデータベースを作成した場合も、同じ方法で新規ノードを構成する必要があります。「ネットワーク冗長性の設定」を参照してください。

なし 

データベースの再断片化

データベースを再断片化して、新たに作成したノードにデータを格納します。再断片化により、すべてのアクティブなノードにデータが均一に分散します。

データベースを再断片化するには、hadbm refragment コマンドを使用します。コマンド構文は次のとおりです。

hadbm refragment  [--dbpassword=password | --dbpasswordfile=file]  
[--adminpassword=password | --adminpasswordfile=file]  
[--agent=maurl]  
[dbname]

dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。データベースの状態は、HAFaultTolerant またはFaultTolerant である必要があります。データベースの状態の詳細については、「HADB の状態の取得」を参照してください。

コマンドオプションの説明は、「一般的なオプション」を参照してください。詳細については、hadbm-refragment(1)を参照してください。

オンラインで再断片化を実行するには、再断片化が終了するまで古いデータと新しいデータを同時に保持できるだけの十分なスペースが HADB ノードのディスクに必要です。つまり、ユーザーデータサイズは、ユーザーデータに使用可能なスペースの 50% を超えてはいけません。詳細については、「デバイス情報の取得」を参照してください。


注 –

システムの負荷が軽いときにデータベースを再断片化するのが最善です。


何回試してもこのコマンドが失敗する場合は、「データベースの再作成によるノードの追加」を参照してください。


例 11–14 データベースを再断片化する例

次に例を示します。

hadbm refragment

データベースの再作成によるノードの追加

新規ノードを追加して、データデバイススペースの不足やその他の理由からオンラインでの再断片化が何度も失敗する場合は、新規ノードを持つデータベースを再作成します。これは、既存のユーザーデータとスキーマデータの喪失を招きます。

Procedureデータベースの再作成によりノードを追加する

次の手順により、プロセス全体の HADB 可用性を維持することができます。

  1. 各 Enterprise Server インスタンスに対して、次のようにします。

    1. ロードバランサの Enterprise Server インスタンスを無効にします。

    2. セッション持続性を無効にします。

    3. Enterprise Server インスタンスを再起動します。

    4. ロードバランサの Enterprise Server インスタンスを再度有効にします。

    可用性を維持する必要がない場合は、ロードバランサのすべてのサーバーインスタンスを無効にしてすぐに再度有効にできます。こうすることで、時間を節約するとともに、古いセッションデータのフェイルオーバーを防ぎます。

  2. 「データベースの停止」で説明されている手順に従って、データベースを停止します。

  3. 「データベースの削除」で説明されている手順に従って、データベースを削除します。

  4. 「データベースの作成」で説明されている手順に従って、追加のノードでデータベースを再作成します。

  5. 「JDBC 接続プールの設定」で説明されている手順に従って、JDBC 接続プールを再設定します。

  6. セッション持続性ストアを再ロードします。

  7. 各 Enterprise Server インスタンスに対して、次のようにします。

    1. ロードバランサの Enterprise Server インスタンスを無効にします。

    2. セッション持続性を有効にします。

    3. Enterprise Server インスタンスを再起動します。

    4. ロードバランサの Enterprise Server インスタンスを再度有効にします。

    可用性を維持する必要がない場合は、ロードバランサのすべてのサーバーインスタンスを無効にしてすぐに再度有効にできます。こうすることで、時間を節約するとともに、古いセッションデータのフェイルオーバーを防ぎます。