データベース・レベルのマウント・リソースに関連付けられたマウント・ポイントを保守モードにする

TSA リソース・モデルでデータベース・レベルのマウント・リソースに関連付けられている特定のマウント・ポイントに対して、保守を行うことができます。 メンバー・リソースの可用性に影響を与えることなく保守を行えます。 このコマンドは、 Db2® インスタンス所有者として実行する必要があります。

始める前に

マウント・ポイントを保守モードにする前に、そのマウント・ポイント上のデータにアクセスしているすべてのアクティビティーを停止する必要があります。 この作業には、関連するホストで、データベースを非アクティブ化する作業も含まれます。 ホスト・レベルで保守モードにするには、現行ホストでデータベースを非アクティブ化する必要があります。 クラスター全体でマウント保守を行うには、すべてのメンバー・ホストでデータベースを非アクティブ化する必要があります。

アプリケーション・レベルで、保守モードにする関連ホストのマウント・ポイント上にあるデータベースにアプリケーションがアクセスできないことを確認してください。

下記の『使用のシナリオ』セクションに、実行する必要がある手順の例を記載しています。

このタスクについて

例えば、基本ディスクを保守する場合のように、マウントを保守モードにしなければならないシナリオがいくつかあります。 このような保守アクティビティーを実行するために、TSA リソース・モデルでマウント・リソースに関連付けられているマウント・ポイントをユーザーがアンマウントすると、TSA は、そのホスト上のメンバー・リソースをダウンさせます。 したがって、この動作を回避するために、ユーザーは、保守アクティビティーを実行する前にまず db2cluster コマンドを使用してマウントを保守モードにする必要があります。

リソース・モデルには、以下の 2 つのタイプのマウント・リソースがあります。
  • インスタンス・レベルのマウント・リソース: インスタンスの共有ディレクトリー (sqllib_shared) にマップされます。
  • データベース・レベルのマウント・リソース: データベース・コンテナーのマウント・ポイントにマップされます。
注: インスタンス・レベルのマウント・リソースを保守モードにすることはできません。これらのマウント・リソースは、クラスター内のすべてのホストで定義されます。 データベース・レベルのマウント・リソースは保守モードにすることができます。これらのマウント・リソースは、メンバー・ホストにのみ定義されます。


の制約事項

  • ホスト・レベルの保守に入っているマウント・ポイントを、-all オプションを使用してクラスター全体レベルのマウント保守に入れることはできません。
  • マウント・ポイントは、クラスター内に同時に存在しているホストの数と同じ回数だけ、単一ホストのマウント保守に入ることができます。 (クォーラムの問題はありません)。
  • 複数のホストで同じマウント・ポイントがマウント保守に入っている場合、各ホストでマウント保守から出る順序は順不同です。
  • すべてのホストで同じマウント・ポイントがホスト・レベルの保守に入っている場合は、ユーザーは -all オプションを使用してすべてのホストでマウント保守から出ることができます。
  • 現在のホストで (ホスト・レベルの保守またはクラスター全体の保守により) マウントが保守モードに入っている限り、ユーザーはそのマウント・ポイントのホスト・レベルのマウント保守から出ることができます。
  • 単一ホストのマウント保守コマンド (enter および exit) は、同じホスト上で実行する必要があります。
  • すべてのホストのマウント保守コマンド (enter –all および exit –all) は、どのホストでも実行できます。
  • ホスト・レベルのマウント保守操作は、キャッシング・ファシリティー CF専用ホストでは実行できません。 クラスター全体のマウント保守操作は、クラスター内の任意のメンバーまたは CF ホストで実行できます。

アプリケーションを特定のメンバーのデータベースに接続させないようにする

非常にアクティブな環境では、保守作業が完了する前にマウント・ポイントへの接続が再確立される可能性があります。 特定のメンバーのデータベースに対する着信接続を防止するには、次の 2 つの方法があります。

最初にメンバーを静止しておけば、この操作が完了した後に、ユーザーがメンバーを開始できます。

マウント・ポイントの保守に入る前に特定のメンバーを静止するには、以下のようにします。
  1. 以下のコマンドを実行して、 特定のメンバーを静止 します。
     db2stop MEMBER <member> QUIESCE <time_in_minutes>
  2. マウント・ポイントの保守モードに入ります。
  3. 次のコマンドを実行して、メンバーを開始します。
    db2start member <member>
    このコマンドを実行すると、メンバーはシャットダウンされます。 その間、ユーザーは、このメンバーを介してデータベースに接続できません。
