L データベース・パーティション化

この付録では、Oracle B2Bインスタンス表のパーティション化について説明します。

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

L.1 概要

Oracle B2Bでは、CPST_INST_CREATED_TIME列に基づいて、Oracle B2Bインスタンス表をパーティション化できます。

パーティション化できる表を次に示します。

  • B2B_APP_MESSAGE

  • B2B_BUSINESS_MESSAGE

  • B2B_DATA_STORAGE

  • B2B_EXT_BUSINESS_MESSAGE

  • B2B_WIRE_MESSAGE

L.2 パーティション化要件

この項では、Oracle B2B表を正常にパーティション化するために必要な要件を示します。

  • レンジ・パーティションまたは時間隔パーティションを使用して表をパーティション化します。

  • Oracle B2Bのすべての表で同じ日付範囲が指定されていることを保証します。これは、パージが正しく機能するための前提条件です。

  • レンジ・パーティションを使用する場合、実行時エラーが発生しないように、デフォルト・パーティションを使用することをお薦めします。

  • 表の再作成:

    • Oracle B2Bシステム・マテリアライズド・ビューにはOracle B2Bインスタンス表(B2B_BUSINESS_MESSAGEB2B_EXT_BUSINESS_MESSAGE)に対する依存性があり、これらの表に対してマテリアライズド・ビュー・ログが作成されます。パーティションの作成中に、これらのマテリアライズド・ビュー・ログの再作成およびシステム・マテリアライズド・ビューの完全リフレッシュを実行する必要があります。

    • データベース表パーティション化の後、マテリアライズド・ビューB2B_SYSTEM_MVはSTALEです。この状況は、マテリアライズド・ビューの依存性の1つに対する任意のDDL操作(DROP、ALTER...)によってマテリアライズド・ビューが無効化されるため、DBをパーティショニングした後に発生します。対応するマスター表(B2B_BUSINESS_MESSAGE, B2B_EXT_BUSINESS_MESSAGE)がパーティショニングした後にFRESHであっても、このビューを更新する必要があります。

  • データベース表のパーティション化後、B2B索引を再作成する必要があります。再作成しないと、システムのスループットは大幅に悪化します。

  • アップグレード時:

    • パーティション化は、アプリケーション・インスタンスをOracle SOA Suiteの必要なバージョンにアップグレードした後にのみ実行することをお薦めします。これは、パーティション化の前に、Oracle SOA Suiteスキーマのアップグレードが完了済である必要があるからです。これにより、古いバージョンのランタイムからデータベースのCPST_INST_CREATED_TIME列にNULL値が格納されることを回避します。

    • これらの表に既存データがあり、CPST_INST_CREATED_TIME列にNULL値が格納されている場合、適切なパーティション化を実行するには、レコードを更新して非NULL値にする必要があります。

L.2.1 パーティション化の設定

パーティション化に基づくパージをサポートするには、B2Bのインスタンス表をパーティション化する必要があります。

次の表をパーティション化する必要があります。

  • B2B_APP_MESSAGE

  • B2B_BUSINESS_MESSAGE

  • B2B_WIRE_MESSAGE

  • B2B_EXT_BUSINESS_MESSAGE

  • B2B_DATA_STORAGE

デフォルトでは、これらの表は参照制約を使用してスキーマで設定されます。DBAは、パーティションを設定する必要がある環境で、制約を無効にする必要があります。

これらの表は、表内のCPST_INST_CREATED_TIME列に基づいてパーティション化する必要があります。

DBAはレンジ・パーティションまたは時間隔パーティションを使用してパーティションを設定できます。

パーティションのレンジは、すべてのB2Bインスタンス表で同じです。

現在のパージでは、パーティション・ベースのパージが有効になるためには、すべてのB2B表がパーティション化されることが想定される、すべてまたはなし形式のパーティション・メカニズムがサポートされます。

L.2.2 データの移行

既存の表からパーティション化された表へのデータの移行では、移行する必要があるデータ量に基づいて、適切な戦略を選択できます。採用される一般的な戦略は、次のとおりです。

  • Create Table As Select (CTAS)

    • CTAS文を使用して、必要なデータを既存の表からコピーすることによって、パーティション化された新しい表を作成します。

    • 表を作成すると、DBAは新しい表の索引を作成し、その名前を元の表名に変更できます。

  • パーティションの交換

    • パーティションの交換により、既存の表とパーティション化された表の間でデータ・セグメントが交換され、データの移動が行われます。

ノート:

以前のバージョンのB2Bメッセージでは(11.1.1.7リリース以前)、CPST_INST_CREATED_TIMEフィールドがnullの場合がありました(再発行が原因)。

これらのフィールドにB2B_BUSINESS_MESSAGE表のCREATED_TIME列の値を移入することによって、これらをクリーンアップできます。

L.2.2.1 パージ処理

パージ処理を実行するには:

  • コマンド行purge -Dpartitioned=trueパラメータを使用して、パーティション・ベースのパージを起動できます。

  • パーティション・ベースのパージがトリガーされるのは、日付範囲が唯一の条件として指定される場合に限られます。他の日付範囲が指定される場合、パージは通常のパージ・メカニズムに戻ります。