L データベース・パーティション化
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_MESSAGE
、B2B_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
列の値を移入することによって、これらをクリーンアップできます。