メンバーのサブセット化を使用して、特定のメンバーのデータベースへの着信接続を防止するには、次のようにします。
  1. Db2 データ・サーバー環境内のすべてのメンバーで構成される、データベースの メンバー・サブセットを作成します 。 これにより、アプリケーションは、メンバー・サブセットの作成時に指定された上記のデータベース別名を使用してデータベースに接続できるようになります。
  2. 該当するメンバーをメンバー・サブセットからドロップすることで、アプリケーションがその特定のメンバーを介してデータベースに接続できないようにします。 詳しくは、「 メンバー・サブセットのメンバーの追加または削除」を参照してください。
注: メンバーのサブセット化の回避策を選択するには、新しい別名を使用するようにすべてのクライアント・マシンを更新する必要があります。 これは、構成されているクライアント・マシンの数によっては、時間がかかる作業になります。

例 1: DBA が、特定のマウント・ポイント (/db2data) を特定のホスト上でオフラインにする必要があると判断します。 メンバー 0 のホーム・ホスト上でマウント保守 (/db2data) に入ります。
環境の構成:
  • メンバー 2 つおよび CF 1 つ: M0、M1、CF128。
  • 共有ファイル・システム 3 つ:
    • /db2fs1 - インスタンス・レベルのマウント・リソース。 このファイル・システム上に sqllib_shared があります。
    • /db2data - データベース・コンテナー・ファイルを保持するファイル・システム。
    • /db2logs - ログ・ファイルを保持するファイル・システム。

アクション: DBA は、保守アクティビティーのために「/db2data」をメンバー M0 でオフラインにすることを計画します。

ステップ:
  1. /db2data 上にあるデータベースを使用するすべてのアプリケーションを、メンバー M0 で強制終了します。 このメンバーを介してデータベースにアクティブに接続しているアプリケーションは、他のメンバーに転送する必要があります。
  2. メンバー M0 のホーム・ホストから、/db2data 上のデータベースを非アクティブ化します。
    db2 deactivate db <dbname> -member 0 -force
  3. メンバー M0 のホスト上のインスタンス所有者として、/db2data のマウント保守に入ります。
    db2cluster -enter -maintenance -mount /db2data
  4. メンバー M0 のホスト上でマウント・ポイントが保守モードに入っていることを確認します。
    db2cluster -verify -maintenance -mount /db2data
  5. 必要な保守作業を実行します。
  6. メンバー M0 のホスト上のインスタンス所有者として、マウント保守から出ます。
    db2cluster -exit -maintenance -mount /db2data
注: 非常にアクティブな環境では、強制操作が完了する前に接続が再確立される場合があります。 特定のメンバー上のデータベースへの着信接続を防止する方法については、上記の アプリケーションが特定のメンバー上のデータベースに接続しないようにする を参照してください。
例 2: DBA が、特定のマウント・ポイント (/data) をすべてのホスト上でオフラインにすることを決定します。 すべてのホスト上でマウント保守 (/data) に入ります。
環境の構成:
  • メンバー 2 つおよび CF 1 つ: M0、M1、CF128。
  • 共有ファイル・システム 3 つ:
    • /db2fs1 - インスタンス・レベルのマウント・リソース。 このファイル・システム上に sqllib_shared があります。
    • /data - データベース・コンテナー・ファイルを保持するファイル・システム。
    • /logfiles - ログ・ファイルを保持するファイル・システム。

アクション: DBA は、保守アクティビティーのために「/data」をすべてのメンバーでオフラインにするつもりです。

ステップ:
  1. /data 上の DB を使用するアプリケーションを、すべてのメンバーで強制終了します。
  2. /data 上にあるデータベースを静止します。
    db2 connect to <dbname>
    db2 quiesce db immediate
  3. /data 上のデータベースを非アクティブ化します。
    db2 deactivate db <dbname> -force
  4. 任意のホスト上のインスタンス所有者として、すべてのホストで /data のマウント保守に入ります。
      db2cluster -enter -maintenance -mount /data -all
  5. すべてのホスト上でマウントが保守モードに入っていることを確認します。
      db2cluster -verify -maintenance -mount /data -all
    
  6. 必要な保守作業を実行します。
  7. 任意のホスト上のインスタンス所有者として、すべてのホストでマウント保守から出ます。
     db2cluster -exit -maintenance -mount /data -all
  8. /data 上のデータベースを静止解除します。
    db2 connect to <dbname>
    db2 unquiesce db